domingo, 17 de julio de 2016

Why Software Maintenance Projects Matter

Software developers can be divided into two groups: those working on maintenance projects and those working on new projects. Those in the first group are practical and work under pressure to apply solutions to current problems. Those in the second are more theoretical and have flexibility to take decisions, because their problems have not appeared yet. It seems that everybody wants to be part of the second group but a closer look reveals some interesting facts.

Having a white page to start your design is very attractive to any engineer, architect or creative writer. However, after more than 10 years in the industry, I believe maintenance projects are where you really learn. They are the only place where you can put your design to the test (and by test, I mean the real environment stack, real user base, and real evolution of the product).  And I am not blaming the good architects who designed the system that you inherited. It is impossible to predict the future (even if you are Steve Jobs). There is no magic pill for a design of self-evolved systems (at least not yet). That is why the world requires developers like you with enough insight and vision to identify the root causes of problems and come up with good solutions.

Designs in maintenance projects are tested in real time. One of my first experiences was working on a database connection pool for a bank to handle the database connections. With 50,000 users logging in the morning, the system had to work because if anything went wrong, the connection pool exploded. Not only that, think of the client sitting by you and, if solution A does not work, you have no option but come up with something better. Unlike the design team who worked on theoretical scenarios, you have the real experience to cope with. And this reality includes evolution of hardware, software, dealing with 5 years of data… all that fun.  

It is also on maintenance projects where you gain the trust (or not) from a client. Being close to the end users and primary stakeholders (including those who paid for the software) gives you an opportunity to show them your capacity to solve problems and even predict them. If you are good, you help shape the future of the organisation, eliminating all the daily headaches that they suffer. Learn to listen to the client and end-users. It will make you stand out among the rest.

So, make no mistake the next time you are assigned to a maintenance project; there is plenty to learn from and gain experience in. You will benefit from it more than you think.

No hay comentarios:

Publicar un comentario