30 Day Boot Strapping
30 days! Bootstraping
How we do it? Related Benefits!
A recent successful engagement turned into TechTrendsIT being a strategic partner for all their IT implementations:
Improving the quality of existing software and the processes that produce it.
Rewrite vs Rescue! Choosing the Right Direction with a predictable outcome! 30 day effort!
Why not to rewrite?
We often encounter software, we would rather rewrite than try to fix for future. The problems encountered are often because of poor design and implementation, lack of tests and code coverage with bugs and host of other issues including the proper chose of technology stack. In the first 30 days of our engagement we identified the pain of the poor system and risks it involved to the schedule and speed to market.
The question is whether starting with a clean slate and apply all the lessons learned from a previous project might be the right approach. Often we find it is not the case. Greatest obstacles include
- The existing system has accurately captured requirements for the system.
- Applications evolve over years to meet the changing needs of an organization and its users.
- Many small decisions are made and captured in the functioning application only and is not documented properly.
- Rewriting to reproduce the features of an existing system can be a very difficult effort to define and scope.
- Will compete for development resources and will be chasing new feature development on the existing application.
- Identifying the good pieces and not rewriting them.
- Will rewritten application be much better?
It is not always about the code written, it is about the process and the practices followed, which needs a fundamental change.
How we rescued?
- Set Short Term Goals: The client is asking you to make the system better, so hence we created meaningful goals which can be demonstrated, released and feel good before moving on.
- Unit Test: We chose a service layer (3rd party interfacing) and created a test system which helped for easier testing across other components. A process was fixed, helped in better code quality approach.
- Refactoring and Reengineering: We often involve the principles when we rescue a project, refactoring is usually set a longer term goal after we achieve some short term goals and are able to deploy.
- Making the application healthy by introducing continuous integration and streaming the build process, decoupling application components, minimizing dependencies on application server and passionate development team interested in quality.
- Fixing emergency bugs, but not breaking something else? Introducing collaboration, pair programming and study groups.
We consult, but changes have to come within where there is commitment to improve and have a champion from the management.