In my journey as a product development mentor, I’ve come to realise that the heart of successful software organisations lies in the people who build the products. In Scrum, we refer to these individuals as developers, but this term encompasses a diverse group: testers, coders, analysts, product owners, and even those in cyber security operations. Each plays a crucial role in the creation of a product, and it’s essential that we foster an environment where they can thrive.
The Importance of Happiness in Product Development
One of the most significant insights I’ve gained is that unhappy people do not create amazing products. If team members feel overwhelmed by unrealistic expectations, disconnected from the value of their work, or stifled by micromanagement, their motivation plummets. Here are a few key points to consider:
- Value Recognition: Team members need to see how their contributions add value to the organisation. When they understand the impact of their work, they are more likely to feel fulfilled and engaged.
- Empowerment: If individuals believe they possess better solutions than those imposed by management, their frustration can lead to disengagement. We must empower our teams to make decisions and trust their expertise.
- Collaboration: A culture of collaboration is vital. When team members work together towards a common goal, they are more likely to feel a sense of belonging and purpose.
Enabling Excellence Through Engagement
To turn around the morale of your team, we must focus on enabling them to deliver the highest possible value. This involves more than just refining processes; it requires a holistic approach to how we manage work and dependencies. Here are some strategies to consider:
- Continuous Feedback Loops: Integrate feedback mechanisms into your processes. This allows teams to adapt and improve continuously, fostering a culture of learning and growth.
- DevOps and Continuous Delivery: Embrace DevOps practices to streamline workflows and enhance collaboration between development and operations. This not only improves efficiency but also boosts team morale.
- Engineering Excellence: Cultivate a culture that prioritises quality. When team members take pride in their work, they are more likely to produce exceptional products.
The Role of Knowledge and Skills
It’s not enough to simply provide direction; team members must also possess the knowledge and skills necessary to execute their tasks effectively. Understanding the theories and principles behind our practices empowers individuals to make informed decisions. Here’s how we can facilitate this:
- Training and Development: Invest in ongoing training to ensure that your team is well-versed in the latest methodologies and technologies. This not only enhances their skills but also boosts their confidence.
- Customer Engagement: Encourage developers to engage with customers directly. This interaction helps them understand user needs and fosters a sense of ownership over the product.
Decision-Making at the Team Level
Every day, team members make countless micro-decisions that shape the future of the product. It’s crucial that they feel equipped to make these choices. For instance, consider a software engineer deciding between an array and a linked list. The decision may seem trivial, but it can have significant implications for future development. Here’s how we can support better decision-making:
- Intent-Based Leadership: Foster an environment where team members understand the broader goals and objectives. This clarity allows them to make decisions that align with the organisation’s vision.
- Collaborative Culture: Create a culture where team members feel comfortable discussing their choices and seeking input from others. This collaboration can lead to more informed and effective decisions.
Conclusion: Building a Cohesive Team
Ultimately, the success of your product hinges on the collective efforts of your team. By creating an environment where individuals feel valued, engaged, and empowered, we can cultivate a culture of excellence. When everyone is aligned and working towards a common goal, the potential for innovation and success is limitless.
Let’s strive to build teams that are not only skilled but also motivated to create products that truly resonate with users. After all, happy, engaged people are the key to building amazing products.
So the product development mentor program for software organizations is designed around helping people that actually build the products. So in Scrum, we would call those folks the developers, right? But that includes testers, coders, it includes analysts, it includes product owners, it includes cyber security operations. It includes all of the people involved in building and creating a product.
And the product development mentor program is how do we build in excellence to the way we do things? How do we enable happy, creative people who are working together towards a common goal? Right? I don’t know if you’ve noticed or I don’t know if you’ve thought about this, but unhappy, sad people don’t build amazing products. If the people that work on your product feel like they’re unable to achieve the things that they’re asked to achieve by the business, they’re going to be unhappy. If they feel like the things that they’re doing don’t add value to the organization, they’re going to be unhappy. If they feel like they know how to do something better than other people that are telling them how to do it in the organization, they’re going to be unhappy. Unhappy, sad people don’t build amazing products.
So how do we turn that around and enable the people in your organization to step up? We have to enable them to step up and be able to deliver the highest possible value, and that means they’re going to have to be happy and engaged in what it is they’re doing. We’re going to have to look at things not just around the process, like your ways of work and how you manage that work, but how do you manage dependencies? How do you do DevOps and continuous delivery? How do you do testing? How do you integrate more feedback loops into your process for all of those different process control systems that you might have within your organization?
And build a story and a culture of engineering excellence within your organization because that happy, motivated wants things to be successful, wants things to be valuable for their customers and for them and for your business is the mindset that we want in people that are all working together towards building this product. It’s not just enough to have that direction, right? Although that’s quite a lot of the story, they also need the knowledge and skills. They need to understand the theory behind why we’re doing things a certain way so that they can take that story forward.
It’s not them doing it a particular way because they’ve been told to; they understand the theories and principles behind the things that we’re trying to do. They understand why they need to pay more attention to the quality of the product. They understand why they need to be trying to engage with the customers more. Every developer in your organization should be able to engage with customers. Almost every developer should be able to engage with customers and communicate with them effectively so that we can maximize the value.
Because ultimately, the people that are doing the work on the teams that are working on your product are the ones that are making the majority of the decisions. Even if you feel like that’s not true, it is true. They’re making the majority of the decisions every day. Every person on every team in your organization is making hundreds, if not thousands, of micro-decisions that will impact the future of the product, the future of how users use it, and they’re not asking anybody because they don’t believe that anybody else would understand the situation, right?
So the way I think about it is, if I was—my background is software engineering—so if I was making a decision on whether I use an array or a linked list, right? A linked list might be more efficient for the thing that I’m trying to do, but if I’m looking forward into the future, if I’m thinking about what it is we’re trying to achieve, I’m collaborating heavily with the business. I understand the goals and objectives of what it is we’re trying to achieve. I’ve been communicating with customers, and I understand their wants, needs, and desires. I might realize that a linked list is not the best solution for this particular problem, and I should use the less efficient array because it’s going to provide us with more benefits going forward into the future.
And that sort of choice, that’s just one choice that might have taken me 20 seconds to make and a couple of hours of implementation in my system, but that could have an implication on what it is we’re able to do tomorrow, what it is we’re able to do next week. And it would take a bunch of rework to go back and make those changes later. Now we want to be able to go make those changes later, which is why good testing, good architectures, engineering excellence will mean we can.
But what if we could make more of the right decisions, and every single person on the team could make more of the right decisions as we flow towards the end of our product? Because the further we get down that line of building our product, the more of our product we’ve actually created, right? Our inventory of product is bigger, and making changes to that, rearranging the warehouse, right? If you’ve got 10 things in your warehouse, it’s super easy to rearrange. If you’ve got 100,000 things in your warehouse, it’s not very easy to rearrange, right? And the chances of something going wrong, something going missing, all of those things is pretty high.
How do we create an environment within which those things are just not true? We’re not going to have—we’re, in general, not going to have those mistakes because everybody is paying attention to what it is we’re trying to do. We’re working together towards that common goal. We’re making decisions based on the best possible outcomes with the inbuilt knowledge of what’s happening in the future. Intent-based leadership, right? How do we create that story at the team level so that we’re all going in the same direction?