Requirements–we don’t need them!

The thing I love about twitter is that we get to have great conversations with people who are passionate about a subject in the same way we would over a beer.  Take for example the conversation I stumbled upon on the evening of 15th April..

SharePoint Requirements documents we need a template

Richard Harbridge was looking for a decent template to capture SharePoint requirements to which 21apps own Ant Clay responded:

SharePoint Requirements are dead to me, long live outcomes

Ant was referring the the 21Shift Model where we focus teams on outcomes.  This started what turned out to be a very lively and ultimately agreeable discussion

image

Richard responded with the idea that requirements were a journey, an opportunity for Shared Understanding and more than just outcomes.

image

image

At this point there was agreement in that we needed to get a Shared Understanding, but a clear view from Ant that Requirements documents were not what was needed; and the journey was absolutley part of the the process of defining outcomes and being able to track these back to the vision.  Requirements documents carry too much baggage and tend to focus on stakeholder ‘wants’

image

image

Dux joins the conversation, noting that ideally requirements should not be a document of ‘wants’ which, and I think this is shared by Dux as he used the ‘ideally’ word, is often not the case.

image

image

I joined in the conversation to reiterate where we (21apps) see the value in aligning the organisation vision to measureable outcomes mapped to a solution, which some may choose to document as Requirements.  This was in agreement with Richard in that there needs to be a journey in order to get Shared Understanding – but I disagree that Requirements collection facilitate that journey in and of themselves, and as Ant pointed out more often than not they result in a lack of alignment to a vision or worse a list of technology features with no coherent view of what the goal is.

image

The conversation, as is often the case with twitter chats or conversation over beer, went on to talk about the baggage that is associated with terms and how words like Requirements or Project Management can carry a lot of implied meaning.  Something for another blog post perhaps, for this post I want to reflect on Requirements and why we don’t need them!

But we ended with agreement that we are all on the “Same Page”, and that the journey, discovery and Shared Understanding are the essential elements.

Which is why I reiterate that Requirements – we don’t need them!

What no Requirements?

My background is in development, I worked with eXtreme Programming in early 2000 and have used agile techniques ever since.  The benefits of agile development over the traditional waterfall approach has been debated long and hard and its generally accepted that adopting agile approaches lead to delivery of solutions much more closely aligned to what the business needs.

So why do I think that we need to move on from the use of Requirements in our SharePoint Projects?

The Waterfall Model

350px-Waterfall_model_svg

http://en.wikipedia.org/wiki/Waterfall_method

Right there at the top of the Waterfall Model is the Requirements step.  This is where, in the waterfall approach, you write down everything it is that you want from the system and then this is fed into the next steps until it ultimately is delivered.

The problem with the waterfall approach is that it assumes you (and I mean the users, managers, business) actually know what it is you want.  What actually happens is people are given ‘one shot’ at getting their requirements written down before it gets taken on by the SharePoint team to build and configure and six months later presented back to the users as the solution they supposedly asked for.

Most users will never have seen the version of SharePoint being deployed, they won’t really have had time to think about what they want to use it for or how it could help them change the way they work – how do you expect the user to be able to write down their requirements?

Even if you are an experienced SharePoint consultant it is hard for you to be able to get the users to articulate exactly what it is they need – you and the users will find it hard to be on the same page.

A warning: Often you will attend meetings where the technology solution is discussed, agreements are reached and everyone is happy with what’s being decided.  A good SharePoint consultant will be able to ensure that the solution doesn’t have any horrors, but they will often get carried away by the desire to cover all of the product features and forget about the real goals – it’s not their fault Microsoft themselves promote solutions based on product features.

Lack of user involvement traditionally has been the No. 1 reason for project failure. Conversely, it has been the leading contributor to project success. Even when delivered on time and on budget, a project can fail it it doesn’t meet user needs or expectations.

Project Management: Criteria for Success – Feb 2001

Lesson from Agile

A lot of what I will cover here is based on a great post by James Shore, Agile Requirements Collaboration. James talks about this with regards to software development, which is where a lot of the innovation and mainstreaming of these techniques has developed, but the concepts are equally valid in SharePoint projects and form a basis of our 21Shift Model.

In agile projects, be they Scrum or otherwise, we refer to ‘requirements’ as stories.  In the 21Shift model we also use the term ‘outcomes’ – the stories define the outcomes that we use to measure the success of the project.

So where do stories come from in the first place? Well… somebody makes them up. Somebody has to have a vision of what the product is going to be. On an XP project, that person is usually called the “on-site customer.” You’ll also hear terms like “lead customer” and “product manager.” or “Product Owner” in Scrum.

This is the first and one of the biggest challenge we face on SharePoint projects, in fact a lot of agile development projects also face this problem.  Who is able to be “Product Owner”

The product owner needs to have a strong, clear vision of the solution, but that doesn’t mean he or she is solely responsible for it. The product owner will work with interaction designers, business analysts, real customers, marketers, users… Ultimately, though, somebody has to coalesce all these conflicting views and come up with a clear, unifying vision. That’s the role of the product owner.

The Product Owner needs a clear, unifying vision.

In order to define the outcomes, or requirements if you insist, the Product Owner needs to have a clear vision of what it is the SharePoint project is going to deliver. They have to work with a diverse group of people and ensure they have a Shared Understanding amongst all stakeholders so that they can define these outcomes.

See the SharePoint Governance and Information Architect Master class for ways to get that Shared Understanding and the Vision stage of the 21Shift Model

Iterations

Unlike the the waterfall approach we do not expect the Product Owner to define all of the outcomes upfront, the solution should be delivered in an iterative approach adding value to the solution in manageable chunks.  Why is this so important?

In waterfall we expect all requirements upfront,  but how can you expect a user to tell you want they want when they don’t know what they want?  By using an iterative approach your users get to see the solution as it’ develops, this results in a great understanding of the solution but also the problem they are trying to solve.

The high level vision could remain the same, but through each iteration the details of how to achieve that vision are discovered.

This brings us to the idea of “latest responsible moment.” “Latest responsible moment” is a core agile idea. The term comes from Lean Software Development. The idea is that you want to put off decisions as long as you can: to the latest responsible moment. But it’s the latest responsible moment, not the “last possible” moment. That wouldn’t be responsible.

The reason we do this is because putting off decisions is cheaper and results in better decisions. Money we spend tomorrow is cheaper than money we spend today, and between now and tomorrow, we’ll learn more things about our environment and the decisions we need to make. Plus, things could change so much that the decision isn’t relevant any more. If we’ve spent the time and effort to make the decision, that money is wasted. So we wait as long as we responsibly can.

Focus on more detail over time

21apps Cone of Uncertainty

The diagram above I have heard referred to as the “Cone of Uncertainty”,  the further away from the delivery of the solution the less certain the Product Owner is about the precise details needed to implement the solution.

As an example:

Vision:

The Vision could state that we need a consistent approach to project documentation across the organisation to reduce rework, improve quality and align our delivery to the professional image we aspire to.

Outcomes:

We understand what it is the business needs, avoid technology discussions, and focusing on measurable improvements.  This stage really does help with an Retrun on Investment (ROI) needs.
In this example a measurable outcome could include (avoiding platitudes):

  • 80% of  project documents based on the correct template.
  • 50% decrease in the time taken to locate previous project documents based on similar technology.

Solutions:

As we move into the solutions stage we could identify that we needed to have standard document templates, with defined metadata, that are managed centrally and used for all projects and that the refinements are reflected in search centre.

Delivery:

We need 5 document templates, 8 metadata columns defined, any integration with the actual document template, perhaps use of a content type hub for central management and a policy around the use of the platform. We also need to develop features to configure the project templates automatically.

What this allows us to do is break the solution down into manageable iterations, where the specific details around each of the areas of the vision are refined in greater detail as they get closer to the actual delivery.   The Product Owner is also closely integrated with the delivery team so they can actually see what the solution will look like, how it actually works in SharePoint.

Traditionally agile teams have worked from a Backlog, a list of stories that define the solution, and as they get closer to delivery more detail is added.  In the 21Shift model we have found that reviewing the vision and outcomes for every iteration ensures they still apply, but also to keeps them fresh in the teams mind.

By working at the “latest responsible moment” you can avoid the need to write long requirements documents and allow the Product Owner to refine the details from Vision to Outcomes, with details added as the solution is defined and delivered,  before moving onto the next iteration.  Thus avoid the need for Requirements in the traditional sense, and relying more on the use of stories and collaboration.

Conclusion

To summarize, you need a visionary product owner to work with your team. If you have one, you don’t need to define all the details of your requirements in advance: you can wait until the last responsible moment. If a release is more than three months away, all you may need is a vision for that release. Up until six weeks before implementing a feature, a basic description of the feature on a card may be enough. You’ll need stories for planning about six weeks before implementing, and once you start implementing a feature, you should specify it in detail.

By working in iterations, understanding the vision and defining measurable outcomes it is possible to deliver solutions that the meet the users needs and expectations and align the to vision for the organisation.  All without the need to write Requirements documents in their traditional form.

In SharePoint projects this iterative approach allows us to make much more use of the out of the box features and functionality, we can keep things simple and also have the ability to stop early if the solution is good enough.

This entry was posted in 21shift and tagged , , . Bookmark the permalink.
  • http://www.novolocus.com Andy

    Hmm. I’m afraid that I don’t see how your example outcomes aren’t requirements. Good (ie. clear, measurable) requirements, but requirements nonetheless. In fact, those are almost exactly the sorts of things I want to see in a requirements document.

    I totally agree with Dux – they shouldn’t just be a list of ‘wants’. They should be as ‘outcomes’ were being described. And just because someone says that something is a ‘requirement’ doesn’t mean it should be blindly accepted. We have a professional duty to reject requirements that aren’t aligned with business interest.

    I would also agree that often the requirements you’re given are total rubbish.

    I’m also not buying that requirements are static in Waterfall – that’s what you’ve got a change control process for. And avoiding needing that is one of the benefits of Agile. However, in my experience, very few organisations are willing to plan their budget for an indefinite “we’ll know when we get there” agile project.

  • http://www.rharbridge.com Richard Harbridge

    Whoa whoa whoa.

    This sounds like it will be fun to take an ‘alternate’ point of view.

    I love the majority of this post (and agree with almost all of it). However! This statement: “Requirement documents carry too much baggage and tend to focus on stakeholder ‘wants’” is something I completely disagree with. From my experience “Requirement documents force individuals/groups to collate, combine, and enhance the understanding of how different components, requirements or processes relate to one another.”

    The second item: “All without the need to write Requirements documents in their traditional form.” I also disagree with for similar reasons.

    Requirement documents (such as building use cases and functional specifications) force the business analyst or people envisioning the system design to ‘concretely’ walk through the process and steps/components of a solution.

    This is an EXTREMELY important process. You touch on it later using agile paradyms but the reality is that when creating a classic “Use Case” it forces the writer/author to really carefully consider the ‘requirement’ or process the requirement relates to. This has considerable value. The structure of the use case includes exceptions, pre and post conditions, how the actors are involved, what other use cases are related. These things lead to a structured approach that validates and consolidates individual and group understanding on the ‘outcomes’ that are desired to be achieved.

    There is a difference between large and small projects (I completely agree iterative and small project approaches work best with SharePoint) but there are still plenty (hundreds) of reasons why ‘classic’ requirements and the processes/approaches/artifacts that relate to them add massive value to “SharePoint” projects. :)

    As a simplistic example of when you do not need a complex set of ‘classic requirements’:
    Let’s say you follow an approach where you create mock ups and page designs for key pages or components. In that example you don’t need requirements that state “label A will be above and to the left of section A” – this is already indicated by the mockups/designs.
    When would you want to break out more requirements? To document/work through things like “Label A only displays when these conditions are met:” Or “Label A can be updated by these roles…”

    The challenge I have with too much focus on outcomes is that it can lead to misunderstanding, or misrepresenting key challenges or considerations that must be acknowledged and dealt with in order to achieve the successful outcome without ‘adverse side effects’.

    Just some additional thoughts. I apologize as I am writing this quickly so it’s not as well organized as I would have liked, but hopefully it explains my general feeling of the importance of ‘traditional’ requirement related documents and processes. :)

    Would love to discuss further! Perhaps even on twitter :)

  • http://www.21apps.com AndrewWoody

    Andy,

    We agree the solution needs to align to the business needs.

    Outcomes should avoid technology, and you haven’t said this so apologies if i’m missing the point, requirements documents tend to be very much based on the technology solutions.

    I want outcomes to challenge the business to really think about what it is that they do – what measurable benefit are they expecting to get from this solution. All to often the teams, and this is my experience, get into the specifics and detail when forced to do a requirements document – which means they are busy looking productive, producing documents that can have lots of content – but mostly it’s made up of specifics all defined before they need to be.

    Allowing the business to first define measureable outcomes, without focus on the solution allows them to explore whats possible – perhaps the solution isn’t even a technical one. Once the outcomes are defined, it is then possible to dig into the solution, this is where the detail is provided – but using the “latest responsible moment”. For example, we understand the solution requires a content type hub becuase that will allow us to provide centrally managed content types it may be enough detail at the solution stage. At the delivery stage, and the product owner is with the team, the specifics can be defined as to where this lives, what site collection, do we need policy/governance around premissions – does this already exist from a previous iteration etc. adding the specifics at the “latest responsible moment”.

    With regards to “very few organisations are willing to plan their budget for an indefinite “we’ll know when we get there” agile project.” I agree getting customers to accept a better way is difficult,I will cover in a future post, but I will say that fixed price fixed scope projects don’t work well for either party.

  • http://www.rharbridge.com Richard Harbridge

    I liked that explanation. So are you saying JIT (just in time) requirements are sort of what you are going for in “Latest Responsible Moment”? I apologize as I haven’t heard the term before. (I don’t know much about Agile methodologies.)

    I wonder if the latest responsible moment (at times) is not during delivery but during (at times) the planning stages. Sometimes due to the complexity of the technology (and it’s inherent limitations) it might make more sense to change the plan/goal of the outcome to achieve something that is more feasible/beneficial while still being practical and executable.

    A great example is many integration projects. There is tons of value in having a massive amount of integration, but there is also almost a ‘value threshold’ where the extra effort to move beyond that point has diminishing returns to the business.

    Will continue to mull this over, but really interesting thoughts…

  • http://www.21apps.com AndrewWoody

    “Requirement documents force individuals/groups to collate, combine, and enhance the understanding of how different components, requirements or processes relate to one another.”

    The problem is that often a lot of the work is done too soon, I’m not saying you don’t do any of this, if you read James Shores original post he covers in more detail the reasons for adopting the “latest responsible moment”.

    The second item: “All without the need to write Requirements documents in their traditional form.” I also disagree with for similar reasons.

    Have you had to write/read a full systems design documents using the complete UML markup? Each aspect of UML has value in expressing the meaning of something, but people have learnt that the real value is using UML sketches because they need enough to be able to share the meaning. I think this is what you are refering to as a concrete way to explore a specific part of the solution.
    Requirements document that I have been exposed vary from a simple copy/paste from the Microsoft SharePoint feature list to a overly detailed 5 bullet point deep solution with every possible consideration covered (but taking 6 months to produce, by which time the business has changed).

    When would you want to break out more requirements? To document/work through things like “Label A only displays when these conditions are met:” Or “Label A can be updated by these roles…”

    I don’t say don’t do this, but do it at the “latest responsible moment” – which could infer that this is done during the delivery stage (meaning development in agile), its defined when it needs to be when the element is absolutely going to become part of the delivered solution.

    The challenge I have with too much focus on outcomes is that it can lead to misunderstanding, or misrepresenting key challenges or considerations that must be acknowledged and dealt with in order to achieve the successful outcome without ‘adverse side effects’.

    Doing Requirements documents up front doesn’t prevent this, you understand wicked problems – where the solution cannot be known until you attempt a solution. I don’t have the stats to hand but it’s clear that doing upfront requirements don’t work, often lead to late delivery and solutions that don’t always meet expectations, and rely on expensive change control processes – dealing with things in a collaborative way, ensuring shared understanding and adding the specifics at the “latest responsible moment” helps.

    We do agree in the most part, but saying We don’t need Requirements is a great way to challenge assumptions and start a debate :)

  • http://www.rharbridge.com Richard Harbridge

    Great examples. One last thought regarding:

    ————-

    Doing Requirement documents up front doesn’t prevent this, you understand wicked problems – where the solution cannot be known until you attempt a solution. I don’t have the stats to hand but it’s clear that doing upfront requirements don’t work, often lead to late delivery and solutions that don’t always meet expectations, and rely on expensive change control processes – dealing with things in a collaborative way, ensuring shared understanding and adding the specifics at the “latest responsible moment” helps.

    ————-

    I guess the only thing I have to add is that not ALL SharePoint projects are “wicked problems”. Perhaps I have just been lucky, but if I look at most of the projects I have done in the past 6 months for SharePoint they have all been complicated or simple and not as often chaotic or complex leaning towards wicked problems.

    When the challenge is a wicked problem than you are absolutely right. Writing requirements and in depth specs has little value since you haven’t diagnosed the needs, issues, or challenges. In fact as you suggest it’s necessary to take action and see what the response is. Prescription without diagnosis is malpractice – and in the same way we don’t accept it medically we shouldn’t accept it in the enterprise.

    Once it’s no longer a challenge of diagnosis but instead a challenge of solution definition/prescription definition (good clear measurable objectives exist) then it becomes important to have requirements.

    I think with that in mind I am in complete agreement with what you have outlined thus far in both this article and in the comments. :)

    I appreciate the time you took to help me better understand the direction you were coming from – I also think I will look further into the idea of ‘latest responsible moment’ to better understand it.

    Fundamentally I always live by this saying though: “Sooner is always better than later.” So the idea of ‘latest responsible moment’ sounds a little too much like procrastinating. :P

  • http://twitter.com/MichalPisarek Michal Pisarek

    I don’t know what to add to this but I have to say that this is bringing up some great points from everyone involved and is much appreciated.
    It seems that requirements documents are still necessary, certainly from a solution design perspective, but I love the debate around the timing of requirements documents, and the concept of “last responsible moment”.
    We have a pretty traditional waterfall model where I work (although we are working hard to change that) and I do agree that a solution based simply on user requirements without considering other aspects are useless. Visioning, alignment to strategic goals, success factors and all other elements should be, at the very least, an input and frame the requirements elicitation that occurs.
    I was a bit shocked by the title of the article but its some really interesting food for thought.

  • http://www.21apps.com AndrewWoody

    Michal,

    The title of the article was deliberately written to shock and encourage debate, so I guess on that score it worked.

    I agree we do need to know what people want, and this is what most will call requirements. I’m ok with that, but I do like people to consider a different way of capturing/recoding these. In 21apps we make use of visuals, collaborative techniques like gaming, post it notes/user stories, all as ways of enabling a shared undrerstanding – if we can avoid long document we will.

    Glad you liked the debate :)

  • Pingback: SharePoint Daily » Blog Archive » What’s in Office 365?; Office 365 Isn’t Mobile Enough; Microsoft Heads to Supreme Court

  • Pingback: What's in Office 365?; Office 365 Isn't Mobile Enough; Microsoft Heads to Supreme Court - SharePoint Daily - Bamboo Nation

  • http://www.novolocus.com Andy

    Hi Andrew,

    Ah! Well, I agree with everything you’ve said there. I’ve had *exactly* the same experiences with defining requirements – people start designing the solution and what technologies it should use. I believe requirements shouldn’t (normally) mention the technology. The business shouldn’t care when stating their requirements unless there is some clear benefit from a particular technology. Or, with SharePoint, that someone has decided the technology before identifying the problem ;o)

    I guess I’d advocate doing requirements “right”, and it seems to me that “outcomes” is just good “requirements” renamed – but perhaps it’s that very renaming that will improve the quality of the requirements. I’d be curious to hear if you encounter the same problems when talking to customers about outcomes as with requirements – e.g. too much detail too early.

    The only other point I’d wonder about is, although you might leave details until the last responsible moment, presumably there needs to be a plan for when that last responsible moment actually *is*?

    Look forward to the post about promoting Agile; I agree, I think it offers a better approach, but it’s a hard sell.

  • http://www.novolocus.com Andy

    Hi Andrew,

    Ah! Well, I agree with everything you’ve said there. I’ve had *exactly* the same experiences with defining requirements – people start designing the solution and what technologies it should use. I believe requirements shouldn’t (normally) mention the technology. The business shouldn’t care when stating their requirements unless there is some clear benefit from a particular technology. Or, with SharePoint, that someone has decided the technology before identifying the problem ;o)

    I guess I’d advocate doing requirements “right”, and it seems to me that “outcomes” is just good “requirements” renamed – but perhaps it’s that very renaming that will improve the quality of the requirements. I’d be curious to hear if you encounter the same problems when talking to customers about outcomes as with requirements – e.g. too much detail too early.

    The only other point I’d wonder about is, although you might leave details until the last responsible moment, presumably there needs to be a plan for when that last responsible moment actually *is*?

    Look forward to the post about promoting Agile; I agree, I think it offers a better approach, but it’s a hard sell.

  • Pingback: Do You Need Requirements for SharePoint Projects? : Beyond Search

  • Amir Khan

    nice post and a great recap for the masterclass I attended with Ant!