Saturday, August 28, 2010

A successful project

What is your formula for a successful project and/or architecture/design and/or implementation?

I have worked on multiple successful projects and some of the challenging projects as well.  Most of the times, Functional or Requirement churn hinders the project success because the changes cannot be adaptable easily.  Sometimes it questions the basic architecture / design of the application.

However technical team doesn't have control over the requirement management but I strongly feel below precautions navigates towards the success path. It is not limited to below points but I feel they are worth mentioning.  There is no single phase of the SDLC, influences the success of a project, it all TOGETHER.


  • A Solid Architecture
  • Creates a clear separation among major components.
  • Proper distribution of responsibilities.
  • Loose coupling - Integration using an interface.
  • Considering Extensibility, Availability, Reliability and Performance.

  • A Flexible Design
  • Allows extending the functionality without breaking the existing ones.
  • Use dependency injection (IoC) wherever possible.
  • One single interface definition for a component.
  • Evaluate the suitable design patterns.
  • Evaluate integration options ‘MQ’ based versus ‘API’ calls.
  • Configurability – think other side of the requirement.

  • A Proper implementation
  • Always program to interface.
  • Use available features of programming language such Generics, Annotations.
  • Don’t try to re-implement, try to use proven open source framework wherever possible such as Struts, Apache commons, Hibernate, Spring etc..
  • Avoid compile time dependency, go for run time dependency (Example:  spring remoting).
  • Minimize the objects in session.
  • Conduct Code Reviews.