“Software Development” is a vast topic. It is doubtful that there is anyone in the world who is knowledgable about the entire domain. It is certain that I do not possess such knowledge.
This means that a context for this blog must be established which places some bounds on the mega-topic of Software Development. While here may be exceptions in certain posts, the following is the environment that will typically be considered:
- Microsoft Languages, Tools, and Platforms. Unless there are specific reasons: Code will be in C# 4.0, developed using Visual Studio 2010 Ultimate Edition.
- Small (<=5) to Medium (>5, <=20) Teams. Much of what will be written involves the recording and sharing of knowledge and this most commonly occurs when multiple people are involved. This is not meant to exclude the individual developer, who also needs to record this information if only for easly at reliable recall at a latter date. Finally, since most large development efforts are broken down into smaller team effort, even the biggest teams will be able to leverage the information.
- Moderate to High Project Complexity. This is not really a “requirement”, but as project complexity increases the return on investment in processes and practices become much more obvious. Simple systems (so called “jelly bean” or “cookie cutter”) can definately benefit also, but getting tangible metrics on the value may be more difficult.
Within this scope are some key topic areas which will be categorized for easy of reference.
- Application Lifecycle Management[ALM] will be the the primary focus as this covers all aspects of the effort from the gathering of initial requirements/ideas, through development and deployment, and only finishes when the system is finally decommissioned.
- .NET Architecture & Implementationwill cover specific design choices that have been adopted within Dynamic Concepts Development Corp. and have been proven to have applicability to other scenarios.
- Tales from the Trencheswill cover specific situations that I have encountered that turned into key learning issues.
Next Up: ALM – What is it and Why Do I Care?