Software Development

Useful Pages

It is worth noting that there are some other useful Software Development related pages that are not in this section. So please refer to the following if needed.


If you want to know how a compiler works check out Anders Hejlsberg on Modern Compiler Construction | Seth Juarez | Channel 9. Oh and yes, Anders knows his stuff as the Chief Architect behind Borland Delphi and lead architect for C#.

Software Engineering

This section is a slightly random mix of processes and tools.

It is worth noting that Trunk Based Development and Git Flow are different approaches to the same problem.

Writing Code

There is much that has been and can be said about writing code....


In summary I would suggest comments are notes to your future self. They may be notes to other people, especially if you are using new, or complicated language features. In an ideal world, the code should be easy to read and follow, using the names of things to help with this. Comments will need to explain why something is happening, the how should be obvious but may need a comment. There is some helpful advice at Code Tells You How, Comments Tell You Why.

Application Lifecycle Management

There are a number of aspects to Application Lifecycle Management (ALM) and there are many software products and online services that help with one or more aspects of this. However if you are working with Microsoft technologies then the best solution is Team Foundation Server (TFS). This is not because it is the best thing ever but it is free with an MSDN license, is fully integrated with Microsoft Visual Studio (as you would expect) and it does work, rather well too.

Once you have selected TFS then you should read what the "ALM Rangers" have produced. However take a look at Understanding the Visual Studio ALM Rangers to get an overview of what they do, then look at Introducing the Visual Studio ALM Rangers to see who they are.

The ALM Rangers produce the Visual Studio ALM Quick Reference Guidance which is a great starting place. I would strongly recommend looking at the Related Projects section, as this will provide further guides and info. Another options is to search Codeplex for "ALM Rangers" and that will help you find other content they have produced.

If you are not using Microsoft technology then TFS can still yield benefits for you, however you might want to consider alternative solutions/platforms.

Microsoft Team Foundation Server

It is worth noting that is a great starting point for all things TFS. Do make sure you look at TFS Power Tools, Server Build Extensions (useful for Java builds with Ant or Maven) and MSSCCI Provider (for using TFS with old products like Visual C++ 6).

Visual Studio Online

Before starting with Visual Studio Online or TFS as a Service I would strongly recommend you read Visual Studio Online (TFS as a Service) – What you need to know to get started - Michael Pedersen's Blog - Site Home - MSDN Blogs and the links he presents.