Kicking off a new project can be challenging. There are lots of options to consider and many obstacles to overcome. With years of experience delivering successful projects under our belts, we asked our developers what steps they believe people should be taking before they start a project. The three main points which came up were; think hard about what you want, plan ahead and work with your developers. So what did they mean?
Think hard about what you want
Getting your requirements together is a hugely important step towards starting a successful project, so it’s important to get this early step right;
- Try and define requirements primarily in terms of business needs.
o The fine details of implementation are best fleshed out later in the process, in collaboration with your designers and developers.
- Try not to make your requirements list too generic – unless it’s strictly necessary. Often very simple sounding requirements like ‘users can define their own reports’ can be very complex to implement and may not be needed.
- Don’t be constrained by any existing solution! Now is the time to think differently and perhaps the best solution involves a whole new approach. By focussing primarily on your business goals you give the developers room to translate them into the concrete implementation ideas which will suit you best.
- Prioritise ruthlessly – for each feature ask “if the whole system was ready to launch tomorrow but this wasn’t there, would I delay launching to add this in?”
- Make sure you understand what your users really want – particularly if your users are customers outside your organisation.
o Note that what they actually want might not be the same as what they say they want – if possible get some hard data from tracking usage or watching how they work.
o And try to avoid “design by committee” – understanding a variety of viewpoints is valuable, but ultimately just one or two people should be responsible for pulling things together in a coherent way.
It would be nice to live in a world where all projects could be approached footloose and fancy-free, but sometimes it pays to be cautious to give your project the best chance of being a success;
- Allow some slack in your timelines and budgets. Things often change over the course of the project and giving yourself some extra room for these changes gives your project a greater chance of success.
- Try and favour incremental approaches wherever you can. Releasing partial solutions early so that users have a chance to test them and give feedback, gives you a chance to create the best solution possible.
- If you’re replacing a system it can also be useful to have a period during which the old and the new system are running at the same time. This can help flag up any tiny details you may have missed and it also gives people a chance to transition.
- If you’re doing a big marketing launch, plan to run the system for a short while before making any announcements so that it’s been tested by real users.
Work with your developers
When it comes down to it, it’s your developers who are going to be responsible for the delivery of a successful project. Involving your developers from the early stages is important;
- Whether it’s in-house or third party you should consider getting some expert help define your requirements. Your developers will be able to help you identify the things which really matter and eliminate risks early on in the process.
- Get some help with design and UX and don’t leave it until last. The quality of the visual design and ease of use can have a massive impact on user engagement when you launch. You might want to consider commissioning user workshops with a UX professional to map out the most engaging journey.
- If you’re inviting proposals you’ll get much more satisfying results if you help the developers to do a good job. Give them as much relevant information to work with as possible and tell then what matters to you most, so that they can focus on it when responding.
- Stay engaged once your project starts. The best results come from projects where there’s a constant flow of ideas and discussion over the course of the project between developers and customers/product owners.