Requirements: Whose job are they anyway?

1,028 views

Published on

A discussion of who is responsible for requirements (and specification) in software development
- Business Analysts? Product Managers? Architects? Developers? Tester?

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,028
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Requirements: Whose job are they anyway?

  1. 1. allan kelly allan@allankelly.net Twitter: @allankellynet http://www.allankelly.net Requirements: Who’s job are they anyway? Agile Cambridge September 2013
  2. 2. Allan Kelly… Chapters in… • Business Analysis and Leadership, Pullan & Archer 2013 • 97 Things Every Programmer Should Know, Henney, 2010 • Context Encapsulation in Pattern Languages of Program Design, vol#5, 2006  Consulting on software development & strategy  Training for Agile Author – Changing Software Development: Learning to be Agile (2008, Wiley) – Business Patterns for Software Developers (2012, Wiley - ISBN: 978-1119999249) – Xanpan: Reflections on agile (work in progress) https://leanpub.com/xanpan
  3. 3. Who does Requirements where you work?
  4. 4. What is a Requirement anyway? And what’s the difference between a Requirement and a Specification?
  5. 5. Requirement or Specification? Tom Gilb Competitive Engineering, 2005, p.400 & p. 418 “A requirement is a stakeholder-desired, or needed, target or constraint” “A ‘specification’ communicated one or more system ideas and/or descriptions to an intended audience. A specification is usually a formal, written means for communicating information”
  6. 6. Michael Jackson & Pamela Zave Deriving Specifications from Requirements: An Example, ACM Press 1995 A requirement is a desired relationship among phenomena of the environment of a system, to be brought about by the hardware/software machine that will be constructed and installed in the environment. A specification describes machine behaviour sufficient to achieve the requirement. A specification is a restricted kind of requirement … Specifications are derived from requirements by reasoning about the environment, … These ideas, and some associated techniques of description, are illustrated by a simple example.
  7. 7. Requirements & Specification • Specifications derive from Requirements • A requirement – Is the desired outcome • A specification – Contains details
  8. 8. Dev Team – Coders, Testers, etc. … Requirements go In Working Software comes out Documents, Stories, User Stories, Cukes, Product Backlog Item, Quantum of Value (QoV) Business Value Increment (BVI)
  9. 9. Dev Team – Coders, Testers, etc. … Requirements go In Working Software comes out Team need to know what is needed Specifications might be worked out inside if necessary
  10. 10. Requirements go In Working Software comes out Stakeholders don’t always agree Things change
  11. 11. • Who does your evaluation? • What criteria do they use? An aside: Evaluation Please please please! Close the loop!
  12. 12. Keep work flowing! Teams will be more effective if arteries are clear Development Team Working software Every 2 weeks….
  13. 13. Requirements go In Stakeholders don’t always agree Things change Requirements Engineering The Need Side
  14. 14. Nature Abhors: A Vacuum! • If you are lucky… – Someone will quietly come forward – They will be competent & passionate – They will double up their existing role • If you are unlucky… – Several people will assume the role – They be be incompetent & passionate – They will stop doing their existing role Grass Creative Commons license from WikiCommons by MarcusObal
  15. 15. Requirements Engineering Business Analysts Business Partners Product Managers Product Analysts Architects, Developers, Dev Managers, Project Managers, Testers, SMEs, …. Wellintentioned amateurs TheProfessionals
  16. 16. AmateursProfessionals Product Managers & Business Analysts Requirements? Developers, Dev Managers, Project Managers, Testers, Architects…. Subject Matter Experts Domain Experts
  17. 17. Should developers do Reqs? • Possibly… – small work effort, small team • Are they presentable to customers? • Is it best use of their skills? • Do they have time? • Do they have empathy? – with users/stakeholders?
  18. 18. Architects? • Again: Is it the best use of skills? – Do they have the skills? – Do they have the time? • Generally: No – Architects have empathy with tech not people – Architects represent tech & code – Architects should be foil to Requirements people • Only for systems were technology dominates
  19. 19. And the SME/Domain Expert… • Sometimes • Subject Matter Experts are great for Specs – Know detail • But do they… – Have Big Picture? – Are they too close emotionally?
  20. 20. Rocket Scientists • Combine multiple skill sets – Domain knowledge, probably spent time in field – Technology, probably can code – Might have a PhD • Probably have another title – BA, Product Manager, Architect, … – Chief Engineer – Just roll with it - Who cares about titles?
  21. 21. So who should? • Requirements Engineers – Business Analysts – Product Managers
  22. 22. Requirements Sub-Species Business Analyst “The answers are in this building” • Works: Corporate • Lives: Canary Wharf • Users • Wants: Happy Stakeholders • Measured by: Cost • Professional Proxy Product Manager “The answers are not in this building” • Works: Product Company • Lives: Silicon Valley • Customers • Wants: Happy Customers • Measure by: Revenue • Professional Customer Note: Plural of Customer is The Market
  23. 23. Product Owner huh? • Scrum Product Owner is the Bastard Child of Business Analyst and Product Managers • Product Owner as defined by Scrum is a pale imitation of a Product Manager • Product Owner is the really important role – (but Scrum Master gets all the attention) • Product Owner is useful alias for a BA or PM – And others…
  24. 24. When worlds collide! Worlds are increasingly overlapping • BAs need to pay more attention to out there • Prod Mgrs need to pay more attention to in here • Everyone needs to start with real customers “A customer has a choice to use another product. A user doesn’t.” Allan Kelly “What’s the difference between a user and a customer? The difference is a customer has given you their credit card data.” FT 28 Jan 2013
  25. 25. Take-away 1. Who’s job is it? – Horses for courses • Business Analyst • Product Manager • Specialist SME • Rocket Scientist SME 2. Do NOT tolerate vacuums 3. Product Owner is an alias http://blog.allankelly.net allan kelly Software Strategy Ltd. www.allankelly.net allan@allankelly.net Twitter: @allankellynet

×