Photo by fauxels from Pexels
Many software development teams practice agile with scrum for software development. As a part of these practices, you are always trying to maximise productivity and get more goals done in a given sprint.
Unfortunately, it’s very easy to get caught up in answering the never-ending demands and deadlines of projects and forget about the amount of stress and load put on the team and the individuals.
Achieving the maximum amount of work done DONE does not necessarily mean you have a long term efficient team. In sprint retrospective meetings when you ask how each individual feels about the sprint, although they have achieved a lot from the product owner’s point of view, they are not feeling good about the achievements and some are probably stressed out.
This is not a good outcome because it’s not sustainable. If you continue on this path you will not only have an unhappy team and loss of productivity but you also risk losing good resources as well.
Does it sound familiar? Can you relate to this story in your team or organisation?
Stress and burnout
Stress is a natural human response to challenging or dangerous situations. A small amount of stress, such as working to a deadline, can actually be helpful and allow increased alertness, energy and productivity. However, ‘living on adrenaline’ can only be effective for a short time. If the pressure goes on for too long or becomes greater than our ability to cope with the stress, it can drain our physical and mental resources. Stress can have a negative effect on physical and mental health, relationships, work and wellbeing. Burnout is a state of emotional and physical exhaustion that can occur after a long period of excessive or stressful work. The 3 key features of burnout are:
- emotional exhaustion
- a feeling of detachment from work or becoming cynical
- reduced efficiency or lacking a sense of achievement
To avoid burnouts in your team, make sure you are not encouraging Working overtime regularly or on weekends. STOP rewarding workaholics. The workaholism culture is bad for the team and it should be discouraged.
Workaholics arent‘ heroes. They don’t save the day, they just use it up. The real hero is already home because she figured out a faster way to get things done. from: http://37signals.com/rework/
Some of the common reasons why you work extra hours might be:
You are a junior developer so you want to learn fast.
You have started a new job and want to prove yourself.
You want to learn a new language, technology as part of your job so you are putting extra hours to compensate for the learning on the job.
The project has a very aggressive deadline and instead of raising this issue you quietly put in more hours to finish the task.
There are hidden tasks that are not accounted for but need to be done as part of your task. Like a pre-existing bug preventing you to add the new feature.
You lack some skills to do the task. Instead of learning that skill properly before doing the task, you try to finish the task by endless google searches and copy/paste from stack overflow. Eventually, you barely make it work by spending more time.
You are a perfectionist and find endless improvements to do. Things that no one asks you but regardless you want to add that small UI tweak here and there or refactor the code 100 times so it looks perfect.
Tasks are underestimated and instead of fixing the estimates or the process that produces those estimates you put in more hours.
Whatever is your reason for working compulsively it’s hurting you and your team. So it must be stopped because:
You have other responsibilities outside of work and working overtime affects your life in a way that reflects badly on the work. So it’s not even sustainable.
As said before you will lose efficiency. Putting in more hours will not result in more work done. Say goodbye to creativity!
You might think you are doing your team a favour. Unfortunately, you are hurting the project budget by putting extra hours that are not counted in the costing. These are the hours going unreported because you quietly worked a little more here and there so you can finish. So when you cost the next project this broken cycle repeats.
Many of you probably have read *The 7 Habits of Highly Effective People.*
I was revisiting this classic recently and one story, in particular, grabbed my attention. The story of the golden goose and P/PC concept.
P stands for the production of desired results. PC stands for production capability.
To explain the P/PC Stephen Covey uses the story of the Golden Goose by Aarne-Thompson. This is the story of a farmer who finds out that his goose can lay golden eggs. Eventually, the farmer becomes greedy and wants more golden eggs quickly so, he kills the goose hoping to get all the eggs at once. This results in him losing the golden eggs (the desired result) as well as the goose (production capacity).
There is always a tension between results and the ability to produce those results (aka effectiveness).
The P/PC Balance is about balancing between two extremes. One end is being focused only on the result and the other end is focusing on the production capacity only.
Who is the golden goose in your development team?
I think the development team as a whole is your golden goose. So the team must be nurtured. This way we will have a sustainable production of golden eggs.
The key here is the team, so avoid rewarding or criticising individuals as much as possible. In my experience that does not help with team development.
People have different roles in a team which adds different values to the business but at the end of the day what you get is the result of teamwork.
You want to create a nurturing culture that prevents the issues that are caused by bad habits/processes and encourages good habits/processes. The main focus is here the team culture rather than individuals.
“You don’t create a culture. It happens. This is why new companies don’t have a culture. Culture is the byproduct of consistent behaviour. If you encourage people to share, then sharing will be built into your culture.“ from: http://37signals.com/rework/
How do you nurture your development team?
First, we need to understand what motivates the team and makes them happy.
Here are some items that apply to my team:
Recognition by peers and team.
Working with smart people and learning from them.
Being technically challenged and coming up with creative solutions.
Experimenting with cutting edge technology and staying relevant with the new technologies.
Career development and feeling of growth
Having a proper work-life balance
Having flexible work arrangements
Over the years we have tried different techniques to inspire my team. Here are some of them.
Transparent workflows and processes
We use a mixture of Scrum and Kanban. We have clearly defined workflows and processes that the team must follow. Through this, the team knows how to start a piece of work, how to measure progress and when to call it done. This clarity reduces the stress in the team.
For example, some of the rules are:
1- You should not start on a task without clear understanding of business requirements. 2- You should not start a task that does not have an agreed and documented acceptance criteria. 3- You should raise your hand and ask for help if you are stuck and cannot progress more than 1hr. 4- You should break the task if it’s too big to commit to in a day.
People know what to expect at each stage of the workflow and also how to realign and come back to the right track in case something unexpected happens. Like scope changes when the client changes their mind or when a technical challenge rises at the very last part of the implementation.
Team values system
We have clearly defined our values as a team.
A few examples of my team’s values are #teamwork, #commitment, #responsibility, #respect, #skills.
We have even visualised these values to constantly remind ourselves about them.
Teammates help each other to understand and achieve these values by completing daily tasks. For example, knowledge sharing helps us to upskill. We also take courses individually or as groups to learn new things.
This values system is also used to recognise teammates contributions.
Team values visualised as a tree by Anastasia Foulidis
We have a team-driven rewards system so colleagues can recognise and appreciate each other.
Heytaco on Slack is how the team can appreciate one another with tacos. Rewards can be claimed individually (coffee and brownies) or can be used to contribute to a team reward, like a company-sponsored lunch or an outdoor activity.
Super tacos are given at the end of each sprint. This is a letter of recognition describing the significance of the contribution along with a gift card or movie tickets. This will also land you in the Taco hall of fame.
Staff awards at company events for more significant contributions. This is a certificate of excellence from the CEO and a gift card. Plus you get a chance to present your work in front of the whole company.
We do team building activities and encourage the whole team to participate.
Tech Talks once a fortnight is where we share new things and learn new technologies.
Group code reviews to understand and solve some technical challenges that are common across the team.
Working groups. These are multiple teams that cover different areas of software development like DevOps, UI/UX and front end development, Backend development and QA. These working groups have fortnightly meetings to discuss the issues in their respective area and come up with plans and strategies on how to tackle them.
I almost forgot to mention we have some serious competitions going on table tennis and footy tipping. Even during COVID time, we do virtual games and daily step challenges.
We do many more group activities to help us socialise as a team and connect on a human level. When I talk to former colleagues, one of the things that come up consistently is our team’s social culture which they miss.
We have multiple feedback channels. Some are through predefined meetings/surveys and some initiated by the teammates when they want to provide feedback. This helps to find the issues early and avoid potential damages.
Multiple surveys throughout the year to anonymously give your opinion on different topics that affect you and your work.
There are 1–1 meeting with your manager every fortnight. You have a chance to discuss all the issues you are facing.
On top of that doors are always open and we value feedback and transparency.
Support for career development
We have a range of activities that try to cater to each individual’s career development and define clear goals for the team so we can support it as much as possible.
A skills matrix to help us measure and assess each person’s skills in different areas.
A chance to work on new tech in R&D projects. For example, trying machine learning in the context of an R&D project.
Accommodate people when transitioning from one technology or software development layer to another. For example, a Java developer moving on to NodeJS or a front-end developer trying full-stack.
Dedicated Personal Development time and budget that you can decide how to spend. Be it buying books, courses or going to conferences. Your choice!
My team offers flexibility around the working hours. If someone needs to come in late and work late it’s fine. As long as you and other teammates can do their task efficiently. The only exception being the 9:45 am standup and sprint planning because these sessions are critical to helping us communicate as a team.
People can work from home if they need to and we have all the required infrastructure in place to support it.
These are just some of the examples my team uses to nurture our development team. I am sure your team has similar ways.
What are the signs that you are too focused on the golden eggs?
I am going to discuss these signs in more details in part 2 of this article but just to give you a peek, here are some of the common ones.
People work overtime for extended periods instead of improving the processes.
Creative ideas come from mangers and clients instead of the development team.
Lack of interest to participate in team activities.
The team is happy to keep using outdated practices and technology and people do not care to suggest tech upgrades or upskilling.
People are not sharing their opinions or ideas and prefer to be quiet.
Did you find this article valuable?
Support I'm Parham by becoming a sponsor. Any amount is appreciated!