The principle of "owning work from inception to delivery and beyond" is not just a best practice but a fundamental ethos that drives success. As a software engineering manager, I have observed that successful engineering teams perform more effectively when this principle is applied. It has a direct impact on both team performance and product quality.
At the core of this principle is the understanding that we are a cohesive unit of engineers, UX designers, quality assurance specialists, product owners, and DevOps professionals. We are not isolated entities working in silos; instead, we are a collective force responsible for every aspect of our projects. Our sum is greater than our parts to use that often quoted saying. But that collective benefit is realized by taking ownership at every stage of the engineering process, from the initial idea to post-launch support.
Embracing Collective Responsibility
Our team operates on the belief that ownership is a shared responsibility. This means that engineers are involved in understanding user experience concerns, UX designers are aware of technical constraints, QA specialists are engaged from the beginning of the project, and product owners are aligned with the development and testing processes. This cross-functional collaboration ensures that everyone is invested in the success of the project, leading to better outcomes and a more cohesive product. How do we accomplish this?
Proactive Problem-Solving
One of the most significant aspects of owning work is proactive problem-solving. We do not defer, delegate, or avoid taking responsibility because we think it is someone else's job. For instance, we do not expect our QA team to find bugs or issues in our code before we make an effort to find them ourselves. Each team member is encouraged to conduct thorough testing, peer reviews, and code refactoring to catch and resolve issues early. This proactive approach not only improves code quality but also fosters a culture of continuous improvement.
Supporting and Coaching
Supporting and coaching the team to embrace this principle is essential. Here are a few strategies that have been effective in our team:
-
Lead by Example: As a manager, demonstrating ownership in your work sets a powerful precedent. When team members see their leaders taking responsibility, they are more likely to follow suit. This includes taking ownership of both the successes as well as the failures. When things break or go wrong in production, it is important to not redirect the impression of responsibility to someone or something else, but instead to take responsibility for what the team has done.
-
Encourage Collaboration: Regular cross-functional meetings and collaborative tools help break down silos and encourage team members to share knowledge and responsibilities. This means when we plan initiatives and work for the teams, we include QA, UX alongside product and developers. We share what we are thinking of doing with DevOps and we invite other team leads to attend planning and handoff meetings so that they have context and insight into what is happening. For my team, we also have a 'scrum of scrums' on a weekly basis to keep all teams informed of work that may impact them or at the least make them aware of other work that is happening. We have a DevOps & engineering sync meeting on a weekly basis so that we are sharing what may impact from one team to the other. I encourage developers to reach out to UX on a proactive basis to talk about what the best experience would be, to ask questions and to solicit feedback. All of these are ways to encourage collaboration.
-
Provide Training: Offer training sessions on best practices in code review, testing, and UX principles. This equips team members with the skills they need to take ownership of different aspects of the project. As an engineering manager, I try to read articles and opinions about how high performing teams are able to achieve success in these areas and then share that guidance in 1:1's as well as weekly articles for the team to have the opportunity to read. We also utilize training resources like Pluralsight and Udemy to provide a library of training courses to the team with an emphasis on how learning makes not only the individual but the team better equipped to own the work that we do.
-
Recognize and Reward: Acknowledge and reward team members who exemplify the principle of ownership. Celebrating successes and learning from failures together reinforces the value of collective responsibility. Take time to publicly acknowledge when people on the team demonstrate the kind of ownership that you want them to display. This is powerful not only when we've done something well, but when you see in a failure situation someone own the process of diagnosis, troubleshooting and implementation of a plan to restore functionality, letting them and the rest of the team know that you appreciate how they approached the resolution with an 'ownership' perspective is valuable.
Reinforcing the Culture
To reinforce this culture of ownership, it's crucial to create an environment where taking responsibility is valued and supported. This can be achieved through:
-
Open Communication: Foster an open and transparent communication culture where team members feel safe to express concerns, share ideas, and ask for help. When a team fears to ask for help, it is because they fear the consequence of not knowing. Removing fear of indicating that we simply don't know will help a team to improve in their communication.
-
Feedback Loops: Implement regular feedback loops to ensure that everyone is aligned and aware of their responsibilities. This includes sprint reviews, retrospectives, and one-on-one meetings. This is especially important in a remote work setting. It is important to be thoughtful, deliberate, and intentional about having meetings and creating opportunities to have feedback. Additionally, remembering that as a manager feedback is a two-way street and that you expect and want feedback that is both upward and downward.
-
Empowerment: Empower team members by giving them the autonomy to make decisions and take ownership of their tasks. Trusting your team builds confidence and encourages a sense of responsibility. As a engineering manager, this means delegating and trusting that the delegates will act with capability to resolve or implement the work.
Conclusion
Owning work from inception to delivery and beyond is more than just a principle; it's a commitment to excellence that drives our team forward. By embracing collective responsibility, proactive problem-solving, and a culture of support and empowerment, we create an environment where everyone thrives. As a software engineering manager, my goal is to continue fostering this ethos, ensuring that our team not only meets but exceeds the high standards we set for ourselves. Together, we can achieve remarkable results and deliver outstanding products that make a difference.