If you run a marketing agency, design firm or even if you are a freelancer you know how complicated scheduling upcoming work can get as different projects speed up, slow down, stall, or get cancelled. Last Fall we were deep into building a custom price sheet distribution tool using the Laravel framework and the plan was that after that we would be taking on a likely project (via a partner agency) to develop a custom plugin to sync some enterprise resource planning(ERP) software with a WooCommerce store using a RESTful API.
Over the last few months of the Summer we had been meeting with the client to establish the API documentation and structure(they were developing the API themselves because the ERP didn’t already have one available). Discussions about this API project had started in January and it had always been on our back burner as something that we would get started on once the API specifications were finalized and working. We expected the project to take us around 6 weeks of development along with other work we had happening so we were not actively pursuing any other work for that time period of the Fall.
Communication about the API project quieted down and near the end of the Laravel project we were informed that the client was in the process of switching ERP software so the project was suspended indefinitely. There was no point in them creating the API or us making WordPress plugins to connect to an API for software that they were not going to be using anymore. This left us with no big project to sink our teeth into after the Laravel project so we diverted our time into work on our Kuztek company site and some other small projects, leaving us with a few tighter months financially.
So what went wrong?
Well, we never had a written contract for the project and we never received a deposit for the work. This was primarily because we never knew when the project would start or when the API would finally be complete so we always expected the work to happen “soon”. But the biggest mistake we made was not putting the effort in to find solid projects to work on in the future because we thought the fantasy project was going to start next. Thankfully we were able to bill for our project planning and API documentation time, learning a lot about how to plan a proper RESTful API, but this was just a fraction of the total estimated fantasy project value.
What would we do different next time?
No matter who your wonderful partner or amazing client is you need to take on actual projects. Filling up your upcoming months with potential projects won’t pay your employees, feed your kids or keep your lights on. We definitely let our sales prospecting process have a rest as we expected to be busy for a few months when really we should have been filling our schedule and taking deposits. If a fantasy project can’t become a real project it has to take a back seat to the projects that are giving you actual money and ready to commit. Your clients should be able to understand that you can’t hold a spot open in your schedule for them indefinitely as you pass up other work. I think that taking a more serious approach to how you schedule projects for next week or months down the road will show clients your professionalism and increase your value. Please don’t make the same mistake we did, let your future be filled with real projects and not fantasy ones.