Identifying Invisible Requirements

Identifying Invisible Requirements

Hands up how many times this has happened to you. You work with a customer to elicit requirements for a system to replace a manual process. You analyse their processes, get copies of the documents they currently use, speak to all stakeholders you can identify, draw up activity diagrams, use case models (yes, even in agile), process flows, and more. You write criteria, and discuss the requirements with the development team. You’re confident in what you need to build, in the requirements you’ve been given, and that you’ve documented the requirements that represent the best possible way of meeting the customer’s need.

The developers code the system, it’s tested and you write a user guide. You gather the stakeholders together to show them the finished article, and they say;

So how would I do [insert something here that they’ve never mentioned needing to do before]?

You look at the developers. They shrug. The tester shakes her head. “You can’t do that, we didn’t know you needed to be able to.”

Does that sound familiar? I guarantee it’s happened to us all, several times. Missed requirements. Invisible requirements, as they were always there, but no-one ever noticed or mentioned them. 

The first thing to say is don’t kick yourself (unless it’s something really obvious that your goldfish could have picked out as a requirement, in which case kick yourself a little bit, then add it to the list of things to question in future), and don’t panic. If you’re working in an agile way, it’s rectifiable. You can add it to the backlog, plan it and have it built in to a future release.

But you don’t want this to happen regularly, do you? It’s inevitable that it will happen again, from time to time but there are things you can do to try and avoid it.

Work Shadowing

This is an invaluable experience, but its feasibility depends on the organisation you work for, and your relationship with your customer. It involves sitting with your end users whilst they perform their manual activities, and noting down absolutely everything that they do, asking them to narrate what they’re doing as they go. This way, any little ‘tweaks’ or things that they do which may be unique to their way of working (but important for them, to keep them efficient; think sorting tables of data, or filtering information down to the specifics they’re interested in) will be evident to you, and may elicit requirements around usability, or non-functional requirements, for example “I have to make this available to all our subscribers; there’s around 100,000 of them, who may all want to access this information at the same time.”

Mockups

Need an interface? Mock it up. Many people think that mock-ups or wireframes are purely to illustrate to the developers how a screen should look, but in my opinion, this is a byproduct of their true use. A good mockup shown to the right people, can drive conversation about how a screen might be used. What functionality do they need? Would a text input box be adequate? Do they need an auto-complete on the search functionality? Should a date field allow freetext or force them to use a date picker?

Imagine a screen showing tables of data. What our little scenario involved the end user viewing this screen and asking “so could I export that data into a spreadsheet so that I can manipulate it and run some calculations?” No, because you haven’t built in an export function, because you didn’t know they needed it. If you’d mocked it up, and ‘demonstrated’ it to them that way, they’d have asked that question earlier, and you’d have built it in.

Process Flows

This is probably a staple artefact for most analysts – certainly Business Analysts – but a good process flow is invaluable. Discuss the process, go away and model it as you understand it, then get together again, and look at what you’ve modelled. Is it correct? Have you accurately modelled what they said? Is there anything else they can add to the process as it is? Can you drill down into any of the processes and add more detail, break it down into individual steps? When made to think about their process in this way, quite often people will say “Oh, I also have to send a copy to [other department] for their records. I don’t know if you need to know that though.” Why, yes I do, thank you for that.

Early Visibility

You’ve sat with them while they work, modelled their processes, looked at concept-based mockups together and now the developers are coding. It’s due to be released in a fortnight and you’ve a demo booked in for the day before release.

Why wait until then? As soon as there’s anything you can show them, do so. Screenshot from the developer? Fine; it shows them what it will look like. Snippet of a video you’ve recorded of you navigating through the system test or UAT system? Great; it shows them how they’ll navigate the system and how intuitive (or not!) it is. It also gives them opportunity to review and specify terminology used throughout their new system, to reduce the number of tweaks needed after release.

Acceptance Criteria Review

Depending on your customer, end users, and their ability and willingness to feed into these sorts of things, asking them to review your acceptance criteria could be a valuable activity. If written in a sensible, user-scenario based way e.g. “Given that I am attempting to login to the system, When I enter a username and password combination incorrectly five times, Then my account is locked and I am unable to try a 6th time”, they should be able to comment on whether their requirements are being met. 

Talk to the Right People

Very often, your Product Owner isn’t your end user. It may be, for example the manager of the team who need to perform the activity you’re facilitating. But they’re not the one doing the activity themselves. They know the process, they know the requirements as far as what the overall need is, but they aren’t involved in the daily process itself. You need to speak to the people who are. They’re the ones with the small quirks and tweaks and minor requirements that could be thrown in right at the end. Involve everyone, and ensure to demo your system to everyone, whenever possible.

If All Else Fails…

Put it on the backlog. Delve into the requirements, document it, estimate it and put it on the backlog to be worked into the solution. Even if you’ve tried everything else, asked every question you can think of, and done your best, you will still have times where something has been missed. Don’t fret over it. 

要查看或添加评论,请登录

Sarah Smith的更多文章

  • Nature for the Win

    Nature for the Win

    It's Mental Health Awareness week and this year's focus is on nature, which is especially important for me. I've…

  • Balancing Act

    Balancing Act

    To celebrate International Women's Day on Friday March 8th my employer, Aviva have asked us to share our pledges for…

  • Leaps of Faith

    Leaps of Faith

    I don't have an IT background. I did a degree in Biology and Geography, and worked in retail and recruitment for the…

  • Do Meetings Inhibit Productivity?

    Do Meetings Inhibit Productivity?

    And could a change of approach improve our efficacy? If we're all completely honest, there have been meetings where…

  • Managing our Internal Communications

    Managing our Internal Communications

    This is a cliche, but it's an important one and it does have some genuine value. Today has been 'learning at work' day…

    1 条评论
  • Customer Services: The Role of an Analyst

    Customer Services: The Role of an Analyst

    Every job I've ever held has been customer-services at its core. From working on the cashdesk in a well known Spanish…

  • Schadenfraude: Don't Fall For It

    Schadenfraude: Don't Fall For It

    Schadenfraude is defined as the feeling of pleasure at the demise, discomfort or misfortune of another. And we've all…

    1 条评论
  • Nurturing the Analyst Instinct

    Nurturing the Analyst Instinct

    Some people have a seemingly natural aptitude for analysis; they have a questioning nature, and know when they're being…

  • Agile Teamwork: Mutual Support

    Agile Teamwork: Mutual Support

    I've written before about the benefits of working as part of a strong development team, but how does an agile analyst…

  • Analysis Should be Challenging

    Analysis Should be Challenging

    I read a great article this morning by Neil Turner which talks of using the Kano Model to identify features which…

社区洞察

其他会员也浏览了