Monday, March 30, 2009

Improving Process in Software Company

I know I am not updating this blog as frequently as I would expect, but would like to put in extra effort to make it a place worth visiting/RSS(ing) !!! This is my 100th blog post, I am happy to reach a personal milestone.

It has been busy period for me trying to setup process in my current company. For those of you interested in knowing things that I have standardized

-> Usage of Cruisecontrol.Net for Continuous Integration
Initially i found configuring this tool really difficult but once I completed setting up couple of projects using it, I am very comfortable with it nowadays. I might not be a continuous integration guru but certainly I could fix any issue without hiring an external consultant.

We are currently using CruiseControl.Net for migration across to our QA environments as well. This has made the deployment of code a breeze.

-> NDepend for Static analysis
Ndepend is certainly one of the best tools you could purchase to have better control of the quality of code your team is putting out. The parameters I am currently auditing include number of lines in method, cyclometric complexity and comment percentage.

-> Schemaspy for generating automatic Entity Relationship Diagrams
This is a great tool for creating ER diagrams from your database automatically and provides web based output that your team could use as a reference.

I always prefer to automate as much as possible and monitor it periodically to ensure things work as smooth as possible. You would do yourself a great favour by setting up Continuous Integration, One click Code migration and report generation using a tool like nDepend on code quality.

Having worked on improving process in the current company, I want to evaluate where we stand now in "Joel Test"

1. Do you use source control? Yes, we use Borland StarTeam
2. Can you make a build in one step? Yes
3. Do you make daily builds? Yes, we use CruiseControl.Net
4. Do you have a bug database? No
5. Do you fix bugs before writing new code? Yes
6. Do you have an up-to-date schedule? No
7. Do you have a spec? No
8. Do programmers have quiet working conditions? Yes
9. Do you use the best tools money can buy? Yes
10. Do you have testers? Yes
11. Do new candidates write code during their interview? No
12. Do you do hallway usability testing? No

Current score for my team is 7/12 on Joel Test, not good, but I certainly think we have come a long way from where we were... Hope to see this improve...