The StoneHenge blog

Opinions, insights and occasional rants on IT consulting

Nimble Method works with Agility

Wayne WildAgile Software Development is a relentless focus on providing a continuous stream of business value even in the face of constant change. At StoneHenge Partners, we have adapted 10 to the 12 agile principles into our Nimble℠ method to insure our clients receive business value and testable iterations of code throughout the software development life cycle.

This step alone significantly reduces project risk and cost by preventing defects, which is the largest source of budget overruns ... finding and repairing software defects.

Below is a diagram showing the ten steps we follow, in each iteration of code development, in order to prevent defects in subsequent iterations. Following this diagram is a comparison between the 12 principles of Agile and our Nimble℠ method of software development to better explain how Nimble℠ really is working with Agility.

nimble quality flowchart

Principles behind the Agile Manifesto

Here are the 12 principles of the Agile Alliance, and my comments on how we follow these principles are in italics below.

icon-checkmark-on  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Our #1 area of focus is on creating software that solves the Client's business problem.

icon-checkmark-on  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

Through the use of Function Point Analysis (FPA) to size projects we quickly size the impact of change including the impacts to cost and schedule so we may assist Clients in making business decisions.

icon-checkmark-on  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

As mentioned above, we deliver testable iterations of code throughout the project life cycle. These iterations are typically 2 to 4 weeks in length.

icon-checkmark-on  4. Business people and developers must work together daily throughout the project.

We do not solely rely on written requirements specs created in the early stages of a project's lifecycle. As our development team starts a new iteration, they will involve a Client SME and verbally confirm, enhance and update the original requirements.

icon-checkmark-off  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

We certainly utilize motivated individuals on our software development teams, but we build projects around the Client's functional requirements, so we can accurately quote price and delivery. We do this by using FPA, the only ISO approved methodology to size software development projects.

icon-checkmark-on  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Our software development team uses daily scrum meetings to facilitate this face-to-face conversation and to quickly identify and resolve issues and delays. A Client SME is frequently involved in these scrums.

icon-checkmark-on  7. Working software is the primary measure of progress.

We measure the percentage of functionality delivered throughout the software development lifecycle.

icon-checkmark-on  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

Once we have sized a project with FPA, we utilize a combination of our internal and industry productivity rate factors to calculate the total project effort required by role. The (+/-) 5% accuracy of this tool not only allows us to build a sustainable project plan, but it allows us to deliver results on-time and on budget to our Client.

icon-checkmark-on  9. Continuous attention to technical excellence and good design enhances agility.

We utilize design tools like wireframe diagrams and functional component diagrams to graphically define functional requirements so we may accurately size projects and quickly identify and respond to change.

icon-checkmark-on  10. Simplicity--the art of maximizing the amount of work not done--is essential.

We utilize iterative develop to reduce and prevent defects as described above. In addition, we utilize a collaborative modeling tool called Enterprise Architect, from Sparx Systems, to minimize the effort to document and maintain requirements.

icon-checkmark-off  11. The best architectures, requirements, and designs emerge from self-organizing teams.

We create a logical functional component model of the entire application, when applying FPA during the discovery phase, and the Dev team uses it as a guide, when defining the technical design within each iteration. This functional component model graphically identifies all known logical files and interfaces and assists in preventing design errors.

icon-checkmark-on  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

This is the key to a successful project and cannot be emphasized enough. As you can see in step 10 in the above defect removal diagram, we take time to learn from past mistakes in order to prevent them in the next iteration.

Print friendly version.

©2010 StoneHenge Partners, Inc. | 401 S. Boston Ave., Tulsa, OK, 74103 | (918) 971-1999