Thursday, September 3, 2009

Development Processes

We have been working on implementing our new development processes in our company for the last 6 months. This has been a gradual process, starting with new projects. This was done to help align business and IT processes and strategies and put some structure in place to help better our development efforts and improve the probability for project success.

This new process is very agile and iterative. This allows business to be very involved and manage their expectations better. Those who know me know that I like to follow a DDD approach to software design and we apply this is our process. This allows us to work with the domain experts and establish a good conceptual model and an ubiquitous language that all parties understand.

Basic overview of the process:
  1. Project Kick off - Present the problem space and appoint the key role players
  2. Feature Spec and Requirement Analysis - Determine deliverables and user stories. Architects works closely with domain experts to establish a good conceptual model.
  3. Feasibility and Sign off - Determine if project is feasible and profitable. Time estimates, work break down and solution design.
  4. Development
  5. Testing
  6. Deployment and Sign off
  7. Review and Feed back into the process - very important to take what has been learned and adjust our processes if need be.
We have also introduced a research project where the outcome is feasiblity. This is done in large projects where the domain is a bit uncertain. This allows us to implement a proof of concept or at the very least give us the opportunity to see if the project will be feasible. The business stake holders will then decide if the project will go forward or not. With a relative small expense we can determine which projects will most likely not be successful.

Unfortunately our legacy systems did not follow this approach and thus there are still quite a bit bugs and enhancements that get requested and are sometimes unmanaged. We are trying to implement some processes regarding this as well but has not been too successful up until recently.

Over the last month we have started implementing SCRUM standup meetings in the mornings and things have already started going much better. We are identifying potential problems much sooner and have a complete record of what everyone is doing. This also helps knowledge sharing between problems. From these SCRUM sessions additional meetings are arranged if necessary to help solve problems identified.

In addition we have also introduced weekly post-motrem meetings where we evaluate the past week's progress and also the coming week's work. This allows us to determine what the pit falls were and help us avoid them in the future. This also allows us to schedule our resources more efficiently.

I believe IT processes are very important and I am happy working in a team that believes in this as well.

1 comment:

  1. Hey, Lee. Everything that you have mentioned here is what I ve been exposed in where I work. This is a right way of doing things

    ReplyDelete