This blog is subject the DISCLAIMER below.

Friday, February 09, 2007

Source Control and Team Development

I haven't met a lot of teams who have actually used this feature. Since we are facing a new semester where we should start implementing our graduation project, I will introduce it.

You are in a team ? You divide the coding among you ? Then you definitely need Source Control.

Let me first tell you the scenario that you face each day of your team work:

Chapter One

Person A was assigned Class A, and Person B was assigned Class B. Till now everything is okay; each one works in him own home till he finishes, isn't it ? Now they've finished. It is time to integrate work into a single project to start testing. They sit together in a single place, each one with his computer. They gather the source files and put them on someone machine. They create a project and add the source files. They hit "compile". They get a huge list of errors.

Chapter Two

After the initial depression that their hopes and prayers that the project works from the first time painlessly have not been responded to, they start to fix the errors.

Each one boots his PC/laptop, gets the list of errors in his file, opens the IDE, and start fixing. After fixing all the errors he has, he gets his updated file to the main PC which they agreed to integrate their files using it. He does that by putting his file on a flash drive, or better, on the LAN.

Now the person on that PC, gets the new file and overwrites the old file. Then he tries to compile again, yet he still gets some errors from another one's file. He waits till that person gets his files and compiles. And "Hooray!!" it has compiled "Thank GOD!" they say in relief.

Chapter 3

Now it is time to launch the project and see if it is working. They double-click the executable, and "BOOOOM!" they get an exception even before they see the application window.

The exception is in Class A, "Who's class is this?!!" whispers someone in frustration. Person A replies "It's mine". He takes over the keyboard and traces till he find the error. Fixing it requires some modification in someone else's work. He modifies his own file, while that someone goes to his PC and fixes his own. He gets the file back, he put it in the project folder, overwriting the old file while interrupting the one who is still fixing his file on that PC.

Now they compile again, "Thank GOD there is no compile-errors this time" someone says to himself proudly. They run the application. They see the application window this time. They tried to use it but it doesn't make the expected behavior.

To be continued...


Hanaa Tag el Dain said...

WOW :D i just visualize situations that u talk about :D
i am waitin' to know what will happen next :D i guess they gonna kill each others :D:D:D:D:D

Mohammad Nabil said...

This is just a story, killing team members only happens in real life :D :D