There are many challenges associated with software maintenance that we have no control over. It is good to identify these to know what we are up against.
There may be a significant existing code base. This can make it hard to comprehend the big picture of the system. The system may span multiple software products. To compound this problem, there is almost always insufficient documentation if any.
The design can be hard to follow. Sometimes good initial intentions deteriorate over time. This is inevitable when somebody puts a patch on top of the patch of the patch. In the end, you not only have something that is hard to maintain. It can be nearly impossible to understand.
Use of the system may require live data. It may also require lots of it. Typically the software works fine in a development environment. You often cannot replicate production problems. This can lead to a balancing act to keep up with problems but protect the live and often sensitive data.
Reproducing a Race Condition
-
We have a job at work that runs every Wednesday night. All of a sudden, it
aborted the last 2 weeks. This caused some critical data to be late. The
main ...