2 ms·
You can play with semantics of course. But the fact is that most software development is not building new software but doing development on existing software. T
by jillesvangurp 4y ago
You can play with semantics of course. But the fact is that most software development is not building new software but doing development on existing software. That has traditionally been called maintenance.
There's a clear difference between the early life of a software product where there is a lot of fast paced development to create the product, deadlines, etc. and the maintenance phase of a product where most of the team goes off and does new things and a smaller team remains to keep the thing going. It's a bit of a grey area where one stops and the other begins. And of course some popular products keep on evolving at the same pace because there's a large team working on them doing major new releases once in a while.
However, there's a lot of software out there that is still being tinkered with but that does not really change that much over time anymore. Most of that development is just keeping it going, doing some small changes as needed, adding features, fixing compatibility issues with new hardware/software, etc. This usually gets broken down into perfective, corrective, and adaptive maintenance. Software is never really done. If it's useful/valuable, people will keep on coming up with ideas on how to make it more useful.
What sets maintenance apart from regular development is that it is more reactive and unplanned. It involves less people and might not even be a full time job for the few people that are still able to work on the system, which usually requires having some history with the system.