What is the correct way to develop a project?

General Rambling

In the short time I have been working on this project I have been trying to ensure that I am doing things correctly. But already I have been asking myself what is the “correct” way to run a project. I have been working in software for some time and have seen many different ideas of the correct method, from an extreme view of Agile where there are no comments and usually no diagrams, to the extreme of Object Orientated Analysis and Design. Where every single step has multiple diagrams in UML and people have spent months planning everything out before a single line of code is written.

I’ve found myself guilty of overthinking the project and stifling what should be a creative process. Now this could be part procrastination which I know I can be guilty of until I have the first part of an application running, or it could be me trying to plan too much which would stop me being able to adapt the application as I go.

So I’m still at the question of what is the right way. Well, to be honest as with most things, the right way is the one that feels right and allows you to achieve your goal. We don’t need diagrams or documentation for everything, but if you get to a stage where it will help, then you need it. By being Agile, you also need that agility to allow you to move to a more rigid system if that is what is most appropriate for a specific part of a project.

Project Update

After looking at using just Git, Visual Studio Team Services or a combination, I decided on VSTS. There were a number of reasons for this, the first being that I like the sprint and backlog items approach that is easy to use in TFS, so using an almost identical system is an obvious choice. I write lists for most things I do, not just in development but when I have chores around the home I write lists. I think it is because I know I will forget them all otherwise (except where gently reminded by my girlfriend), that and there is a satisfying feeling about crossing items off a list, just like there is for moving backlog items into the “Done” column.

I then had to consider source control. Should I stick with VSTS or use Git direct from VSTS. My choice for this was less to do with this project, but to do with my current day to day tasks in my main job. I am currently writing an extension to TFS to manage a custom version of NuGet I developed. Not having done much with TFS Build before having another reason to research it seemed like a good idea.

With this all decided and setup I now have my Visual Studio environments setup a the projects built. I will go into more detail on my next post about my project structure, but the important thing is that I am maintaining my code coverage at > 90% which sticks to one of my goals for the project. But as I get into the more complex parts of the project, the challenge will be keeping that up.