Recently, I have seen many developers considering switching to technologies like NoSQL, Scala, and so on due to problems like performance, maintenance and availability. New technologies like Scala or NoSQL databases for instance are a very good think! However, in many applications I’ve seen, the real problem is not technology limitation but poor application design or simply bad coding. When that happens, switch to the last shiny framework, database, pattern or else won’t solve the main problem, and the same errors and misconceptions will probably reappear with the new version of the application.
Code reviews, pair-programming and continuous refactoring are strongly recommended before considering rewriting your technical stack to, let’s say, “pay the debt”. In this case, the more one masters Software basics (programming, testing, design patterns, algorithms, etc.) more close he/she will be from building great software. To be more effective a change of mindset is sometimes essential and Agile development, TDD and Software Craftsmanship could bring inspiring ideas 😉