When to use experts for technology advice
Nowadays, CTOs and software architects must provide the technology strategies to meet an ever-shrinking intersection in the Venn diagram of corporate priorities.
Here are my top considerations when I act as CTO:
Responsibility transfers (partners)
Functional requirements
Non-functional requirements
Time and budget constraints
Team support
Development philosophies
HR policies
Financial opportunities
Go to market acceleration
Let's look at each concern in more detail.
Can the technology strategy promote responsibility transfers?
Today, there are so many aspects to consider when using technologies that doing everything in-house makes little sense. You must transfer to outside partners the responsibilities for components that are not a differentiator for your product. For instance, you'll rely on Cloud providers, coding tools, frameworks and SaaS platforms.
You'll be using external experts to extend your expertise. You call on UX design or security experts at the start of a project to ensure you get the basics right.
You can also rely on a partner if your company does not have the internal expertise to define its technology strategy. An external partner providing experts to do the initial heavy lifting makes sense to shorten the go-to-market and reduce risks. Straightening things up by asking for help later can save a project but will rarely result in an outcome that meets corporate expectations.
Can the technology strategy support new functional requirements?
Of course, architects will always consider the functional requirements. But if you're doing agile, they won't all be known at project inception. And what of new customer demands after the product launches?
A product must be architected for current uncertainties and future unknowns.
A mobile application may later need to gracefully handle a flaky connection or have the ability to work in offline mode. An embedded software may require edge computing of AI models. A data pipeline may face the processing of billions of non-evenly distributed events a day when scanning technologies go from Mega to Gigahertz.
Popular technologies are always great at something. Otherwise, the community does not adopt them, and they quickly disappear. The difficulty is in choosing the right technology stack to solve a particular challenge.
The stack in use at the popular startup Instacart demonstrates the almost infinite possible combinations of available tools to build a product's features.
Can the technology strategy support the operations' non-functional requirements?
A SaaS context requires an operations-first mindset. You must meet the expected performance, scalability and availability requirements while minimizing costs.
Moreover, users expect your app to run everywhere, they won't tolerate downtimes when you deploy new releases, and they expect awesome support when something breaks. The technology must democratize your operations support to not rely on a single-point-of-failure hero to keep the lights on.
Obsessive automation, fast end-to-end testing, serverless and public clouds are tools that can help you address non-functional requirements.
Can the technology strategy meet the project time and budget constraints?
Sometimes, you'll have to trade flexibility for shorter development times. A platform like Meteor provides a faster path to Web, iOS and Android deliveries from a single code base. In exchange, you give up the flexibility of choosing a different database and deployment runtimes.
You also have to transfer responsibilities to external partners when something is not a competitive advantage. Through economies of scale, the public Cloud will manage your networks and provide standard building blocks like databases, application clusters, serverless runtimes, API gateways, generic AI models and backups.
Don't reinvent the wheel. Aim to be fast and cheap.
Can the technology strategy support your team?
Development teams need reliable tooling, free of surprises. A technology's maturity, remaining life expectancy, and strong community are critical decision points.
This combination of criteria must be balanced in your project's context and may push you toward alternatives. For instance, Flutter may be a better choice than Meteor for its better life expectancy. But are you willing to live with the Web rendering engine's less mature beta implementation?
Can the technology strategy support your development philosophy?
Some technologies are a better fit with automated testing, scripted deployment pipelines, native cloud services, infrastructure as code or DevOps team structures.
If you favour some of these approaches, some stacks may be more appropriate than others. For instance, you may be targeting serverless to abstract away infrastructure concerns from your team. If performance is essential, GO should be on your radar, as Javascript would introduce unacceptable cold starts.
Can the technology strategy support your HR policies?
A well-funded project may be able to attract highly qualified architects and developers. If you are on a budget, a team of generalists may be more appropriate. If you are bootstrapping a product in your spare time and your would-be partner only knows PHP, you'll go with what you have.
Sometimes, you will prefer leveraging current skill sets and align technology to match your salary and talent acquisition policies, as changing corporate culture takes time. But you may be obligated to synchronize your HR strategies if you are looking at adopting more complex technologies or a DevOps model.
You can also help retain the company's technical talent by introducing new technologies. Learning new tools is a great retention mechanism. Technical people want to stay relevant and are interested in current trends.
Can the technology strategy support financial opportunities?
You can leverage partnerships with key industry players, such as Cloud providers. These companies may want to enter your market space or region and can sponsor technology-related aspects. Grants and local incentives also exist but may only benefit local talent.
Technology also plays an essential role in maximizing startup valuation and investment possibilities. In specific markets and verticals, your technology choices can have a direct 20%-30% startup valuation impact.
Can the technology strategy support your go-to-market?
Technology must support sales efforts. It must provide today's expected assets such as security, performance and legal compliance. Later on, technology can be a marketing differentiator and help meet customer preferences such as data geo-location or mobile-friendliness.
What is INGENO’s advice?
There are two strategies to control costs when the budget is limited.
Your IT strategy may be to keep an internal core of strong competencies and outsource the more straightforward development tasks to a partner.
Others will choose instead to do the heavy lifting with external experts to get them faster on track. They will then use this foundation as a blueprint and leverage a team of internal generalist developers to add functionalities.
At INGENO, we provide on-demand pizza-sized teams of experts. This option minimizes risks when you attack complex architectures or adopt new deployment approaches such as mobile applications or the Cloud.
Join our CTO Club, read our book 'From Impossible to Done,' or schedule a short conversation with me to discuss these topics and more!