background preloader

Agile

Facebook Twitter

Non-Functional Requirements: Do User Stories Really Help? Click here to view the complete list of archived articles This article was originally published in the Winter 2010 issue of Methods & Tools Non-Functional Requirements: Do User Stories Really Help?

Non-Functional Requirements: Do User Stories Really Help?

Rachel Davies, Agile Experience Ltd, UK, Agile software development relies on bringing business people and developers together to deliver better software. We understand requirements by building working software and seeking user feedback on whether the latest solution meets their needs. Agile teams focus on identifying user facing features that can form the basis of incremental deliveries. So how does a team make sure they don't lose sight of "non-functional requirements"? Types of Non-functional Requirements Let’s start with what people mean when they talk about non-functional requirements. The difference from functional requirements is that these qualities must be present throughout the system rather than delivered in one-shot like a user facing feature.

NFR can be grouped into: Testing Matters. Agile Management. Agile Process. Manifesto for Agile Software Development. Agile, Top Down. There’s a recent thread on the Scrum list about how an executive or highly-placed manager could get Agile going.

Agile, Top Down

I’ve been one of those guys, and I know a bit about Agile, and here’s how I’d proceed. First, focus management attention on cyclic delivery of running tested software. Second, provide the resources to learn how to do that. D… If You Do, D… If You Don’t. I believe, and it’s pretty well accepted in Agile circles, that you can’t impose Agile practices or methods from above with much chance of anything good happening. So what if you’re an executive or highly-placed manager, and you’ve become interested in getting the benefits that you’ve heard about, read about, or perhaps even seen, in an agile situation? I’d like to suggest that the right starting point is to focus the managers, projects, and teams that report to you on results, not on approaches. OK … Then What Results Do We Want? Now, the executive in question has a means in mind: Agile software development.

Well, no, and yes. Implementing Scrum Using Team Foundation Server 2012. Agile Isn’t Just for Geeks Anymore. Twelve years ago, 17 software developers convened in Snowbird, Utah to reimagine their craft.

Agile Isn’t Just for Geeks Anymore

They recognized that traditional development methods were out of step with the times. Suddenly, building software wasn’t some arcane backwater. For many companies, it had become the strategic driver for business growth—through commercialization of software-based products or development of custom applications that enabled a proprietary business advantage. Traditional waterfall development methods meant unending project schedules and almost farcical rates of project failure. Far more often than not, the deliverable at the end of a 12-month cycle wildly missed the original requirements—or the requirements had changed in the fullness of time. Fast-forward to 2013 and it’s clear that this trip to Utah was no boondoggle. But why does this matter to you, the digital marketer? Because Agile isn’t just for geeks anymore. So why does Agile make sense for digital marketers? Sound too good to be true?

Scrum

Progressive Requirements Elaboration - In Search Of. Principles behind the Agile Manifesto. We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Principles behind the Agile Manifesto

Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress.

Agile processes promote sustainable development. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams.