2017-11-17 - Engineering Management
People sometimes ask me which development process I would recommend to their team. Unfortunately, the answer is not that easy because I believe that there is no golden bullet. A development process is individual and depends on the people, culture, leaders and stage of your business.
But, there are four attributes that every solid development process should fulfill. The list is no particular order.
Involve engineers as much as possible in the planning of tasks and projects. Give them context about the business purpose, goals and impact. In general, share as much information as possible.
Why is it essential?
Engineers often have valuable input and feedback regarding scheduled tasks and projects.
Educate them about the business. They build solutions for the industry and therefore, they need to understand the needs and goals.
How do we involve engineers?
Many approaches could be useful. A general rule that we try to follow: Involve engineers as early as possible in the product management process. For example, we discuss projects upfront to figure out open issues and technical limitations. Already that makes a huge impact. Additionally, we write the business purpose down for every development story if helpful.
Companies and especially startups have many opportunities but limited work power. That known, creating focus is essential. Don’t let a team work on too many projects at the same time. It will create distractions and many context switches which the team will pay for at some point.
How do we create focus?
The most important foundation is a prioritized backlog. It contains an ordered list; from top to bottom; with the upcoming tasks and projects. The team handles only one major project at the time until it is in production.
On top, we define the focus for a specific time range through development cycles (sprints), e.g. project X is the primary focus for two weeks.
On the company level, we utilize OKRs (Objectives and Key Results) for mid- and long-term planning. The framework helps to define the most important topics and sets the focus for a quarter.
You usually don’t build products for yourself. People depend on it, internally and externally. Your customers use your SaaS to fulfill their tasks, the sales team sells the product, and the marketing team promotes the offerings. All of them want to know what projects you will develop and when they will be available.
Commitment and transparency can solve all these requirements. Sounds easy, right? This is the most challenging part, especially for a fast-growing company.
How do we encourage transparency?
We regularly hold sprint demo session within the company and share the progress on the product. Nothing is more efficient than live demoing it in front of the people.
For users that we can’t reach personally, we utilize Intercom to share changes or new features. Messages get displayed as context relevant as possible in the user applications.
As mentioned above, OKRs create transparency across the whole organization as well. Everybody within the company knows the most valuable topics, projects and the time frame of the execution.
Commitment is the foundation of successful execution. Your company and development team will lead nowhere without commitment.
How do we foster commitment?
First of all, leaders and engineering managers can’t dictate and force commitment. I have already seen so many managers and teams failing because the commitment came from the top.
The only chance to win the game is by involving engineers in the planning and let them make their commitment. Engineers are accountable only if they make their commitment.
For example, in sprint meetings, we estimate the workload as a team and commit targeted achievements. Obviously, estimations can be wrong, but over time you can improve them by learning from the previous weeks.
I can’t tell you what development process will work for your team and environment best, but I recommend you to review your process against the four key attributes regularly. You should likely adjust your process if you can’t confidently give examples how you foster the attributes above.
Written by myself. This article has been originally published on blogfoster’s engineering blog.