When I joined the Software Industry 8 years ago, we were given an option to choose between Maintenance and Development. These words did not mean much for graduates fresh from college. But we were informed what these words actually meant. Maintenance meant maintaining old Mainframe systems and Development meant developing new software in the “open systems”. Obviously, Development looked more exciting and most people – including me – chose the path of developing new software. It has mostly been the case in the Indian software industry where Maintenance is looked as less attractive than Development. The attitude might be because of the fact that Development involves developing your own piece of code whereas Maintenance does not involve creating anything new but just looking after something which someone else developed long time ago.
I joined SAP Labs India 5 years ago and I joined as part of a maintenance team supporting customers resolve issues with using the SAP Mobile Sales and Service Applications for Laptops. Three years doing this job entirely changed my perception about a support job profile.It is true that you will be maintaining code developed by someone else. But you get a really good perspective of how end-users use the application – the things that they try to do, the things which they find useful, the things which they hardly use, the things which are easy to locate, the things which are so complicated that the end-users do not know that it exists. And it also improves your knowledge of the application. Of course, you need patience to look into a piece of code written by someone else and try to find a bug. But the amount of knowledge gained during the process makes it worth the effort.
After three years in support, I returned to development where you get the satisfaction of developing something entirely new. But the problem here is that the knowledge more often than not is limited to only the area which the person is working on. It is very rare that developers actually get a feel of how the end-users finally use the whole application. And of course, developers get the liberty of introducing bugs which can be fixed by others (but the numerous quality gates and standards ensure that this happens very less). And development involves a certain amount of maintenance as well in the form of bug-fixing during Unit Test, Intergration Test etc.
Development and Maintenance have their own advantages and disadvantages. There is nothing wrong if your career is focused on one of these areas. But offer mental satisfaction and scope for learning – though in entirely different ways.