February 19, 2011

Distributed software development

As you have seen through the entries of this blog, I'm a distributed-stuff fanatic. I really think that the future of software development is closely related with this concept.

Many problems arise when you are working in a project that involves more than 2 developers, and the problems are even worst if new developers are included into the development process. It's a mess.

But you can make it work if you follow a simple goal: Every developer should be able to do whatever he wants without bothering anybody else.

This is very important when you are working in a database-based application, if several developers test their applications against a central database, you will have inconsistency problems in a matter of minutes.

I have worked in projects where this kind of problems arose more than once every day, it's a complete mess when testing and even worst when you are trying to integrate the work.

But not everything is bad here, I have also worked in projects where everything was meant to be distributed. Working with local databases such as H2 and versioning tool like HG or GIT. It's a big difference to be able to test all your changes without messing with other people data.

If you are working in a project with 2 or more developers, configure the project to be self-sufficient in all senses: Database, compilation, deployment, execution, tests.

Your development process will be shorter and the integration problems will be reduced, I can assure you that.