Thursday, January 04, 2007

Team Software Development

This article is about Software Management and especially about the working process of developers. It should make light on the way team work is done and show how it could be made a lot faster, easier and even fun. I will try to explain why some people think their way works for them but in fact they were very wrong and migrating to this way of software development is exactly for them.

First I want to really say that I am really for Open Source technology but I really appreciate the commercial things that just works... what is written well is written well and there is no doubt when people are happy with it and use it. So this sentence was a kind of "I want you to know me" so you know I am judging from a neutral side.


I will start with a real life example at my job again!
We do software development like this:
1. accessing FTP server
2. downloading content
3. writing code to files
4. saving files
5. looking at modifications

Well I expect some people to say that this is a normal software development stuff and there is nothing wrong with it but let us see this:
1. accessing FTP server
2. downloading content
3. writing code to files
- another one is writing code to the same files
4. saving files
- overwriting each others code
5. looking at modifications (yours or of your colleague or the worst case of something between)
- some users are looking at changes you do... whether harmless ones or not so harmless

Well you see the picture!
This type of software development is not good for any one.
I will not go into details about it you saw the picture and you shall think about it!

Then I shall show you a real software development model.
The tool or software which is used in it is called SUBVERSION or SVN.
It is the successor of Concurrent Versions System (CVS) but it has some improvements. So what is so cool about this SVN you ask. Well first of all many people write code and every one is made aware of the changes. Then you develop software with a whole bunch of version control things that ease your life. Well let me try to summarize it:

SVN is a Version Control System that keeps track of all work and all changes in a set of files, typically the implementation of a software project, and allows several (potentially widely separated) developers to collaborate.

The thing about this open source software is that it really works and helps. I will not go into details about how it is used or implemented I want to just show you the benefit of switching to it. SVN doesn't only make you aware of file changes. It allow programmers to lock files, merge changes, comment what they made with the file... and so on. Also SVN is most of the time a separate server on which you develop so users don't have to see your changes in real time. Also a cool thing is that you have a structure of versions that is tree like. When you build a version that is stable enough you can make it go up into the so called branch where you can then just copy this to the server where you want to deploy the project or if the host and develop server are one and the same you can just relink to the newest branch and hey! We got our site updated.

SVN has one more cool thing!
TRAC - an open source, minimalist and web-based project management and bug-tracking tool

Trac allows hyperlinking information between a computer bug database, revision control and wiki content. It also serves as a sophisticated web interface to the subversion version control system. The web front end presentation of Trac is handled by the ClearSilver template system.

Cool huh!

So if you find this useful and actually tried it please let me know your opinion!

Nice hacking!

No comments: