background

Strategy for Bringing Legacy Projects to the Next Level

image

Overview

From this case study, you will find out about the difficulties of working with legacy projects, what to do in the early stages, and how to organize teamwork effectively.

Industry

The term “legacy” is very close in meaning to “heredity.” People inherit not only positive but also negative traits from their ancestors. In the same way, project managers often inherit problems from their predecessors. At one time or another, almost every specialist will have to undertake a project with an outdated code written by unknown programmers. It is also common practice to hand over legacy projects to new PMs with no documentation.
In such cases, historical projects become hysterical, causing untold stress and inconvenience. With no clear way to bring a legacy project into order, the PM and other team members must make titanic efforts to figure it out.
When undertaking a legacy project, in addition to obsolete code, you may also inherit the following:

  • outdated technology;
  • non-uniform architecture;
  • dearth or even complete absence of documentation.

The Challenge

Our company undertook a large project that had been created long ago by other developers. The Clever team had to replace old software with new programs that corresponded to the latest trends in design and technology.

The Solution

Getting Acquainted With the Project

Our first task with this large and old project was to collect initial data:

  • Documentation and initial technical assignment.
  • Access to Git or other code storage.
  • A bug report showing all the weaknesses, potential problems, and elements that could break or that had not yet been fixed.

After we retrieved our data, the next step was to conduct a technical audit of the project, to identify bottlenecks, and determine which faulty decisions were made by our predecessors and when. We also had to study the third-party services and libraries that were used within the project. At this stage, we created a document to record the actualization of library and third-party service versions.
The next step was to check for the availability of Unit / Automation tests, which could greatly facilitate further development.
The customer and all key stakeholders were notified that the first 3-4 weeks would be spent on code review and small fixes.

Estimate and Prioritization

Sometimes a situation arises when it is critical to implement a certain feature. To do this, we evaluate the task development and allocate time for refactoring, if necessary, for the implementation of this feature. Developers work thoroughly on new functionality and refactor the code.
As the team is just beginning to understand the project, it becomes acquainted with the feature and introduces it into the work, starting with understandable tasks and gradually increasing the level of complexity. Each feature should be documented and agreed upon with the customer.
Developers do not like to refactor code in the early stages. Since each specialist thinks they can create something better, you should make sure they do not rewrite what already works well.
At this point, it is important to strike a balance between bugfix, software upgrade, and feature implementation. To do this, we evaluated bugs and critical drawbacks, prioritized them on a par with features, and started using these features. This was an effective way to remove significant blunders and deficiencies.

Workflow

We established a straightforward workflow for all team members, as well as effective communication with the customer.

Customer

In legacy projects, it is important to establish a clear process for accepting requests for feature implementation and changes. We decided to work on Agile. Once stakeholders brought us an idea, a PM was the first person to process it and ask questions to clarify basic requirements. After it became clear exactly what the customer wanted, the feature was documented, evaluated, and entered into the project backlog. After that, prioritization took place.

Developers

Tasks of various kinds (refactoring, bug fixing, feature implementation, etc.) were taken into a sprint as needed.

Testers

Testers were present at team meetings during the sprint planning. They took an active part in the discussion and studied the documentation for future changes. The specialists were not allowed to hold tests without having studied the documentation.

Project Environments

To maximize the comfort and fruitfulness of project activities, we deployed the following types of work environments:

  • Development – initial development environment.
  • Testing – the environment where features and fixes get from the Development environment.
  • Stage – the environment that is fully relevant to production. It ensures the prevention of non-working functionality or bugs in final production.
  • Production – a live version of the site.

Results/Achievements

Working with legacy projects is always difficult and tedious. But the Clever team has derived a formula for success that can greatly facilitate the process. The following steps should be taken in order to bring your legacy projects to the next level:

  1. Collect the initial data: documentation and initial technical assignment, access to Git or other code storage, a bug report showing all weaknesses, potential problems, elements that could fail or have not yet been fixed.
  2. Evaluate available features.
  3. Conduct a project audit to find deficiencies and bugs.
  4. Prioritize tasks with the customer.
  5. Work passionately according to the agreed-upon strategy.

Look for more interesting
articles

Recent publications


Ultimate Guide to Top Search Engines 2021

Among a vast array of search engines, Google remains the indisputable world leader in web search. Because the majority of people and organizations use Google as their primary desktop and mobile search engine, ranking high on Google is a number one goal for most businesses and private firms.

Tags: Seo

App Stack: What Is App Stack for Android

The birth of a great web app relies on a carefully orchestrated combination of factors that unfold as your project progresses. The Agile approach provides us with great insight into the minds of our clients, and defines our technological solutions for every specific project.

Tags: Development

9 Best NodeJS Frameworks for Backend Development in 2020

Node.js is a progressive backend development technology that was first released in 2009. It continues to grow in popularity among software developers for creating both the frontend and backend of apps, using a single programming language, JavaScript. Its straightforwardness and ease of use make it a good choice for beginners who want to launch full-fledged apps without having to learn multiple complex technologies. It saves time for programmers, who can create code that other engineers will easily understand.

Tags: Development

When and Why to Use Node.js for Backend Development

Node.js is a technology built on Chrome's V8 JavaScript engine that was first released in 2009 and continues to grow in popularity. nt, read our Node JS vs Django comparison analysis. Walmart, LinkedIn, Uber, NASA and some other giant entities have used this open-source, straightforward and easy-to-customize environment for their web applications. 

Tags: Development

Everything You Need to Know About rel=”noopener noreferrer” Tags: Purpose, Benefits and SEO Impact

WordPress included the rel="noopener noreferrer” clause in the list of its default features starting from version 4.7.4. As with every update, the new tags made SEOs concerned that they would threaten their projects’ positions in search rankings. Many feared the update would be a variation of the nofollow clause, preventing search robots from transitioning to linked pages when crawling websites. 

Tags: Seo

WebDesignRankings Lists Clever Solution Among the Best SEO Companies

WebDesignRankings is an analytic platform that conducts ongoing research in the global market for online marketing services. It provides its readers with the latest evidence-based ratings, helping consumers choose the most reliable, authoritative and cost-effective partners for web promotion. 

Tags: Seo

Request a free quote

    Type of Project *
    Budget Range *
    Have you ever performed seo before? *
    Do you already have Google AdWords account? *
    Do you agree to give access to the Google Adwords account in viewing mode? *
    Do you already have Amazon account? *
    Do you agree to give access to the seller account in viewing mode?
    Is your brand registered?
    Budget Range *

    Contact Us