Given people, process and tools, what should you optimize your software development technology strategy around? This is the question that has been at the top of mind recently.
Setting the right technology strategy for any size business can be difficult given the many complex factors involved, especially for larger enterprises. The primary goal, of course, is to support the business in providing value to customers first and foremost. If customers aren’t receiving value you won’t have a business for very long to set a technology strategy for.
For most companies, custom software is an expensive asset that requires significant care and feeding. To be profitable you must minimize costs and maximize value delivery.
The Value of a Strategy
Who cares? Why is it important to have a strategy? Many companies have been successful without defining a software development technology strategy but in most cases it costs more. The more developers you have, the more beneficial it is to share a common strategy amongst them to create an ecosystem of development. An effective strategy will allow developers to swarm across products/projects to be more agile and meet business needs. Additionally, if all the developers are working in the same or similar technology they can help support each other with issues and build out an architecture specific to their business.
Long term, a strategy can also protect you from major technology industry shifts. For example, the advent of object orientation and modern programming languages in the software development world fundamentally changed what was possible for development teams to accomplish in the same time. If we don’t keep up with the industry and have a plan for evaluating/implementing new tech the competition will to our disadvantage.
While these decisions can’t be made lightly and require deep thought, we also can’t spend too long in analysis developing a strategy. With so many factors in play, you could spend years researching each nook and cranny to the furthest extend as the entire technological world changes around you . Each year new technology, tools and approaches are introduced that change the game so we can’t spend too long in analysis.
That being said, researching only a single option could be equally harmful. Performing brief analysis on several options and then digging deeper into the best option(s) provides a nice balance of investigation and progress.
Process & Tools
There are a myriad of processes and tools that can be employed to effectively develop software and deliver value to customers. The correct process & tools for your situation can depend on your business, competition and people. Each must be considered when selecting the best options. All the vendors will say their tool/process/training is the best for your situation but its hard to tell without actually implementing them. Successful implementations by other companies similar to yours and/or in the same industry is typically a great indicator.
Many companies put more emphasis on process & tools over people, however. The problem with that approach is it’s the people who will utilize the tools/process. If the people aren’t bought in to them they are rarely successful. Reliable and competent people are typically hard to find for most employers. Over time they build up valuable knowledge of your business, industry and products/services which makes them even more expensive to replace. From a budgeting standpoint, the people are also far more expensive then the process/tools.
All of these points direct us to optimize our technology strategy for our people. In some extreme cases, it does make sense to optimize on other factors but it is rare.
What do you think? I would love to get more perspective on this topic. Add a comment below or contact me via social media if you have thoughts to share.