Our project community is always bigger than we think. Why don’t we invite them over for coffee and introduce ourselves?
Jonathan Rasmusson – The Agile Samurai
One of the most critical steps in Agile development is meeting your neighbors. In fact, identifying your neighbors is part of the inception deck that should be done before starting your project, which includes the following questions:
- Why are we here? What is driving this effort right now?
- Who (what) are the target audience segments, what do they seek?
- What are the biggest problems we face, that we’re trying to solve?
- What does the solution look like? Are there examples?
- What are we NOT going to do?
- Who and what third parties do we need to interface with? (neighbors)
- What is keeping us up at night?
- How big or small of a project are we dealing with? Time and money?
- Rank the project management variables from fixed to fluid
- What is the absolute minimum viable product (MVP)?
A neighbor is anyone or anything external that interacts with your project. It can be a third party system that is going to be used in your project, an external development team or your customer’s sponsor.
For third party systems, ensure that you document well the role of those systems in your project, understand how they work and how they could impact your project if there is a failure on that end. Once you have done that homework, set expectations with your product owner and stakeholders of the project, so they clearly understand the risks if those third party systems fail, in order to avoid misunderstandings in the future.
For “human” neighbors, we recommend to invite them to participate in early stages of your project, consider them part of the team, develop confidence, credibility and reputation. You want them on your side, specially when something hairy is happening in your project and you need their help to determine the solution.
In government contracts it’s very common to interact with other teams. When we participated in the development of the NASA TechPort, we created a great working environment with teams from three different organizations, including NASA. There was a strong confidence and great respect between each other, and that allowed us to perform really well, regardless of working in a distribute environment and under different companies. In fact, we won the NASA Group Achievement Award in 2015, in great part because we became a highly performing team.
I’ve also participated in other projects where neighbors are introduced in the middle of the development of the project, when critical decisions have already been made (say, the use a platform, framework or library), only to find out that those critical decisions don’t satisfy what they need, or are simply not supported. These are some examples:
- After working in a new WordPress website for two weeks, an unknown neighbor (our customer’s development team) who was not familiar with WordPress, questioned the technology and requested to have a custom database to hold the data of the project. Project was cancelled.
- After having validated with our client the functionality of a search engine, which was performing well in different dev and QA servers owned by our client, we discovered that its performance was terrible in the production environment once it was released. That production environment is a neighbor that we didn’t control, we couldn’t even access. That performance problem was never solved, we ran out of budget trying out other search engines recommended by the server administrators, which didn’t work better than the one we originally implemented.
- After having developed an entire pilot project for an e-learning system led in great detail by our product owner, and just getting ready to launch it, we met the stakeholders, sponsors and final administrators of that system, who asked us if that system was going to support the 200,000 concurrent users that they were expecting to receive once it was launched. As you may imagine, that project didn’t end well.
You don’t want to experience those scenarios. Make sure you meet your neighbors.