Before we start, let me tell you: this is not another agile development blog.
A couple of weeks ago a business leader asked me: how can my software development team deliver successful software every time?
Without hesitation, I answered: “You need a committed team, a well-defined process, and the right tools.” However, I felt the answer fell a bit short. I did not provide any useful actionable advice. Therefore, in this blog I want to provide more depth to my answer.
As a company building software, you need three main inputs:
- Software engineering talent
- Development tools
- Software development process
As a business leader, there is a chance you participate in the decision-making process for hiring the IT department executive. But, rarely C-Suites get involved in hiring the rest of the development team, selecting software tools, or the process used to build your software. At first glance, these activities are better suited for your technical team. However, if the success of a software product is measured by the value it produces, and its success depends on the quality of these three main inputs, why are you not involved?
Technology is not only an IT decision.
1.) Identify the Right Engineering Talent
If you are planning to build your own software development team, your new hires need to buy into the corporate culture. The Harvard Business Review recently published an article on the importance of strategy and corporate culture as vehicles to maintain organizational viability and effectiveness. A team that identifies with the corporate culture and its brand promise will innately be committed to its success. The understanding of culture and brand promise will also encourage the inclusion of the business perspective in their technical decisions.
Is your offering aimed to provide the best customer service in your industry?
Look for engineers that relish the opportunity to talk to your customers and help solve their problems.
If you plan to outsource your development, consider how your potential technology partner can deliver business value for you, and not just cost saving potential.
Are you promising to solve any problem within 4 hours? Will your technology partner respond that quickly? Working with tech consultants that are based significant time difference can be a challenging and in turn can damage the loyalty base between you and your customer. Find a technology partner willing to embrace your values and deliver on your promises. The upfront cost savings may not be worth the hassle of potentially jeopardizing your existing business wins.
2.) Select the Right Development Process
You need to select a development process that will allow you to deliver business value continuously. Committing to and implementing a software development process is a company-wide concern and not only a technical choice. A software process impacts every aspect of your business, management, marketing, sales, etc. Everyone needs to understand their role in designing, building, deploying and selling the software product. They must be prepared to interact with the development team at the appropriate time and provide the information needed to deliver the right product.
Example:
Your business wants to move to the cloud and offer a Software as a Service (SaaS) product. The team starts coding a Minimum Viable Product (MVP). Your team delivers on time, and on budget. Your MVP test is a success with your clients. They are ready to pay to use your system in their production environment. Your marketing and sales teams scramble to figure out the product offering and pricing. They determine that a monthly subscription payed via credit card is the right model. However, the development team didn’t integrate a payment gateway because it wasn’t part of the initial requirements. Now, they have to do a lot of rework to satisfy the business need.
Re-working a product can be inefficient and frustrating for all, and results in missed windows of opportunity that end up having a significant impact on your potential revenue stream. The best process is the one that allows every aspect of your business to interact with your software development team at the right time to ensure a great product. Look at the different available processes and determine which one would cause less friction to adopt for your organization. And once you identify it, be pragmatic about its implementation and change it to fit your needs.
3.) Select Technologies That Will Work for Your Business
Many software development teams make technology choices based on wanting to learn and use the newest technologies, inadvertently adding risk to the project by doing so. The forefront of developers minds is technology, they are hungry to learn and willing to jump into new offerings to expand their skill set. However, business is typically not in the mindset of a developer therefore causing a damaging impact on the business itself.
Involvement in understanding the business impact that every technology choice will have on your offering can save you thousands.
Example:
Your development team favors open-source technologies instead of commercial tools. This might seem attractive from a business perspective – free tools. However, open-source tools are typically immature compared to their commercial counterparts. You would be potentially saving thousands of dollars in the short-term, in the long-term your team might spend weeks or even months creating and maintaining additional artifacts that were provided by the commercial offering. Therefore, negating the initial cost savings, adding more maintenance cost, and increasing the risk profile of your product. Your business value is delivered through software that helps ail your customer’s pain points and not through creating tools or platforms – stick to your strengths.
Select the tools and platforms that will minimize your team’s time building and maintaining commodity code, so that they can focus on the code that delivers on your brand promise.
To ensure you’re making the best decisions you need to put IT back in the hands of the business leader. Get involved and provide your business perspective to the decision making process.
Contact us today to learn how we can help you de-risk and accelerate your software development efforts.