Handling ground-breaking changes in a production system - Insert intermediate level Management object
As our client request, we are proceeding to change the base of our system. We already have the following structure:
A class has many students. (simple typical one - to - many)
Now we must change it to:
A class has many groups. Each group has many students. (Intermediate Object "Group" is inserted).
That seems to be a "simple" change, but it breaks all of the management interface, from both mobile client to web views. And in database structure also.
Our system is a data-management program where we have about 50 - 60 domain objects which are parts of a hierarchy model of around 5 levels. And the intermediate object is inserted in around the 2nd-stage.
My question includes 2 aspects:
1) How to estimate the efforts needed. I'm making a new code branch, then insert the new domain object, after that break the relation of the class-student to insert the new "group" in. Then look in the error-report of Eclipse to locate the troubled code. However, it makes the whole project red, and I'm having troubles giving accurate time-estimation for the task.
2) How to avoid/prevent this situation to happen in the future. It happens once before, and at that time I have spent a week to write database conversion script, as well as making the changes. But at that time the system is still small. Now it has grown big.
As our client request, we are proceeding to change the base of our system. We already have the following structure:
A class has many students. (simple typical one - to - many)
Now we must change it to:
A class has many groups. Each group has many students. (Intermediate Object "Group" is inserted).
That seems to be a "simple" change, but it breaks all of the management interface, from both mobile client to web views. And in database structure also.
Our system is a data-management program where we have about 50 - 60 domain objects which are parts of a hierarchy model of around 5 levels. And the intermediate object is inserted in around the 2nd-stage.
My question includes 2 aspects:
1) How to estimate the efforts needed. I'm making a new code branch, then insert the new domain object, after that break the relation of the class-student to insert the new "group" in. Then look in the error-report of Eclipse to locate the troubled code. However, it makes the whole project red, and I'm having troubles giving accurate time-estimation for the task.
2) How to avoid/prevent this situation to happen in the future. It happens once before, and at that time I have spent a week to write database conversion script, as well as making the changes. But at that time the system is still small. Now it has grown big.
No comments:
Post a Comment