Disclaimer: In my career, I’ve worked with smart people who happened to be analysts. Awesome people always bring great things to the team, no matter what they do. This is a hate-the-sin-not-the-sinner post.
Software development brings together three kinds of expertise :
- Domain specialists know the problem and its context inside out.
- Technical experts understand the best ways to design and build solutions.
- Managers know how to keep such a project on track.
Functional analysts are none of these. We bring in people who don’t understand the problem space and have little understanding of the technologies used in designing a solution. They just create interference on the line between domain and tech experts.
We have a word for writing down specifications in such detail that there is no room for interpretation. It’s called coding, not requirements gathering.
The magic of agile software development happens when domain and tech experts get together and design a better solution. Something they could not have come up with two weeks ago. The cross-pollination of knowledge between these two fields of expertise is your superpower. An intermediary that plays Chinese Whispers is your Kryptonite.
Are your developers playing catch-up with requirements that have changed yet again?
Are your domain experts disappointed at the results of your demos?
Do your analysts have to relay every question back to the customer?
Do you feel like nobody understands each other?
Cut out the middleman. A software developer should talk directly to domain experts. Let them bond. Typing is just 20% of the job. Both parties can learn from each other and grow a fantastic product.
Isn’t that what you’ve set out to do?