Scope, Schedule, Budget: Best Practices for Working with Software Development Partners

“We’re behind schedule and over-budget."
- You, potentially on your last software project.
Have you said these words (or something similar before)? It happens. We’ve all been there. While there are many facets of a software development project, here are four best practices to keep in mind to help your project stay on track.
___
1. Be Prepared!
Go in with a plan. Before you engage with a software development partner, be sure your team has a plan for the goal of the project. Countless dollars are wasted when clients are unsure of what they want to achieve and end up asking for countless changes along the way, which equate to timeline delays and change orders ($$!). Process docs, ERDs (entity relationship diagrams), flow charts, hand drawn diagrams, swim lane diagrams, user stories, etc. Any combination of these documents will help the process! Developers are stepping into a company or industry they probably aren’t familiar with, so having documentation as a reference is incredibly valuable. Some of the most helpful documents I’ve used have been hand drawn with arrows and scribbles!
2. Remember: when in doubt, it’s billable.
More often than not, developers bill by the hour. It’s better to think of them in the same way you’d think of working with a lawyer. Every time you contact them, ask them for help, or meet with them, you will be billed by the hour (or in most cases, the 15-minute increment). Ensure your team is using your time wisely and efficiently to avoid any unnecessarily billed time against your project. Emailing questions or feedback requests? Each email is billable time! Meeting time? Billable.
Late to a meeting? Billable.
Unprepared for a meeting? Billable.
Those internal debates with your colleagues while meeting with your developers? Also, billable!
If you have questions, collect all of them to send over in one email vs 5. Be prepared to complete testing and be armed with feedback to ensure the development process stays on schedule. Being efficient with your asks and meeting time will ensure you don’t get a surprise bill for additional time required by the developers.
3. Scope Creep, the horror!
Every time we work with a new client to build or update their software, they are overwhelmed with the potential of a new system. So many ways to improve! New ideas to gain efficiency! Less clicking! Integrations with accounting, and HR, and your company’s social media accounts! Streamline all the things! While those ideas are fantastic, they are probably also out of scope for your original project. And unless you have an unlimited budget, it’s good to note those ideas down and save them for the future. It’s tempting to try and get it all done at once (What if we don’t have budget? What if we don’t have buy-in from leadership?), but rolling out too many changes at once puts a lot of pressure on the end user. Asking too much from your users can result in more issues than it solves for, but more on deployments in a later blog post.
4. Indecision by Committee
When working with a software development partner, it’s important to choose a point person on your team for the duration of the project. This person will be the primary contact for questions and issues that arise. While often many are involved in the initial project vision and goal, having too many people involved in the day-to-day decision-making process can and will impede development.
We get it, everyone thinks they know best! My way is better than yours! And it might very well be, but having everyone chime in with their opinions and ideas just convolutes the vision for the developers.
Assigning a primary contact that is able to make decisions on behalf of the groups involved, gathering their feedback, and communicating effectively will ensure your development project achieves its goal.
___
Our goal as developers is to take your vision and make it a reality. Calling it an art might be a stretch, but our end goal is always to make people’s workdays easier and give them time back. While there are many other things to consider when implementing a brand new platform or even just system enhancements to your current software stack, these practices are a good place to start to help us help you achieve your goal.