Maintenance - the bitter side of life

Let's assume that it's 1012 now. One thousand years ago. Fall has come. Winter is ready at the starting gate. I'm preparing to survive the winter. I will be eating what I gathered during summertime. Enjoyment in over. The new will be limited. I'll have to rely on the fruits of my summer work.

Fast forward to the 21st century. Winter is not a concern any more. Food availability is almost the same as in summer. I can even go to the other hemisphere to enjoy summer and to vacation. Will I miss something? Maybe not, maybe yes. It depends on what I really want.

As you can probably guess, this metaphor is about development and maintenance of systems. At e-point, we see systems born, grow up, put in production or discarded, become legacy, and even become obsolete. A full circle of life.

Let's think about these particular stages: development and maintenance. What tools are needed? What processes might be different? What are the tasks facing developers in each of these two cycles?

Development. This stage is known almost to everyone. It's simply creation. You've got direction and requirements from the client. You pick up tools, languages, and so on to build a system. So you rely on what you already know, or what others know. Sometimes you even get to pick "what you want to know". There is no time to test everything as you would wish. With all these new and old toys you have very productive period. It's funny and exhausting. Endorphins fills your veins, excitement fills your memory. This is a great time for most people. Most of us would love to repeat this high level of development activity until retirement.

Maintenance. You spend time keeping the system alive. You hear complaints if something wrong has gone wrong with the system, or hear nothing when everything is OK. There is a very little work of creation. New features are painful to implement. This is the a time when ideas chosen in the development stage are tested. You'll get full knowledge of how stuff works in the real world, which is the real value. You can see how the production system adds to revenue, and how operating costs can increase due to development re-work known as "maintenance tweaks". It can be a boring and frustrating lesson if you're not prepared. Maintenance is not as sweet as development. It's bitter, but it's more real. Few people really like this stage.

OneWebSQL is designed to be easy to use during development and to give a "no problems" experience during maintenance of the production system. It's like well balanced diet -- tasty and nutritious. If you develop and maintain systems, you've got the idea.

I met developers who were really excited when they started using Hibernate. They becomes furious when they had to turn off most of these exciting features on production and use plain JDBC. These developers have broad experience and OneWebSQL suits them. They know it. I also met developers who are stuck in the development stage. These "endless summer" developers do not get the idea. I don't whether I'm not a good salesman, or maybe they do not want to see the bitter side. Gonna think about it more later.

Have you tasted the bitter side?