As I look at my job and what I do, I am continuously confronted with the task of developing and completing projects to meet the ever-growing company’s market. We continue to expand our needs and as the company grows and we meet our market opportunities, so do the risks and execution complexities. Expediency becomes central to execution. In other words: how do we do more with less and faster?
In my opinion there are three ways to approach technology development and company growth, whether for a start-up or an established company. These approaches are about the business of technology and not the technology of the business. They are about technology as a business tool and technology as a business process.
Just like everything, each one of them has pros and cons:
1 – Purist. The purist approach is based on having all the answers before hand. No opportunity is pursued unless all is known about that opportunity and an existing product is 100% ready to answer the opportunity.
Development cycles are long and tedious and innovation is not the order of the day or the charter of the technology group. On the other hand, all processes are highly repeatable and steady. Also, priorities are SET IN STONE.
I do not think this model works at all. It is too rigid and stifling. For a start-up it spells dead and for progressive companies, it means “getting stuck in the mud”. It is important to note, however, that there are companies that follow this approach very closely and are VERY successful. These are companies not only with deep pockets, but with really long term visions and strategies and are largely unaffected by market changes. Also, their competition behaves in similar ways and innovation is “acquired”.
2 – Opportunity. The opportunistic approach is based on letting the company flow as opportunities develop. Business development seeks out opportunities on areas that are related to the company’s market, but they may or may not be close to it. As opportunities present themselves new products are developed to fulfill the opportunity. And if the company has an interesting idea that solves a good problem, these opportunities come faster than they can be handled. And if the company is a dud, then being driven by opportunities that do not exist generates a quick exit, however, not a successful one.
Development cycles are all over the place. Priorities change on a regular basis and many projects get started and never fully finished. And there are more products/projects to do that can be done. Thus, the continuous change in priorities and lack of 100% completion on projects.
For start-ups this is not such a bad approach. It is very eroding and risky, but ultimately success comes from being able to reign in the opportunities, priorities and products together at more less the right time. The problem is that this creates many one-offs that are hard to integrated with each other and sometimes the quality of the code is not the best – no matter how good the developers are – and documentation is lacking.
For established companies, this is probably one of the worse methods to follow. As a company goes from start-up to the growth face, the issues of priorities must be resolved and productivity needs to be managed and understood. Product road maps must be respected and business development needs to focus. This focus is not about not looking for opportunities outside of the core, but it is about looking for opportunities that do not represent too much of a change to the products and priorities and that are inline with the growth strategy the company is following.
3 – Growth. The growth approach is based on looking at a company in a continuous strategic manner. Products and projects are selected based on a crafted road-map and business development targets opportunities very close to the company’s core products and/or services. Additionally, all development is done in a fashion where high reusability is ALLWAYS achieved.
The key for growth is reusability. In other words: leverage what you have so to reduce cost of new product development reusing existing frameworks. New product development does not just mean cost of technology development, but full product development cycles, which include technology. Also, reusing does not mean lack of innovation, if anything it all about innovation, but on the shoulders of existing products and services.
Another key to growth is full understanding of the market the company plays in and other markets into which the company can expand. But these markets should have similarities as to be able to reuse not only technology, but also the business models, and by extending the company’s business model as well. This understanding produces successful and flexible strategies that propel companies forward.
So … what is the right model to develop and keep a company growing? My inclination is to choose a combination of Opportunity and Growth, although, I would still err on the Growth side. But that is for startups. It is hard to ignore opportunities, especially early stage when the company is still looking for an identity and trying out the idea that created the company against the market. Flexibility for an early stage company is paramount. But sometimes flexibility gets us in trouble and produces lack of focus. In the end, lack of focus is the biggest killer of any startup.
For companies that are past early stage, Growth is the best way, again in my opinion. The growth stage is where companies make it long term. Growth is about understanding the market forces and incorporating them into the strategy. And that strategy turn into a long-term plan that include “what-ifs” scenarios. It is also during this stage where technology is re-factored, possibly rewritten and new products are built to update existing ones using the same and expanded API set.
For companies that are well established I think that a middle ground between Purist and Growth should be the model. Innovation MUST be a focus of an established company. It is the only way to keep an edge and to stay competitive, but existing products need to be maintained and updated. So, long existing products should have a steady release schedule and roadmap, while other areas should, again, focus on innovation and leapfrogging the competition.
One more point I would like to make: The stage of growth and development of each company should dictate what is the most optimal method or approach is best for each company. Each company has different cultures and obstacles to overcome to keep on growing, so, to think that one method will apply to ALL companies is silly. Best practices or writings like this, whether you agree or not, are just guidelines and at the end, each company has to find its own way.