3 Things to Consider Before Investing in your Next Software Project
1. Up-to-date Technology
When undertaking a new development project, it’s important to understand the technology that is going to be used to build your project.
Eliminate Technical Debt
Some developers may be able to develop the software for a smaller investment because they’re using a technology stack they’ve worked with for a very long time. This is great, as they’re familiar with the technologies, but it also means the software is prone to technical debt right from the outset.
Technical debt refers to the implied cost of re-working a software solution to bring its technology
up-to-date thereby increasing its longevity. Software with technical debt can be more difficult to change to leverage new technology offerings – therefore software that is built on old technology can be left behind as technology changes.
Do Your Research
There’s no easy way to check for this, except to get some information from the development team about the technology that they recommend using to build your solution. Once you have this information in-hand, researching the technology to understand who built it, how supported it is, how old it is (and how often updates to it are made) is important.
What You’re Looking For
Ideally, you want a software stack that has been around a while but has had regular updates made to it. Using a stack that has been around a while means the software stack is mature, and likely there are many developers utilising it. If it has had frequent updates it also means that it is keeping up with the pace of technology changes. If the technology stack is too new, then the development team may not have experience with it, and consequently may encounter some difficulty working with it. If it has not been updated in a while, then chances are as technology moves forward – the stack you’re building your software on may not remain compatible.
Long story short, its important to make sure the technology your development team is getting regular updates and being used by other developers. If it ticks those two boxes, you’re good to go.
2. Project Managers
It may sound like a given, but often it’s not, and this is where we’ve seen budgets blow out for people. If there isn’t a project manager for the development team, and no project manager for your team, there’s a huge chance this software project will blow way out of scope and budget.
Why Are They Needed
A project manager at the software developer’s end should be responsible for overseeing the build of the project. They should be getting feedback on tasks from the development team, understanding where the budget sits compared to the proposal and should act as the client liaison.
With a software project, there are always going to be unexpected changes. Often you will want to add new features or change how existing features are likely to work. This requires the project manager to work with you on understanding the implication of those changes to the project schedule. Any changes then need to be reported back to the development team to then integrate into the development schedule.
From your end, there should be a dedicated product owner. This is the person that knows all the ins and outs of the project, and should be responsible for communicating information to the developer’s project manager, and to your stakeholders.
Having a single point of contact at both ends helps with the flow of communication, and goes a long way to mitigating conflicting messages between the parties.
It’s a given in any sort of relationship and it’s the same with your relationship with your software developer. You need to communicate and they need to communicate with you. So you know where things are out, what’s doable and what isn’t and most importantly, so you know how much things are going to cost.
When There’s a Breakdown In Communication
The biggest problem we see in software projects is a mismatch between the client’s expectations and the software company’s reality.
If the requirements of a software project are not investigated and communicated effectively, there can be a mismatch between what you expect, and what a software development company delivers. This is usually due to a lack of effective communication between both parties.
Good Planning Goes A Long Way
Good planning upfront can help mitigate potential miscommunication. It is important that this planning continues through the project as difficulties are encountered or requirements change. We’ve worked on projects before where there are several stakeholders involved in directing the project from the client’s end, and often messaging between them is misaligned. Ensuring a single point of contact between parties really helps minimise this misalignment.
If that’s not possible, then ensuring that there are regular conversations between all parties, or communicating information from a single party back to the group helps.