We have a large (1200+ hours) website that has a lot of technical debt. This is mainly caused by the following (usual) reasons.
- Multiple programmers who come and go during development.
- Change of specifications during development.
- Numerous added functionalities added (in a short time).
The customer wants alot of new functionalities, and that basically comes down to working on this project weekly for 10+ hours.
Due to the technical debt, we spend A LOT of hours fixing or investigating problems, that usually find their origin in one of the following:
- A shameless, silly bug that makes people cry.
- A new feature results in the above because we hadn't foreseen all the places the new feature would have an influence.
- Some other problems we have faced (f.e. server migration, upgrades)
We have issues daily and we have tried to following things to put this to an halt:
- Created technical documentation regarding the import, payment and general working of the website.
- Have meeting at the start of the week - discussing the current issues or improvements and how they should be tackled.
- Have a test-plan. Programmer A test B, B tests C and C tests A. Then our Project Manager will throw in some tests. Regarding the impact of the feature we throw it on a staging environment and let the customer check for itself.
The problem is that the problems keep happening...and somehow we can't get a grip on it. New features still cause bugs, and old bugs keep saying hello. Somehow - perhaps due the size of the project - we can't seem to get a grip on this project.
I assume there are alot of programmers working on larger projects then this. That is why I come to my question:
What can we do, or what do you do to avoid these problems on large projects?
Minor edit, extra info:
- We use version control (SVN).
- We have DTAP development process.