STOP sweating your software developers, give them breathing space.
Credit: Tim Gouw

STOP sweating your software developers, give them breathing space.

It has never been a better time to be a software developer than today. Headhunters are constantly searching for you, your workplace environment looks more like a grown-up’s nursery than a place of toil, and you’re 98% likely to be in employment. Good life, no?

With the digital economy on the rise and the shortage of individuals skilled in IT skills becoming more pronounced, software developers, engineers and architects have an unprecedented variety of choice when it comes to picking their next company. Having worked in multiple management consultancies in the technology industry, I have started seeing phenomenal salaries offered for humble roles accompanied by perks that would transform the taxman’s eyebrows into the McDonalds arches. Some companies are good at retaining their IT talent and delivering high quality work. Others are abysmal. How are the good ones able to retain talent and increase productivity? One very plausible answer is to not overwork talent and to give them more room to breathe.

Are they happy?

A StackOverflow report in 2017 found that close to half of developers felt somewhat underpaid and nearly a quarter were unsatisfied with their jobs. In fact, half of those surveyed had switched jobs in the past two years. You may be wondering, what happened to the concept of company loyalty?

By their very nature, a good developer is one that takes enormous pride in their work; they treat it more like art than writing machine instruction. They create perfectly indented code, strive for conciseness, use frequent commenting, use encapsulation and abstraction to beautifully simplify an otherwise endless function or procedure. They feel invested in what they are working on and will naturally put in extra effort and overtime because their self-esteem is inextricably connected to the outcome of their creation. Overworking these type of people makes no sense and you will soon be buying a leaving card for them if you do.

Why overwork them?

Usually, overworking a team is not intentional. As with all things however, the seeds are planted well before the stressful working condition arises. Before they realise, IT leaders are faced with issues that are beyond their control and many see no option but to guiltily pass the baton of pressure down to their team. Overwork may be due to wrong past decisions or lack of knowledge and experience on the part of leadership. Those gaps lead to poor planning and estimation and hence are inherited by the poor teams that need to “make it work” within tight timelines. To add to this, many businesses are still clutching onto legacy systems older than an Atari 2600 because “it ain’t broken, so don’t fix it”. These systems interact poorly with newer systems, often requiring many hacks to get them to integrate. On top of all of this, introduce an element of bad communication into the mix, because let’s face it, good communication is the exception, and we have ourselves a perfect cocktail of problems for stressful overworking.

Software development tasks are highly cognitive and require heuristic problem solving by their nature as opposed to algorithmic, think designing a building as opposed to laying bricks. With heuristically inclined jobs, there comes a point in the day when you inevitably lose focus and productivity. No matter how much you push it, nothing good will come out. In his book “Deep Work” (link), Carl Newport provides evidence that 4-hours of focus a day is the maximum. So overworking a developer may actually be counter-productive.

Signs of overworking

Superstar developers by their nature believe that they can tackle any problem, after all, StackOverflow, Quora, and Reddit are one search away. The superstar will push themselves to solve any issue they come across, regardless of who caused it or how it was caused, they are the hero. They start working late nights and appear to be in a statue-like fixation at their computer screen. After some weeks, feelings of lethargy sink in and other unfavourable habits arise like snacking, caffeine over-indulgence, losing track of time, and regularly staying late . After months of being in this situation, the superstar will start to become more aggressive to his/her “incompetent” peers in other departments (Marketing, Customer Service - most common offenders) and constantly refuse to take on any new work or consider new ideas. They will always seem to be fixing things that are broken and simultaneously make the most elementary of errors in their coding, feeding a vicious cycle. The superstar, usually on time to work, will start to have scheduled sick days and constant train delays. Eventually they will hand you a letter of resignation and run for the hills, more money, and an acute amnesia of your company.

Solve the problem

Incorporate Slack

Donald G. Reinertsen, prominent author in product development, says the optimal slack to incorporate into a IT worker’s schedule is 20%. Some managers are reading this and may have spat their coffee out at their screens. Wipe your screen, and check out “The Principles of Product Development Flow” (link), he makes a convincing argument that workers are most effective when they are not 100% utilised. Some managers know this too well and are happy to open the exit door for their worst developers but many are fighting to retain their superstars and want to do things differently.

Ruthless Prioritisation

One obvious solution is reducing the amount of overworking by ruthless prioritisation of tasks and projects – stop the team doing anything that is not critical or vital. For any projects that do not require a high level of refinement, go for a Minimum Viable Product (MVP) – the solution that caters to the most important needs whilst eliminating unnecessary development. So long as a system is functional, put it in play. It may not be very fast, and it may not look good, but if it does the job, then run with it. Operate with your MVP and then factor in some time later to improve its speed and looks (often the part that is forgotten about).

Training

You should also set aside time for training. Your superstars will often be too caught up in their work to realise that there are things they could be doing better and that they need to learn more. Try to recognise their training needs and book regular and short training courses or allow them to do this themselves after approving that the training is relevant.

Fix Root Cause

Far too often I have seen the IT equivalent of palliative care on broken systems. A good doctor always gets to the root of a problem and resolves the root cause issue. They may treat the symptoms initially, but will always go back and address what caused the problem in the first place. Always fix the root cause eventually, ALWAYS.

Improve Health

It is the superstar’s responsibility to look after their health, yes of course, but as a leader/manager, are you helping them do this? Are you encouraging short frequent breaks, eating healthy, exercising, getting a good night’s rest? Sound’s simple but many are not. Lead by example, provide a free weekly fruit bowl, allow gym breaks, create an after-work running club.

Optimise Time

Recognising that you are going to usually get 4-hours good work out of a developer and ensure that those 4 hours are productive and uninterrupted by unnecessary office noise and pointless meetings. Helping your developer spread the task load of heuristic and algorithmic tasks during the day to get their best hours of focus on the most cognitively tasking jobs.

Outsource

Get help! There are certain tasks, projects and programmes that your business does not need to do itself. Develop a partnership with a dedicated and reliable IT company that can reduce the burden and perform the work for you. Operating flexibly like this offers benefits that will extend long into the future of your business.

And to conclude...

Short-term thinking is behind a lot of the attrition woes that many business have with IT talent. Finding ways to give your staff more room to grow their knowledge and improve their skills will go a long way in reducing it. Remember to aim for an 80% utilisation, not 100%. Focus your team on the most important things and not everything tiny task that is on the backlog, you can do anything, but you certainly cannot do everything. Stop using your team to fix symptoms and get to the root cause of the problem to sort it out permanently. Lastly look to outsource some of the work that does not need to be done by your own team. Find a reliable IT partner that you can build a long-term relationship with that understands your business. This will serve as a nice buffer for when the proverbial hits the fan. My company Hiberus, are perfectly placed to help clients move from being stressed and overburdened to becoming more relaxed and productive by taking on various IT tasks. Get in touch if you would like to know more.

Thanks for reading.



要查看或添加评论,请登录

Cecil Adjalo的更多文章

社区洞察

其他会员也浏览了