Create new legacies by not leaving legacy behind
It was a large group of fresh college graduates, with me being one in an overwhelmingly swanky new campus, the HR head introducing all of us to a career in the Information Technology industry made one strong statement - "The only thing that is constant is, change". It’s a thought which has stayed with me for 15 years of ups and downs in the career.
We have seen companies that are doing phenomenally well, and over a period of time fade off. What’s causing that? Is it that they sit on past laurels, resist change and eventually fail? In the software industry ‘Legacy’ is word that has a very negative connotation. It basically means a software that’s ‘old’ and is hard to replace. People get so involved in building software and get so passionate that they get attached to it, and stop being innovative and start protecting something that they have done for a while. This is when that software/system starts to become a legacy that’s hard to deal with.
Legacy projects, are potentially large money making products of organizations, or a critical piece of the ecosystem, which is built by great employees and liked by customers. Only burning need of it is to evolve to new threats in the industry – competition! Making changes is extremely difficult in a system that is already working. A well-known analogy is ‘Changing the engine of a plane while it is flying’. Changing legacy products is not easy. There is a huge sentimental attachment, employee resistance and worse - people giving up hope that things cannot change as it’s difficult.
Agile and DevOps ways of working is helping organizations to deliver faster than ever. New generation organizations (startups, and enterprises that foster startup culture) have better engaged employees and high motivation levels, eventually driving innovation and customer centric products. But, large organizations have multiple teams, only part of which adopt DevOps principles, and the rest are legacy teams. It’s not an exaggeration to say that less than 20% of projects in an organizations are following the latest trends in the industry and the rest are falling into the bucket of legacy and can’t change at the pace at which they would want to. (Refer to State of DevOps survey, and World Quality Report)
The company culture is very important in a large organization. They have so many teams and getting all of them to be ready for change is very important. The only way to create new legacies is by not leaving the legacy behind! Some of the strategies to help organizations adopt DevOps principles are:
- Start small, make small changes frequently and reduce the risk of change. If you can’t attempt moonshots, at-least follow the industry trends and don’t fall behind.
- Without leadership support and passionate folks in the team to drive it, nothing can change.
- Have a core team of people who know the legacy system well (domain knowledge), and supplement them with technology superstars.
- Take people along, keep everyone motivated. Don’t treat ‘people as resources’ and ‘tag hardware systems as assets’, it’s always the other way round!
- Processes, technology and people all need to change, have strategies for each.
- If there is anything that needs to be done twice – Automate!
It’s all about creating a future that is so far more exciting, lucrative & compelling that one doesn't have to look back.
I spoke about this topic at the Retail Code Conference in London (R-ETAIL:CODE is part of the :CODE events series, facilitating DevOps & software development conferences for the retail, finance, logistics, health and the entire enterprise world!). The presentation is included below. Please leave your thoughts and comments.