Recent Articles

Adopting Agile/Iterative Software Development

Iterative Software Development

Choosing An Approach To Agile/Iterative Software Development

Adopting AGILE In Your SDLC Shop

iterDev Documentation Model

GitHub.com Projects

Convert Log4Net to NLog

Log4Net integration in ASP.NET MVC

Introduction

Welcome to iterDev.com

Overview

This site is dedicated to Corporate Technology Officers, Program Managers, Project Managers, Technical Leads and Developers who want to increase their chances of success in software development.

Despite advances in technology and development methodologies, a high percentage of software development projects end in abandonment and the failure to generate acceptable deliverables. My experience tells me they do not have to. If you are responsible for a software development project, this site has common sense information that will help.

Background

In 20+ years of professional software development, I have worked for some of the largest commercial and government clients in the Baltimore-Washington DC area and delivered completed software projects that have met the most demanding software development protocols of their day. Each of those projects shared many of the same basic activities, whether they were developed under Agile, Extreme, SCRUM (SCRUM-Agile), Spiral, Test-Driven or some other methodology, even Waterfall. In my experience, each successful project had a few singular areas of concentrated discipline and effort that provided the margin of success.

In terms of approach, Iterative Development is most similar to 'Agile Software Development', but focuses on the actual tools, mechanics and tactics required to pursue an 'Agile' approach. Given that every software development project is unique in terms of names, directory structures, components, build scripts and so on, here we try to focus on the next steps to take after you decide to pursue agility in software development. This site is about the practical steps that will bring agility in your software development project, not the theory of development or the history of failed methodologies and projects from which these practices were born.

It is also important to note that in each case, the key to success was a technically savvy manager or technical lead who could articulate, prioritize and allocate resources in accord with the absolute conviction that success requires an ordered, disciplined approach. And those successful team leaders were also able to convey that vision to their management and shield their teams from distractions. Most often this meant fostering a productive workplace, enabling skills development and advocating for development priorities before they became emergencies. Team members of that type are still relatively rare. Actually finding those people is not what this site is about. But if you have a team you want to provide with the tools and techniques to succeed, there is much of value here.

The Iterative Development Force Multiplier

This site is about describing how your software development project can have key attributes of success from the start. The format of this presentation is minimalist. Ultimately, this site is about scripting and executing the tactics of delivery, more than the strategy of the project: the methodology, design or management patterns followed.

Each of the documents linked to on the left addresses one of the key attributes that successful projects and project managers address. It is stunning how often one or more of these essential activities is either ignored, or explained away, or overlooked.

Here are the reasons to read and implement the principles of Iterative Development on your next significant development project:

If you build a Deliverable Prototype, you will significantly increase your control of complexity and technical risk, the most common sources of failure.
If you define and adhere to Iterative Development mechanics in any methodology, your deliverable work product will improve in quality and predictability.
If you define and adhere to Iterative Development mechanics in any methodology, your project team will improve in proficiency, productivity and morale.
If you build and maintain a Project Delivery System, your project builds will improve with each iteration. By the time of the final delivery push, your builds and testing will be as automatic as possible.
If you adjust your project methodology to truly embrace Iterative Development discipline, you will not fail to deliver.

Lastly, this site and the presentations made here follow a minimalist approach to expression. Minimalism is a promise that I will not waste your time with theory over practicality, but that in the words of William Strunk I will try to write in a way 'that every word tell'. That said, this is meant to be a living document that I will continue to edit, to remove anything that can be removed without compromising the central message.

Thanks for visiting. Constructive comments are welcome here

Navigating the iterDev Process

The sections of this presentation are structured to be read once, sequentially, and then as needed in any order. The navigation links to the left and section descriptions below appear on every page.

To continue now with the iterDev.com Iterative Development Process, click each of the links to on the left in order. A brief description of each document's contents is below. The 'Home' link returns you to the home page.

Foreword - iterDev.com Home page and Author's Foreword to the Iterative Software Development web site.

Introduction - iterDev.com Introduction, Background and The Iterative Development Force Multiplier.

Iterative Process Model - The Iterative Development Process Model, its place in the Software Development Lifecycle and expected benefits.

Deliverable Prototype - The Deliverable Prototype, its down stream Advantages for projects and the Work Product that delivers them.

Development Process - The Iterative Development Process, Activities and their mapping to SDLC and a closer look at the core Iterative Development Cycle.

Project Delivery System - The Project Delivery System: Activities, Activity Specifications and how they combine to produce Managed Project Releases.

Epilog - A few final thoughts. A request for comments. What I hope to achieve with this site.