Showing posts with label Challenges of being a "Tech" company. Show all posts
Showing posts with label Challenges of being a "Tech" company. Show all posts

So you think you are a Technology Company? Think again.

I was recently asked to speak on technology at our company town-hall, and since our company is in the middle of a transformation to a “Technology Company”, I decided to make that the anchor-point of my talk. Why? Because I have found that most companies and their employees do not really “get” this concept, leading to many interpretations and confusions and hence resulting in lost opportunities. I wanted to make sure our employees got it right.

As I thought through my talking points, I came up with a small list of misconceptions about what a Technology Company really is. I decided to share all the thoughts I had gathered here, in anticipation of an interesting discussion and feedback from a larger forum…

So what is a “Technology Company”? The most common explanation I have heard is - a Technology Company is one that effectively uses technology to be successful in business. If you let yourself believe that, you are in deep trouble, in my humble opinion. Merely “using” technology may have been a good strategy in the 70s and 80s, but today, being technology-enabled is just “table stakes”. Can you name any business today that has not adopted technology? You can’t, right? Even local mom-and-pop shops now use mobile-payments and take delivery orders on Whatsapp. So, would you call all of them Technology Companies? I am sure you wouldn’t. So, what is it that Technology Companies do differently?

Well, to answer that, let me borrow a term coined by Tom Peters. The term he uses is “Re-Imagine”, which I think perfectly captures the essence of what I am attempting to convey. Technology Companies are companies that use Technology to Re-imagine business, rather than to just automate or enable existing business. They use technology to find completely new ways of doing business, they even invent new kinds of business on the strength of technology. At a Technology Company, technology defines business, rather than the other way around. Ask the big banks, and they will tell you how they thought interconnecting their branches and installing billion-dollar “core-banking” systems to centralize their operations would be all the technology play that was needed, only to be left gaping at upstarts like Atom (UK) and Ally (US), the new “online-only” or “direct” banks, that have redefined (Re-Imagined!) what the banking business is. This quote from an article in Wired magazine (http://www.wired.co.uk/article/digital-only-banks) sums it up nicely – “I could make a compelling argument to say that Atom is actually a data company that happens to have a banking license”. Well, there you have it. I could not have put it any better myself. But wait, it gets even better – “Atom's competitor, Mondo, is perhaps best known in the tech world because it has run a series of hackathons to imagine new banking functions”. See what I mean?

The second common fallacy I find is the idea that Technology Companies are about the latest and greatest technologies. I have seen companies become a veritable museum of new technologies, in an effort to embrace all that is new and shiny, thinking that just being on the latest technology will give them a business advantage. They keep building “Next-gen” versions of their existing products using new technologies, thinking that will automatically make the product better. No. Technology is just a tool, it is how you use it that counts. Yes, the latest technologies may have capabilities that could give you advantages, but only if you apply those capabilities to business in innovative ways. Try this exercise. List out the top 50 companies by R&D spend. Next list out the top 50 innovative companies. See how many names in the two lists match. Surprised at the lack of co-relation? You shouldn’t be. Re-Imagination happens when business ideas and technology capabilities come together in previously un-conceived ways to result in completely unforeseen outcomes. That is why it is so difficult. That is why it so often blind-sides established players. And, that is why it is so valuable.

As I was finishing up my preparations for my talk, I tried to anticipate counter-points that would come up, so that I could go in prepared. One of the top questions I knew folks would have was – “Hey, we have been in this industry for decades, and have unique knowledge and expertise in the domain, and that is our biggest competitive advantage. Why do we need to become a Technology Company”? Very good question, and many companies think along these same lines and go – “Oh yeah, that’s right! So, if I use technology to automate or enable these unique business strengths I have, I should be a winner on all counts, right”? Umm…hold on. I know that logic sounds very reasonable. But don’t jump to conclusions yet, follow me closely here. The problem is that your “unique business knowledge and expertise” is competitive in the context of how business is done today! It is tuned to the way the business works today. What if the context changes to a “Re-Imagined” way of doing business? Would your well-practiced orchestra go completely out of tune? Would your years of in-grained processes and culture make it all the more difficult to turn the ship and catch a new prevailing wind? You bet it will! Tell me, did Amazon have decades of experience as a book-seller? Or was Uber a taxi-fleet operator for a century? They are true examples of how Technology Companies change the game.

Well, that brings us to one final interesting question – if you are a true Technology Company, do you always remain so? Can you rest on your laurels and be assured of continuing success? Aha! Life is never that simple. Remember, you rose to ascendancy because you were the first to use technology to “change” how business was done, so if you stop changing, what happens? Yes, you are right; your competitors will soon catch on. What was unique to you will soon become established business process! Your days ahead of the pack will be numbered, and soon the herd will be all around you. And now, you will be as susceptible as the others to a new upstart who changes the game again. So you see, to retain your Technology Company badge, you will have to continue using technology to change the game. Look at Facebook, the guys who wrote the rule-book on social media. They are now trying their best to catch up to the new brats in town – Snapchat and Instagram! The only company (that I can think of) that has relentlessly held on to the Technology Company badge is Apple. No wonder both their customers and their shareholders love them so much.

Hope I was able to get you to think differently about this topic. So, what do you think? Do you agree? Which of the fallacies listed above have you encountered? Do you have some more examples? What are your examples of great Technology Companies? I would love to know. Or, do you disagree? If so, please enlighten me with your point of view through your comments.

The Success Paradox

I have been advising many customer CTOs and VPs with their product strategies, product roadmaps and modernization efforts. In the past I have also led new product developments, and have had engineering ownership of a mature banking product with over 500 customers. Looking back at what I learnt from all of this, I realize that I see a clear trend here - the more success a product has had in the recent past, the higher the chances that engineering is nearing a dead-end. The higher the past success, the more difficult it is to achieve the next leap in engineering for future success of the product. And, on top of that, the longer you wait to take the next leap in technology and engineering, the worse it gets.

Why does this happen?

Let us assume you head engineering, and have started building a new product. You have a clear vision of what the product needs to do, and how you are going to achieve it. The design, architecture and roadmap of the product is based on this initial vision. The choice of technolgies and tools is similarly based on current needs and current availability. Everything goes well in development. You release the product into the market and sit back and relax, expecting to keep working on the roadmap at your pace and priority. Suddenly, your product picks up! You have new customers signing up every day and guess what, your plans are hijacked. The business wants to capitalize on the momentum and starts pressurizing you into providing new features faster, features that you have never planned for. Customers start getting pushy about their defects and their feature requests. The load on the system keeps increasing dramatically. You hire a larger team, go with the flow, start churning out releases by the dozen, add many new features, increase the infrastructure footprint, integrate with a bunch of partner products....you are running just to keep up!

The years fly by, and one fine day, business comes back and tells you - "the product is not good enough, and engineering does not seem to be able to give us what we need in time". What?! Are we talking about the same product that was beating the charts 5 years ago? Yes, we are. Unfortunately, while you were busy fixing bugs, adding new features, improving performance to meet the increasing load on the system, and fighting off impractical feature requests, the world has moved on. Competitors have come out with cooler stuff built on newer technology. Their solutions are more modular and can integrate with other services. They are more nimble and agile. On the other hand, your technology, that was shining new at inception is now rusty, your architecture looks dated and monolithic, your interfaces are not open enough. And guess what, over all those years, as you were madly keeping up with "Business as usual", technical debt has been silently creeping up behind you. The trickle of technical debt, that you always planned to catch up with in the next release, is now a mountain, blocking your way to agility, nimbleness and efficiency. Each new feature now takes longer to develop, and is costlier. No wonder business is complaining!

I see this story repeated again and again.
So, what is the solution?

Well, once you get to this state, there is no easy way out. So, my suggestion is, never let yourself get to this stage. Keep "watering the roots" - keep looking at ways to improve the architecture, keep refactoring and catching up with tech debt, keep an eye out for new technologies and trends and adopt what is necessary, keep in tune with business strategy and align the product roadmap accordingly, and of, course, use an Agile or Lean development methodology. These would help, but would not insulate you completely. You will still have challenges. But just being aware of the paradox and taking adequate steps should make life much easier.

First Mover Disadvantage

If you are an IT developer or architect, I am sure this has happened to you - someone new comes along, looks at an application you built from ground-up with your blood and sweat, and says, "Hey, I see a lot of things that can be improved.." and rattles-off a list of things that s/he would have done differently, or, even more maddeningly, just dives in and refactors the code to make it obviously better.

You have had such experiences, you say? Me too. And no wonder, because that is the very nature of good software design and development - it is iterative. And you learn something new from each iteration. And by the way, this principle holds for any first-time creation - everytime you review a composition or letter, you find ways to improve it, everytime you rearrange your furniture in your home, you find better ways of utilizing space.

Therefore, as the first mover, the person who takes the first stab at writing an application, you are always at a disadvantage, because anyone coming later (including you yourself coming back and looking at it later) will have the advantage of hindsight, will see the problems that only come out after a system is in production, and will be able to provide improvements.

Should we stop being "creators" of software, and instead wait for others to make the first mistakes so that we can then come along and prove we are better by pointing out improvements? Absolutely not. Anyone who has written new software would laugh at that idea - they would know how it works - once you get into the creative urge, code just flows out. You do not care what the world will think - you are too engrossed in giving life to our ideas, in finding that perfect piece of syntax that would turn that complex algorithm into reality. And that is how it should be. And to top it all, the joy of seeing your own creation in action - the pride you feel when the application works perfectly or wows audiences and users - that feeling is worth a lot.

So, lets give full freedom to our creative urges and let the code flow freely from out fingertips - we will definitely love the experience, and the world will be a better place because of it. Yes, it will not be perfect. Yes, someone will always find improvements later that make us look a bit foolish, but who cares?

On the other hand, the next time you are in a position where you can cast a critical eye on someone else's original creation, please do keep in mind that you have the second-mover advantage, and that it is always easier to be wiser in hindsight. Lets learn from the mistakes of others who have walked before us, and be humble enough not to belittle their efforts. Sometimes, it is only because they have stumbled through the thickets ahead of us and cleared a path through the bush, that we get to stroll along and enjoy the natural beauty.