Long after the initial fun of developing an application comes years of debugging and maintenance. Yet, many languages and developers fail to make choices that will ensure that future maintenance will be possible. Then, when problems occur, substantial time and effort is spent trying to resolve the issue.
This is exacerbated by magic frameworks. Everyone loves Ruby on Rails and Django. But both become a nightmare to debug very quickly. Need to change something from the framework? Great – your hack will be the source of nightmares when you leave. While these frameworks may simplify our lives in the short term by providing a quicker time-to-market, in the long-term they are more difficult to maintain.
How Can We Fix This?