From Wikipedia: “Business agility is the ability of a business to adapt rapidly and cost efficiently in response to changes in the business environment.”
So, now that we all know what business agility means, I’d like to share the top 4 things a technology startup must possess in order to be agile (based on my personal experiences with several startups).
1. Executives that jell well and are open to new ideas
This one is really self-explanatory. If one of the partners is not flexible then quickly changing business direction or even introducing modest changes can become “mission impossible”. In most cases, conflicts arise due to a startup experiencing some kind of problems. How do you solve problems? Discuss, analyze and agree on course of action. “Agree” is the key word here.
2. In-house expertise to make intelligent high-level decisions
Even if the team jells and agrees it doesn’t mean that an intelligent decision has been made. Their must be in-house decision makers to cover strategy and decisions in business development, sales, marketing, technology, and other relevant areas. Outsourcing should only be considered for executing decisions, but not making them.
3. Enough money to implement new ideas and weather the storm
Ok, so the decision has been made. Now it’s time to execute. Regardless of what the decision is it’ll take time and money. Nothing new here.
4. Flexible platform architecture and design
Let’s say startup’s management team agreed to introduce a new revenue stream, which changes some of the initial business plan assumptions. This may seem straightforward to a non-technical executive. Well, it isn’t. Sometimes introducing just one feature can completely negate existing business processes. I like using legos as an example of flexibility. You can replace various pieces without breaking the integrity of the final product. In software these pieces are called services and components. (i) Each service/component must be designed in a way that it can function independently of the surrounding environment. All the service or component should care about is the input and the output, but the logic itself is encapsulated within. (ii) Another important feature is for the service to function exactly the same whether it is executed synchronously or asynchronously. (iii) Finally, it is important for a service to be able to run on either the same physical machine as the calling service/component or on a completely different machine. These 3 principles will allow the platform to change, scale and even integrate with other platforms.