Rescue Log

Hierarchical Change Management utilizing Loose Coupling & TDD techniques

vteam #521 built a SaaS model software solution for logistics providers and their customers as well to manage and observe the package/parcel delivery life cycle. This system works like an ERP for logistics companies to manage their orders, schedules, invoices, and other resources.

Change is the only constant thing in software development. In the middle of the project, problem occurred when project architecture was about 40% completed. Client asked to change the whole system in such a way that a complete hierarchy was required to be changed. We had already developed a big part of the system and change was required from the root level of hierarchy. This was a Database structure change and lots of parts of the system that we probably couldn’t know and normally such problems appear in production.

Hierarchical Change Management:

At First, we were able to compare old and new Database diagrams to have the idea that which parts would be changed. But it couldn’t give us right amount of confidence.

Secondly, our code wasn’t tightly coupled. We were following basic OOP practices to have reusable components. Different classes were fulfilling their responsibilities and were not keeping an unnecessary logic in them. This led us to change only few things in our code relationship and logic. It saved our time too.

However when root level things change, then it is not easy to know exactly that which dependent parts are effected unless we go through all the modules. The third thing that rescued us was Acceptance Testing. We were writing test cases from beginning of our project side by side although it wasn’t a complete TDD (Test Driven Development). We had to test cases written which we know should pass or fail. It means that if something is broken, we ran test cases and fixed where something broken appeared. When all test cases results were green again, we were confident that now our change is not breaking anything considerable at that point.

This is how vteams managed the big hierarchical change effectively and ran test cases to feel confident in almost a week’s time only.