Do you feel overwhelmed? Are customers or stakeholders complaining? Has team velocity tanked?
Don’t feel bad. These problems are quite common in custom software projects – and they are solvable. The good news is that technical complexity is probably not the issue. It almost never is when a project has trouble. No, it’s much more likely that you have a problem in one of three areas:
- Lack of authority
- Lack of transparency
Those don’t sound like technology problems, do they? Alas, we (people) get in our own way and cause most of the problems you see on software projects. But instead of focusing on the problems, let’s look at the positive ingredients you need to win the custom software game:
Strong Product Owner
The Product Owner (PO) carries the vision for what your product should become. To be effective, they should be:
A strong PO will feed the team a set of features that have been prioritized by business value, make decisions quickly on behalf of the company, be available for questions, and invest in the team’s success. They constantly work ahead of the development team, clarifying requirements and ranking features so that the team never runs out of work that is valuable to the customer.
Everyone on the team should be able to quickly answer these questions:
- What are the most important items to work on?
- When is the next delivery expected?
- Who is working on what?
- How is our progress?
- What is in our way?
Teams that cannot answer these questions spin their wheels and waste time. They also frustrate management by creating a shroud of mystery around what they are producing and when. The team needs a proven pattern to follow so that everyone marches to the same delivery drum. This is what the Scrum ceremonies provide. They bring structure and focus without micromanaging your talent.
A Safe Place
Tension seems built into software development.
On one hand, there are stakes to the game we play. Money can be wasted. Market opportunities can be missed. Jobs can be lost. We must extract maximum value from our talent investment. We must also safeguard the public and customers and whoever else could be affected by our work. We might not work at a nuclear plant or in the ER, but there are still important matters before us.
On the other hand, software is built by people. We want to be liked, to have respect, to feel connected, to experience mastery, to contribute. Some days our foibles are louder than our strengths. We have a deep-seated need to be heard and to be understood. We fear rejection and the disappointed look.
Balancing these concerns is a delicate dance. A hierarchy of principles must be applied. People are more important than projects, generally. But personal issues must give way before a looming team deadline. We are always balancing and rebalancing the people-vs-performance equation. Wisdom cannot be reduced to a formula.
While our typical project problems are solvable, they are not trivial. Pareto tells us to move the biggest rocks first in order to get the most progress:
- Make sure the team has a stack-ranked list of valuable items to pull from.
- Give them a proven, repeatable development rhythm to follow.
- Increase collaboration and idea flow by safeguarding team members.
Photo credit: Wayne Stadler Photography via Foter.com / CC BY-NC-ND