When does a project become a legacy?

This is a question that is answered by many people in many different ways. Generally, an application has become legacy when no one wants to work on it anymore.

In the beginning, applications are built with a small and defined purpose. Over time, the scope and breadth of a system may grow beyond its original intent. When any change to the application causes the developer to work against what the application was designed for, it will cause friction.

As mentioned previously, the application design is not simply changed because of the fear a developer might have that the application will break. So, more and more cruft is added to the system. Okay, so how long does it take for this to happen? When do we stop hacking new modifications into the existing application and just rewrite it?

Honestly, the cruft starts getting added by the original developer as he or she is writing the application for the first time. When you start to work on a new application or even just a new feature in an existing application, you start with a preliminary design in mind. Everyone does this. Some developers whiteboard the design or make complete UML (Unified Modeling Language) diagrams. Other developers just have an idea in their head to guide decisions. Either way, you have a design you want when you sit down to develop an application.

How long is it before you discover an issue with your design and have to start modifying it? You might get one line of code in before you have to change your design, or you might get 75% of the way through before you discover an issue. This is largely determined by the complexity of the problem you are solving and how detailed your planning was. Regardless of the thoroughness of your planning, you will find an issue and have to start changing your design before the first QA review.

The second you make that change, you are adding cruft, so almost all of the time, you are working in a system that was not designed for the code that is being forced into it. In other words, you will probably be writing legacy code the next time you are at work, even if you are working on a new application.

Cruft, in software, is any code that is unnecessary or needlessly complex.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.220.237.24