Part One in the Series: Software Development Guide for Business Leaders
Thinking about developing a custom application? Let’s talk about future-proofing.
When you do as much custom development as we do, we hear a lot about future-proofing in development. The average expected lifetime of software that our customers expect is between 5 and 7 years. When a system is designed to last that long, a considerable amount of effort should be invested into planning. For a business that plans on developing a custom application, it’s important to future-proof your project to avoid costly application redesigns and to improve application longevity. Future-proof through planning, honest reviews of your in-house skills and capabilities, striking a balance of in-house support and outsourced development, and by avoiding proprietary tools and frameworks.
The key issues this post addresses include:
- How to avoid painting your development project into a corner by using proprietary frameworks and tools.
- How to be in control of your application development, regardless of your in-house development skills.
- How to ensure long-term support for your application when resources fail, are replaced or become incapacitated.
- How to handle post development support and why it is crucially important - The work continues even after initial development is complete.
- How to create the ideal mix of outsourcing and internal support.
Future-Proofing a Project During the Planning Process
Future-proofing your project starts just after it’s been envisioned and is typically the domain of the Project Manager (PM). The PM will use planning tools and methods and determine what is best for the business and the project long before any development occurs. PM techniques and processes help avoid uncomfortable situations where developers are vying for the work based on their skills and capabilities.
The PM uses tools and processes along with their knowledge of organizational assets and history, resource capabilities and strengths, and weighs this information to determine the right mix of in-house work and outsourcing.
Without thinking about future-proofing during the planning process you may end up with a short-lived web-application with higher than expected costs to the business. This is why dedicated pre-development planning is so crucially important.
Avoiding Costly Application Redesigns
Your company can avoid costly application redesigns and redevelopments if you critically review internal resources at the beginning of the project and if you avoid, as much as possible, the use of proprietary technology.
Also, an effective way to prevent costly redesigns is to:
- Use Project Management techniques and tools, (use a Project Manager).
- Complete project scope and business requirements documentation at the beginning of the project.
- Have sufficient budget to do the project right the first time.
- Setting a realistic timeframe and make sure not to cut corners.
The Importance of Assessing In-house Skills and Capabilities
An evaluation of your in-house capabilities is critical to the success of your business and crucial to your application development’s longevity. Your PM should execute a Capabilities Matrix to understand where your organization’s weaknesses are. A great place to start is the TOGAF Architecture Skills Framework for processes and layouts of an IT Capabilities Matrix.
Be honest about the real capabilities of your organization. Do you have the capacity, knowledge, and resources in place to make this project a success? An honest assessment will help avoid any problems and mitigate risks in the future.
Avoiding Proprietary Tools and Frameworks
To effectively future-proof your development project, PM’s and development leaders should avoid proprietary tools and frameworks sourced from new, or untested sources. The terms, “open source,” “free,” or even low cost, should be approached with extreme caution and diligence during the evaluation and selection processes.
You can achieve some amazing designs and benefits through these programs but never be lenient about accepting unproven technology or partners; especially during the planning phase of your project.
The long-term viability of using development resources from smaller organizations must be evaluated and weighted against other factors. Smaller, less experienced teams may be exciting to work with, but their stability in the long-term may trigger a redesign in the short-term.
When in doubt, go for tried and true solutions, tools and frameworks. You’ll have an easier time finding resources in the IT community to help you and you’ll all but eliminate the risks associated with partnering with an immature organization.
It's not always as exciting, but it will be significantly less risky, and if something does go wrong, you have more contingency options available.
Keeping Custom Application Up-to-date
Developing a custom application may incur a significant up-front cost, but the work doesn’t stop when the app goes live. There are ongoing costs and time investments that must be made to maximize the life of your new tools. Just like the operating system on your computer, your application will require upgrades over its useful lifetime.
You will need upgrades on databases, frameworks, tools and operating systems and there will be new features, additions, and business opportunities too.
No matter the cause, it is important to factor the cost of keeping your new application up-to-date in your annual budgeting of time and dollars.
Outsourcing Application Development and Support
Outsourcing is the ultimate future-proofing of your development projects.
When a development project has internal support for infrastructure and project management but uses external resources for the development then greater levels of success can be achieved.
Some of the benefits of outsourcing that I’ve seen include higher levels of technical expertise, excellent project management, and time management to name a few. Others can include tighter budgets, less scope creep and avoidance of the long-term cost of people.
If you plan on developing a custom application, be sure to future-proof it and avoid costly application redesigns while improving its shelf-life.
Future-proof it by using a project manager and project management tools and techniques.
Plan on updates. If secondary systems require updates, they may also need you to update your custom applications. Plan and budget for updates, then perform them; doing so will improve application longevity.
Assess the skills of your in-house team, (if you intend to develop in-house) and use an assessment framework to get the best result. An honest evaluation of resources and skills will help you avoid important operational tools using old thinking and skillsets.
Outsource; the costs associated with in-house development teams are more than dollars. While it is true that your team will know the business better and can react quicker; it’s also true that they will cost you more, get outmoded and limit development to their capabilities and skillsets. Outsourced agencies often have a broader, more modern approach to development.
On your next project try a hybrid approach by deploying an internal PM to oversee and coordinate the project, and an external development team to apply the latest techniques and programming tools.
CoreSolutions of London, Ontario, is a locally acclaimed software development firm with over 25 years of experience. The CoreSolutions team of experts, including developers and project managers, build web and mobile applications using the latest technology and tools and will assist you through all phases of the project including brainstorming, requirements planning and project management.