Solving the ‘Hero’ Paradox: Strategies for a Resilient Software Development Culture

In the intricate world of software development, one phenomenon occasionally takes centre stage – the emergence of a “Hero.” This individual swoops in amidst crisis, solving problems that no one else can. On the surface, they may seem like a team’s greatest asset, but a deeper dive often reveals hidden complexities. This article explores the phenomenon of the “Hero” in software development, its implications, and strategies to navigate it effectively.

Photo by cottonbro studio on Pexels.com

Understanding the ‘Hero’ Phenomenon

The “Hero” in a software development team often arises due to various motivations. For some, the recognition and affirmation of being a problem-solving champion can be irresistible. Others might be driven by a profound sense of responsibility or the fear of the project spiralling into failure. For a select few, the sheer thrill of problem-solving under pressure is motivation enough.

Whatever the cause, it’s essential to realise that this dynamic, while sometimes beneficial in the short term, often holds hidden perils.

The Impact of the ‘Hero’ Issue on Teams

The “Hero” issue can significantly disrupt team dynamics. With one person shouldering most of the workload and responsibility, a dangerous imbalance can form, leading to increased risk and dependency on a single individual. It’s akin to putting all your eggs in one basket.

More subtly, this dynamic can stifle growth and learning for other team members, who may be relegated to bystander roles. Consider the case of DevOps engineers being the sole knowledge bearers of specific activities for the release, configuration, and setup of non-production environments. It can leave the team in a vulnerable state should the DevOps engineer be unavailable.

The ‘Hero’ Issue: Implications for the Organisation

While the impact of the ‘Hero’ issue on teams is substantial, its repercussions extend to the broader organisation. This single-point dependency creates significant risk, primarily in terms of business continuity.

In the event of the “Hero’s” unexpected absence, whether due to illness, attrition, or even a well-deserved vacation, business processes can grind to a halt. Without their unique knowledge and skills, teams might struggle to maintain the pace of operations, leading to delays, cost overruns, and customer dissatisfaction.

Moreover, the ‘Hero’ issue can inadvertently stifle innovation. If one person continuously resolves crises, the organisation may become over-reliant on their methods, stifling the emergence of fresh ideas and novel approaches. Over time, this can lead to stagnation and reduced competitiveness in the fast-paced world of software development.

Recognising and addressing these risks is paramount for an organisation’s long-term success and sustainability.

Addressing the ‘Hero’ Issue

The first step to mitigating the “Hero” issue lies in fostering a culture of shared responsibility. Encourage all team members to contribute their expertise and partake in problem-solving. However, creating this culture extends beyond just day-to-day activities.

A practical performance framework is an essential tool to combat the ‘Hero’ phenomenon. It’s important to define roles, expectations, and responsibilities clearly. This doesn’t just create transparency; it ensures that the performance of each team member is evaluated on a fair and comprehensive basis rather than the frequency of ‘heroic’ acts.

Next, establish robust knowledge transfer mechanisms. This can be through detailed documentation, pair programming, or regular team meetings to share insights and learnings. Project management strategies can also effectively ensure that workloads are evenly distributed and dependencies are minimised.

Lastly, promoting a culture of continual learning and upskilling within the team can help ensure everyone has the confidence and competence to tackle challenges, reducing the need for a “Hero” to swoop in.

Conclusion

Addressing the “Hero” issue is critical for fostering an inclusive, balanced, and cooperative team culture in software development. While it’s easy to laud the efforts of a singular hero, it’s essential to remember the immense power of collective strength, knowledge, and expertise. After all, software development is a team sport, and its true champions are those teams that work seamlessly together, each member contributing their unique strengths towards a shared vision of success.

My Personal Kanban version 0.7.0 released

Kanban columnI’ve released a new version of My Personal Kanban. My Personal Kanban is a very simple in-browser Kanban Board application. It is designed to work with no Internet connection, persisting content in a modern browser’s data store. MPK can also store your Kanban encrypted in the Cloud with full data privacy.

New features follow closely previously delivered functionality extending into the specific requests by some MPK users raised on GitHub.

New features in the latest 0.7.0 release include:
• Importing previously exported Kanban from text (JSON) file. It’s a follow up on Export functionality from previous version.
• Change colour of a Column. This functionality comes with a new Column settings button.
• Possibility to select existing Kanban as a Template for New Kanban. If there is a specific structure, column names and colours that you like, you can reuse the setup when creating new Kanban.
• Each Kanban has a unique URL in the Browser address bar, which makes it possible to open or bookmark specific Kanban (this change forced me to introduce Angular.js router, a bit of info for devs).

As well as changes in the latest 0.7.0 release, there are also:
• Updates of libraries to latest versions
• Bugs fixes

As I’m getting closer to release of version 1.0.0, My Personal Kanban is getting future complete. Some of the new functionality that will come before final release includes:
• Pomodoro timer
• Blocked section in the columns
• Import/Export to CSV file

I’m also planning a Mobile version to follow on both iOS and Android platforms.

I would love to hear from you if you are using My Personal Kanban, in what way and what functionality is missing.

Greg

Importance of proper management on creativity – science of motivation

Creativity signI’ve been writing some general ideas about creativity in the last couple of posts (Little creative fingers, Difference between innovation and creativity). This time I would like to touch more on the role of managers and different areas they can influence to foster creative work in an organisation.
First let me start with a little explanation of three important components of creativity.

  1. Expertise – a bag of knowledge. Technical skills, procedural skills and general intellectual knowledge, which exist in our head. Things that we learned and skills acquired over period of our lifetime. All of that exists in our memory ready to be used for greater creation. Nobel price laureate, Herb Simon calls it a “Network of possible wonderings”.
  2. Creative thinking skills – approach, flexibility and imagination when solving a problem. It defines how we attack the problem and arrive at the conclusion. The way could be very different for anyone as it is being shaped by previous creative endeavours, observations and ones personality. Personality plays important role. For example someone more open for environment could be easier seeded with ideas and include it in the solution he or she works on. Someone more comfortable with disagreeing will try status quo ways to achieve desired outcome.
  3. Motivation – that’s the driver of the creativity. It’s something that makes us work countless hours, drink liters of coffee and carry on regardless to the progress. When there is no motivation, people waste energy on doing everything else but not looking for creative solution to solve the problem.

Expertise and creative thinking skills are hard to influence by managers. They can organize knowledge sharing sessions, encourage training, simplify the communication between team members but this will not directly influence ones expertise and creative thinking skills. The easiest to influence component is the motivation. Thus, the following part of this article will focus on the motivation.

Intrinsic and extrinsic motivation

We can distinguish two types of motivation: intrinsic and extrinsic. Our passion and interests drive intrinsic motivation. Extrinsic motivation comes as a result of reward or a threat. Here’s an illustration of the difference between these two types of motivation and its influence on creativity.

mazeImagine maze and finding a way out of it as a problem. Two people are asked to find exit from the maze, a solution to a problem. One of them is told that at the end of the maze there will be a reward waiting (extrinsic motivation). The other person is a huge maze enthusiast and enjoys a challenge, is also told to take all the time needed to find the most interesting way out of the maze (intrinsic motivation). Two solutions delivered by both maze solvers could be very different as:

  • Extrinsically motivated person will rush as quickly as possible to get to reward and will use the most common, beaten path out of the maze. Not a particularly very creative solution.
  • Intrinsically motivated person will wonder around the maze sometimes getting into a dead end. This person will have much fun in doing so and after a number of mistakes and failures more creative and interesting solution will emerge.

By influencing the intrinsic motivation in the organization the employees will burst with novel and creative ideas.

Extrinsic motivation will create temporary results and common solutions that will not place any organization on top of the “creative chart”.

Bellow is a list of categories that I think management can influence that would affect creativity. Those categories emerged to me after a little research in the creativity area and my personal experience.

Challenge

Matching people to tasks according to their abilities. When working on a problem we are passionate about, the right type of motivation is triggered. The knowledge and interest possessed by us is being used to wonder around the solution paths that could not possibly be discovered by someone with no interest in the subject of a problem. It’s also better to stretch our abilities and skills so we will be presented with a problem that we never faced before, in the area we care about.

However stretching ones abilities is fragile. Stretching it too much will make problem look impossible to solve. Not stretching it enough will make it look dull and uninteresting.

The most common mistake that kills creativity is when managers assign people to work on whatever tasks are available at the moment. This approach is going to yield some results but they are not going to be the most creative and interesting. Quite often the results will lack on quality if they are particularly uninteresting.

I know that when I’m faced with challenge it makes me work harder and research the subject deeper. It makes work fun and interesting. However, when fixing bugs and just working on “Business As Usual” tasks, I’m not as engaged and I’m looking forward for the day to finish. A good challenge is what makes me tick and come out with new ideas.

Freedom

Autonomy in delivery process. I like to have my targets clear when I’m working. However, clear targets don’t mean that my “personal manager” will hold my hand and tell me what to do, when and how. I need freedom in my work and in the choice of how I’m going to deliver the solution. Freedom gives me the sense of ownership and responsibility. This in turn increases my intrinsic motivation.

freedom

Frequently moving targets require management to guide people all the time and reduces ones autonomy. It also makes anyone afraid to take responsibility for any targets as they are not clear and might change any time.

Quite often people are enchanted with illusion of freedom where delivery process is strictly prescribed and should be followed.

Resources

Time and money management. Legitimate reasons of time pressure will trigger intrinsic motivation. For example, if product needs to be delivered before competition, team will feel the need to rush. Motivation goes up as the bar was raised into a higher level thus making challenge more interesting.

I found that fake deadlines create a feeling of distrust in the team. Deadlines are often imposed with regards to managers personal agendas, with no legitimate reason. Tight deadlines burn people out and there is no chance of creating intrinsic motivation and creative ideas.

Managing resources means also managing money and equipment that team can use in delivery. I’ve seen projects where money was constraint and lead people to find ways of avoid money limits. This also mean that all the creative energy and time was wasted into creating ideas that were not adding any additional value to end product.

Team Diversity

Diversity in backgrounds and skills. I like working in the teams where people have different backgrounds. I’ve been making software for many different industries: media, marketing, communication, insurance, finance and I always find ideas from one industry useful to spawn ideas into another.

Whenever I work with non-technical members of a team they are providing more detached and higher-level view of a problem.  Quite often it opens perspectives that I was unable to see before.

Putting together a team of people with different skills and different background will make ideas combust and burst. Different skills and backgrounds will create different points of view.

Homogenous team will be creativity killer. Everyone comes to the table with the same mindset and leaves the table with the same.

Supervisory encouragement

Everyone likes to be noticed and rewarded for the work done. It’s our ego that needs some pleasing and keeps us motivated. It is important for managers to recognize effort of a team as well as individuals. I noticed during years that my colleagues who were recognized for their creative work and received some kind of reward for it, were even more motivated next time. It appears that commercial impact didn’t create a feeling of a bribe for creative work.

One company I worked for as a consultant had extensive layer of evaluating new ideas. This means that every new idea that someone came up with was immediately criticized by management, put into pile of other ideas to be reviewed and waited there for months just to be rejected at the end. It caused many employees of the company to stop breeding ideas and stop carrying about work at all. Eventually most of the creative people left the company.

Keeping open mind for a possible solutions and removing evaluation layer should be the management’s aim. If evaluation is too long or is to criticizing, people will fear to propose any novel ideas and stop carrying.

More layers and time between idea and its introduction in the organization can cause lost of potential market edge.

Organization support

Entire organizations can be structured in a way that supports creativity. Open communication, clear processes and systems should come along with no internal politics.

Lack of recognition and reward could spawn negative feeling within employees. People will feel used and unappreciated. Using money as motivator can also create a feeling of control and kill any creative endeavors.

Summary

The best way to get creative results in a team is to get everyone intrinsically motivated. If you are a manager or a leader and your aim is creativity of your team, I hope the things mentioned above could give you a starting point.

Greg

How can Pomodore help you shave a Yak?

Two terms in the title that needs clarification.  Pomodoro is a technique for managing a task completion, or simply time. Yak shaving is a situation that everyone finds himself every now and than when we are trying to solve a problem in a wrong way. Usually it happens when we create a chain of tasks that will lead to a solution and we keep on repeating it until we get somewhere. Eventually we could end up with a very crazy solution after a long period of time.

Yak shaving

An example of Yak shaving I found myself in not too long ago.

I found myself doing a Ruby on Rails development on a Mac box. As I used older version of MacOS I had an older version of Ruby compiler. To use latest version of Rails I had to get newer version of Ruby. To get that I needed to install that via Mac Ports or something similar. While trying to install Mac Ports I found myself missing some of the development files that stopped Mac Ports from installation. It turned out that those files where in XCode. I had to find XCode that is going to work on my machine. Turned out that older version is available on Apple Dev website, all I need is to sign-in. I had an account, but forgot the password. Then I tried to retrieve a password and that didn’t work. After some battles I finally got a XCode on my box.  It was still Mac Ports impossible to install Mac Ports thought. That took me along time. Eventually I ended up installing VM image of Ubuntu and developing on Linux VM.

I think that being developer, the Yak Shaving problem is very irritating and could lead into a lot of wasted hours. When working in a pair,  the Yak issue will not appear that often. There is always a second pair of eyes to validate the sanity of the task in progress. It doesn’t eliminate the Yak entirely as I found out with some peers 🙂

When working alone that is entirely different story. Because there is no one to run you ideas by, sometime I make a decisions that lead me into “the shaving“. I found myself wasting hours before realizing that it doesn’t make sense and taking step back.

Pomodoro, mmm, delicious

Not to long ago on a project I was working on, we used Pomodoro to keep us focus for a period of time. This simple technique combines 25 minutes of un-distractable time of work and a 5 minutes break. After 4 successful Pomodoros (25 minutes + 5 minutes break) we had a little longer break. While working in a pairs, Pomodoro was keeping us focus and safe from emails, phone calls and coffee breaks. The 5 minutes break gave us a lot of time to discuss the issues around the task/problem.

When working alone the 5 minutes break could be the excellent opportunity to talk with someone else about the problem or just take a step back and reflect on a solution. This eventually could lead into new ideas and most importantly into STOP shaving a Yak.

There is more to Pomodoro technique than just a sanity check from a yak shaving. There is a free PDF book that can be downloaded for free http://www.pomodorotechnique.com/resources/cirillo/ThePomodoroTechnique_v1-3.pdf and some other resources on the Pomodoro Technique web site.

Cheers, Gregster