Imagine you "manage" a development team. Imagine you reach to have a product that your client is reasonably happy with it. Imagine that the architecture of the application is a mess. Imagine that you don't have any test. Imagine that the performance of the application is clearly improvable. Imagine that you can improve the user experience a lot. Imagine that you UI layer is made in a 14 years old technology. And now, your company gives you a bunch of money to spend on a kind of second version of the application. No new requirements, only do the same application in another way. What things you can do? Maybe you can train your developers in some different areas to be able to make a better application. Maybe you can refactor your application to have a better separation in layers. Maybe you can contract a company to do an architecture review and give you some guidance. Maybe you can add tests to your code (please, do it before refactoring). Maybe you can hire an UX expert to redesign the application and a designer to change the look and feel. ... or maybe you can change all your server code, migrate it to the new hipster technology with a team without any experience nor knowledge in it and without the habit to do any kind of testing. (WTF!!!!) Ok, you can do it if you want. You've talked with your client and he agreed to do this madness. For an inexplicable reason is very important to him to migrate to another technology. But if this is not your situation, please don't do it. You are killing yourself and your team. And you will give a worst product to your clients. There are better ways to invest your money.
When you start working on a new project, there are a couple of things that you should try to discover as fast as you can: the shape of th...… Continue reading