Feature driven development (FDD) is one of several agile methodologies for developing software iteratively. Iterative development is the opposite of waterfall development. FDD is a process that begins with high level planning to define the scope of the project, which then moves into incremental delivery. Each increment of delivery involves a design phase and an implementation phase. The scope of each increment is a single feature. Extreme programming (XP) is a much better known agile methodology. XP is often described as an emergent design process, in that no one knows what the finished product is going to be until the product is finished. FDD, by comparison, defines the overall scope of the project at the beginning, but does not define the details.
Archive of Foundation series Articles
Software testing series: Pairwise testing
Very large and complex systems can be very difficult and expensive to test. Often, we inherit legacy systems with multiple man-years of development effort already in place, in the field and of unknown quality. With these systems, there are frequently huge gaps in the requirements documentation. Pairwise testing provides a way to test these large, existing systems. And on many projects, we’re called in because there is a quality problem.
Foundation Series: CMMI Levels Explained
CMM is a numeric scale used to “rate” the maturity of a software development process or team. In this context, maturity can be thought of like enlightenment. An immature process is not much different from the old “infinite monkeys” yarn - maybe we get it right, but probably not. A fully matured or enlightened process not only does it right, but improves itself over time. The Software Engineering Institute (SEI) at Carnegie Mellon, my alma mater, created the CMM model in the late 80’s and early 90’s. In this post, we will understand what each level represents.
Foundation Series: User Experience Disciplines
UX, pronounced you-ex, is the shorthand for user-experience. It represents the science and art of tailoring the experience that users have with a product - in our case, software. UX is a relatively new term, rapidly overtaking HCI (human-computer interface) and CHI (computer-human interface) as the acronym du jour. There are several disciplines within this field, we’ll introduce each of them.
Foundation Series: Unit Testing of Software
Testing software is more than just manually banging around (also called monkey testing) and trying to break different parts of the software application. Unit testing is testing a subset of the functionality of a piece of software. A unit test is different from a system test in that it provides information only about a particular subset of the software. In our previous Foundation series post on black box and white box testing, we used the inspections that come bundled with an oil change as examples of unit tests.
Foundation Series: Black Box and White Box Software Testing
Blackbox tests and whitebox tests.
These terms get thrown about quite a bit. In a previous post, we referenced Marc Clifton’s advanced unit testing series. If you were already familiar with the domain, his article could immediately build on that background knowledge and extend it.
Software testing can be most simply described as “for a given set of inputs into a software application, evaluate a set of outputs.” Software testing is a cause-and-effect analysis.
Foundation Series: Structured Requirements
Karl Wiegers wrote the book on structured requirements - Software Requirements, 2nd Edition, Karl E. Wiegers.
If you are involved in managing requirements, you should own this book. Even if you don’t follow his approach to managing requirements, or don’t like how he deals with use cases, you should still read this book - at [...]
Foundation Series: Software Process (Waterfall Process versus Incremental Process)
A software process is the set of activities required to create software. This process can be defined with very precise steps, roles and responsibilities. The process can also be defined with a more fluid set activities in pursuit of concrete, high level objectives. Or software can be created without explicitly defining or [...]
Foundation Series: Introduction
I want to thank one of my readers who offered a fantastic suggestion. He didn’t have the needed background knowledge to read some posts. He’s exactly right.
The Foundation series of posts will provide introductory posts on topics.
What topics would you like to see on Tyner Blain?
- - -
Check out the index of the [...]



(3 votes, average: 4.67 out of 5)
