Inspired by the post What Increases Project Risk? which explored the collaboration between project managers and the management function, here’s an ‘agile process improvement’ response to one of those risks.
Do developers need to understand the business before coding?
Right from the very first telling of agile methods, many people recognise there is a significant dependency on technical proficiency. Indeed, a baseline architecture and adequate requirements-gathering are two of the four ‘Early Stage Deliverables’ – tell-tale indicators for success.
With no job titles in a Scrum team and with the imperative for agile teams to be self-organising, there is a risk of running sprints that are so disconnected they don’t help to advance the project as a whole. This is why it falls to the Product Owner to prioritise the work of the team to the benefit of the business.
Product Owner ‘Owns’ the Requirements
POs need to know the requirements at a decision-making level, so they can prioritise the work and make decisions regarding business rules for the development team.
Most POs have detailed knowledge in some areas and can work as both PO and a development team member, but this is effective only if the team is small and there are no other calls on the PO role.
The Need for Business Analysis
It’s for the team itself to perform the activities normally associated with business analysis. Namely: business modelling; requirements management; requirements gathering; solution recommendation and validation; test specification; elicitation; and communication with the business.
Our Developers Don’t Understand our Business. OK?
You might expect the response to this question to be ‘you are the weakest link, goodbye!’ Inconveniently, it ignores the reality of many development situations – some developers really just want to write code, and don’t want to know about the business. On the other hand, there are clients who want to keep developers away from the business. There are no rules when it comes to people’s preferences.
The Team is Responsible
To set the record straight, it doesn’t matter who performs the business analysis function. It can be a developer or a business analyst, a PO, a customer, user or a customer services manager – as long as someone understands and explains the customer’s need (requirements) and recommends the solution.
In an agile (Scrum) environment, it is the development team as a whole that develops the solution it forecast it could deliver during the planning meeting.