Process Improvement / Requirements / Software development / Testing

Non-Functional Requirements Equal Rights Amendment

Posted on:

We know how to deal with functional requirements. We know they are important – we can walk the dependency chain from goals to use cases to functional requirements. But how do we get to the non-functional requirements? Leathej1 points out the elephant in the room – non-functional requirements don’t get enough attention when it comes to testing. Let’s look into it some more…

Communication / Consulting / Interaction design / Product Management / Requirements / Requirements gathering / UX

Requirements Gathering – Interviewing the Right People

Posted on:

How do we find out what someone wants when they don’t know what they want or what they can have? One of the best techniques for gathering requirements is to interview users. But which users?

Imagine aliens came to the planet and offered to solve our gasoline problem. How could we tell them what we wanted? We might say we wanted cars that run on clean renewable energy. The aliens might leave thinking “Oh well, I guess they didn’t want faster-than-light travel.”

Agile / Foundation series / Process Improvement / Software development / Test Automation / Testing

Foundation Series: Functional Testing of Software

Posted on:

Functional Testing, also referred to as System Testing of software is the practice of testing the completed software to confirm that it meets the requirements defined for the software. A functional test is typically a test of user interactions, but can also involve communication with external systems. We contrast functional testing with unit testing. We also show how functional testing provides different benefits than unit testing.

Agile / Software development

Agile Values – Alistair Cockburn on the Agile Manifesto

Posted on:

IT Conversations has an interview (mp3 41min) with Alistair Cockburn (pronounced koh-bern) that makes for a great listen. Doug Kaye hosts a great conversation with Alistair, discussing several topics, including the four principles of Agile development. Alistair explains that the wording is precise and intentional, and represents four sets of preferences, not four absolutes.

Agile / Foundation series / Process Improvement / Software development / Test Automation / Testing

Foundation Series: Continuous Integration

Posted on:

Continuous Integration is the software development and quality process where all team members merge their code and verifies it frequently – at least daily. This verification project includes both an automated build process and automated testing. The main benefits of continuous integration come from risk-reduction and cost-reduction.

Agile / Product Management / Requirements / Requirements gathering / Software development

The Agile Dragon

Posted on:

When Alan Cooper and Kent Beck debated the benefits of eXtreme Programming versus Interaction Design, they disagreed on a lot of things. One thing they agreed on is that Agile processes are designed to minimize the impact of changing requirements. Cooper believes that it makes more sense to minimize future change by understanding the requirements better up front. Beck believes that the requirements can not be understood by the team until something is delivered. Beck’s point is that the customer doesn’t understand the requirements until he has something in his hands. We’ve shown how this is both a strength and a weakness for Agile in the real world. In The Hobbit, the dragon Smaug was missing a scale on his belly, that made him vulnerable. Agile processes have a similar weak spot.

Agile / Product Management / Project Management / Software development

Agile’s Biggest Strength is Agile’s Biggest Weakness

Posted on:

Agile works because it is designed to help teams adapt to changes in direction. Agile is designed to minimize the pain of changing requirements. Agile proponents believe the premise that requirements will change and no amount of upfront planning will impact that. They believe that the requirements simply do not exist until after something has been built. Agile processes save a lot of time by not doing big upfront requirements gathering or design work. They also don’t involve big up-front planning. They do small planning work. And they do it again and again, throughout the project. This works because they minimize wasted planning effort.