Iterating is THE Requirements Discipline

Iterating is THE Requirements Discipline

OK. Let's get serious about software requirements, shall we?

The part where we talk to the customer and write specifications and agree acceptance tests and so forth? That's the least important part of figuring out what software we need to build.

You heard me right. Requirements specification is the least important part of requirements analysis.

THE. LEAST. IMPORTANT. PART.

It's 2017, so I'm hoping you've heard of this thing they have nowadays (and since the 1970s) called iterative design. You have? Excellent.

Iterating is the most important part of requirements analysis.

When we iterate our designs faster, testing our theories about what will work in shorter feedback loops, we converge on a working solution sooner.

We learn our way to Building The Right ThingTM.

Here's the thing with iterative problem solving processes: the number of iterations matters more than the accuracy of the initial input.

We could agonise over taking our best first guess at the square root of a number, or we could just start with half the input number and let the feedback loop do the rest.

I don't know if you've been paying attention, but that's the whole bedrock of Agile Software Development. All the meetings and documents and standards in the world - the accoutrements of Big Process - don't mean a hill of beans if you're only allowing yourself feedback from real end users using real working software every, say, 2 years.

So ask your requirements analyst or product owner this question: "What's your plan for testing these theories?"

I'll wager a shiny penny they haven't got one.

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

Jason Gorman的更多文章

  • Rookie Mistake: Minimising "Interruptions"

    Rookie Mistake: Minimising "Interruptions"

    We all know that feeling when we're deep in concentration, lost in our mind palaces, and some absolute sod dares to…

    4 条评论
  • Don't Be Beaten By Agile Cadences. Slow Down & RELAX.

    Don't Be Beaten By Agile Cadences. Slow Down & RELAX.

    One of the earliest pieces of advice I got about practicing guitar was to use a metronome. Playing to a regular beat…

  • 7 Things I Learned About Software Development The Hard Way

    7 Things I Learned About Software Development The Hard Way

    If I could jump in my TARDIS and go back to the start of my career to give my younger self some advice, there are…

    2 条评论
  • The Importance of Perspective

    The Importance of Perspective

    Many people say that software development is a details job. If you're no good at getting the details right in such a…

    1 条评论
  • Early Experiences and Formative Years Are A Lottery

    Early Experiences and Formative Years Are A Lottery

    I was exploring the hard drive from the first PC I bought with my first graduate pay cheque this morning, fully…

    6 条评论
  • But Who's Going To Mow That Lawn?

    But Who's Going To Mow That Lawn?

    Until our beloved government completely borked our economy and interest rates skyrocketed, I was on the hunt for a…

    1 条评论
  • Is My Code Easy To Understand?

    Is My Code Easy To Understand?

    Studies have found that we developers spend a lot of time trying to understand code. Indeed, most of our time.

    1 条评论
  • Taking Pride In The Basics

    Taking Pride In The Basics

    We're all about the new and the shiny and the cool and the exciting in the software industry. But the reality of…

    5 条评论
  • Code Craft Foundations #3 - Refactoring

    Code Craft Foundations #3 - Refactoring

    I've often said that the third leg of the tripod of foundational code craft skills is, in my experience, the second…

  • Code Craft Foundations #2 - Version Control

    Code Craft Foundations #2 - Version Control

    I'd been programming for 12 years, and 2 years into a career in software development, before I heard of version…

社区洞察

其他会员也浏览了