How much will it cost? This is probably the most common question we get when talking with clients and prospective clients. It's understandable. Software development is often expensive and difficult to estimate. People have been burned in the past by software that ended up not meeting their needs while simultaneously costing a lot of money. That is clearly a recipe for trepidation when undertaking new software projects. However, it doesn't have to be this way. Below, we'll talk a bit about how software projects end up being more expensive than estimated and present a different approach to software development that can stretch the investment over time while resulting in software that better matches a business's needs.
The traditional style of software development, often referred to as waterfall development, involves gathering all the requirements for software at the outset, estimating how much it will cost to build each one, and adding them all together to get the total cost of the system. Unfortunately, that total estimated cost is almost always wrong. There are a host of factors that conspire to make those estimates inaccurate, but two of the major factors are:
- Users often don't know for sure what they want - They have ideas and visions, but those visions change as they see more of the software and start to interact with it. This is in no way a bad thing, quite the opposite, it ultimately results in software that does more for users and is better fitted to their need. Unfortunately, it's nearly impossible to account for at the start of a project
- There may be technical hurdles that are unknown before development starts - As much as developers would love to know every single corner of a programming language or technology platform, the truth is that they can't. So, they do their best, based on their experience, to identify where they may encounter challenges and complexity. But, as they say, you don't know what you don't know, and there are usually areas that are more difficult than anticipated.
We find that the main flaw in this approach to software development is that it treats the development of the system as a one-time event. Get everyone together, build the system, deploy it, pack up and go home. Job well done. This simply isn't how business works though. Consider, how many parts of a business can be done once and never considered again? Very few aspects of business meet those criteria. Instead, most areas of business require ongoing investment and continuous effort at improvement. For example, marketing in a business is an ongoing process of interacting and communicating with customers. Marketing is such an ongoing function that businesses typically allocate a significant percentage of their revenue to sustaining those activities (4%-24%, depending on the industry!).
We find that a similar approach to developing and maintaining information systems is much more effective than a one-time system development. By making continuous investments in software systems, the systems can evolve and grow along with the business, keeping their functionality closely aligned with the needs of the business.
Here are three tips for changing how your business, develops, maintains, and ultimately benefits from its software.
Develop a software plan
Successful businesses make organized plans for their growth. They have a business plan, a marketing plan, production plans, hiring plans, on and on. One of those plans should be a software or technology plan. This plan should identify the impact that all the other plans will have on the needed functionality of the business's technology and identify what is needed to make sure the software can meet those needs. We wrote in more detail about developing software plans in a previous post. If you don't have a plan and are not sure where to start, we can help you identify your technology needs and develop a plan to meet them.
Set your budget
Consider how much you should be investing in your software on a regular basis. While there is more variability in technology investments than in marketing investments, you should determine what is appropriate for your business. A few of the premium research services (e.g. Gartner, Computer Economics, and Forrester) provide extensive research if you want to benchmark. However, you can also use a bit of trial and error to zero in on the appropriate budget for your business. The most important aspect is to commit to the continuous investment in your information systems so that they contribute rather than hinder your success.
Find a trusted partner to implement the plan
Developing and maintaining software requires consistent partnership with the person or team developing the software. The developer must understand your business, your strategic goals, and how your business is changing. With that knowledge, they can work closely with you to continually refine your software plan and continue to evolve your software to meet your needs. Your partnership may be with an internal software team (or person) or may be with an external development team. Success can be had either way. If you are not sure whether internal or external developers are best for your business, keep your eye out for our future post on choosing between an in-house development team and hiring an outside team.
If you're not sure where to start with your technology or what your next step should be, contact us below for a free consultation.