Let me clarify my point. It’s not that every company is now in the business of creating and selling software. But almost no company can survive without using software to conduct their business. If a company wants to survive and thrive, it must broaden its expertise and organizational structure to be a software company as well. So, a more accurate statement would be “every company today is also a software company”.
Today, there is hardly a business of any size that does not have a rather large technology component to it. Companies rely on software to communicate with customers, market their services, process orders, manage employees and customer relationships. If there is a retailer that does not have an online store — they are behind their competition. If a company offers a great service, has a web site, but does not have mobile apps — they are behind their competition.
One of the buzz phrases today – digital transformation – is the digital version of Lady Liberty. On it, the inscription reads:
Give me your tired, your manual,
Your erroneous masses of data yearning to make you money,
The wretched refuse of your teeming departments.
Send these, the unusable, outdated to me,
I lift my LED lamp beside the golden door!
And businesses see that dim LED light. And they truly want to transform. They bring in people in expensive business attire — consultants — who convince them that they are natives of the “land of the digital and the home of the electronic” and can guide them through the transformation.
In my long career in consulting, I have seen companies succeed and fail with this transformation. I have analyzed the empirical data I observed and formed some thoughts around what makes companies succeed or fail. Here are some of them, stated succinctly (each one deserves a dedicated post, if not a book). Here goes.
Being a software company is expensive. Very expensive.
You cannot sorta-kinda do it on the side. It requires people of many unique specialities, equipment, software, networks, infrastructure. Get used to seeing new types of bills and procurement requests and don’t treat them as luxuries, they are necessities.
Software development is an intense engineering discipline.
There are established computer science degree curriculums, known best practices and protocols, subculture of tribal knowledge, honor code, icons, humor. Hire professionals, with computer science degrees. But be aware – good developers are also artists. And big kids. The companies that realize that and cultivate the culture accordingly succeed more often.
Increasing the size of the development team is most often detrimental to the product success.
The analogy I would give is: software development is more like heart surgery than digging ditches. And while 10 diggers with shovels will dig a bigger ditch than 3, 10 surgeons will not perform a faster or better heart surgery.
Developing software requires a ton of coordination.
People in different departments must get comfortable talking with architects and developers, explaining the business processes in excruciating detail. It helps when the business side of the company begins to treat their technical ignorance as a serious impediment and makes an effort to get educated. They should, at least superficially, understand terms like HTTP, API, server, client, mobile app, platform, framework, deployment, source code, authentication, data type.
Software development is a collective effort, guided by strong and talented leaders.
It takes a team. There is no “I” in team. Yes, yes. But without a conductor, highly-skilled talented orchestra musicians do not play well together (in most cases). There are key roles that must be filled with the best people possible: product owner, architect, and dev lead.
So, come on! Lady Digital Liberty calls! Make more money and secure your company’s future by answering the call of her beckoning LED light.
Let me know how I can help.