I have designed a component of a web system with my workmate. In detail, I am just a coder instead of a designer, as all of it are designed by my manager. During the programme, we encounter much of problems, most of which can be avoided. As a result, we delay the finished time. We spent much of time revising program for the design is being changed all the time. I am baffling with the dynamic requirement. It is common that I just finish a function with spending lots of time when the requirement is changed. What should I do? For example, I have alter the construct of the database table much times, which leads to a result that I have to resvise the routine. It is not the most disgusted thing that I‘m confronted with. I code in a bad system which has a terrible framework. I have to change my code each time a external system modifies their interface or convention. It makes me upset. I think a robost system should be able handle kinds of change without modifying itself. That‘s the goal of our programmer.
In my opinion, when we design a system, we should design its framework, instead of coding first. If it depends on a external system, we prefer to depend on our inernal interface which will depend on the external system. So when a external system changes its interface or requirement, we have to modify the inernal interface instead of much code. That is to abstract the function .