Thursday, January 23, 2014

A frenzy of realeses

Recently I was required to develop and deploy a feature to all of our clients. At present there are 8 branches of code under maintenance phase in svn. I was required to add the feature in all these branches.

Of course that included the actual development of the feature and its deployment at all these clients.

The development took four days and unit testing and fixing bugs/ inconsistencies etc took another two days. So I made first release for a client. The feature was demoed and approved with couple of minor changes.

I incorporated the changes and moved onto deployment in other branches. The average development and release time was about 8 hrs per branch. I observed a few things.

First, the current code base could use some modularization, in that pluggable modules comprise of features. The feature I worked on could just be one such module. And that would have saved almost 6 days of development-release time.

Next, the code was easy to replicate since there was almost no dependency on the branch. But because we don't have any automated build process, I was required to spend time building all the releases for both unit testing and actual binary releases. This meant I was waiting for the build to finish for almost half the time. 

Next the dependencies of the feature included incorporating two libraries into the branches and the initial release of those was not up to the quality level expected which meant I had to spend some time debugging the errors in libraries and creating fixes in both libraries and the feature code that went into the branches along with the libraries. This could have saved almost a day.

So this simple activity of introducing one feature gave me a good perspective on where we are lacking and what needs to be done.

No comments:

Post a Comment