Managing .NET Software Factory using SCM tools

Download Managing Software Factory presentation

The Software Development Process discipline typically focuses on well understood tasks of requirements management, software design and build. During past 20 years the industry went through several methodology iterations starting from the Waterfall then RUP and recently Agile with Scrum and continuous integration.

Many experts agree however that even the latest improvements are too narrow in scope and don't adress upstream processes : ideation of requirements and downstream processes of deployment and IT monitoring.

The agile process does not adress the need for the architect (very often the Enterprise Architect) to be involved in managing the ideas flowing from the business team. On the other side of the enterprise it is often assumed that the tasks of deployment and software monitoring are well managed by the IT team. Very often that is not the case which results in feature and support requests flowing into the SDP from the opposite sites of the organization.

So what is the remedy? In my experience active involvement of the Enterprise Architect in the ideation process using appropriate tools allows better planning and view into the requirements management. On the other side if the engineering team structures the dev build process such that it exactly mirrors the production activites the efficiency is the highest and lost productivity is lowest. The crucial and often missed point is deployment: build (defined as compilation and unit testing) is confined to development and QA while deployment must happen in all environments. Therefore if the dev team treats deployment as part of the build and shares the deployment scripts / routines with the QA and Prod IT teams the opportunities to make mistakes are severely diminished.

In general the software architect should treat software development effort as if he was running a chemical factory: from the white boards of the ideation through lab work (poc and development); pilot installation (QA) to the production plant he and the project team should be using the same underlying processes testing them and repeating them all the time.

In the power point presentation I show how to use combination of open source tools (Superdecision, NAnt, NUnit) and commercial packages (Telelogic Synergy, Mercury Quality Center, BladeLogic) to turn the software factory concept into reality.