You have the greatest idea ever, it is going to be a huge hit, the stars are all aligned so now it is time to jump in and start developing it. Whether it is a small website, a huge e-commerce webshop or the next mobile app to conquer the app store there are some repeating patterns we often see and some mistakes we are also guilty of so we have collected 7 tips that helped us improving on budgeting, resource management and also estimating development times.
Our 7 essential product design tips
Have a clear scope and goal set before you start
This might seem pretty obvious but crystalizing the end result you want to see is essential in having a successful software project. Ideas evolve, new features and functions pop-up, especially if it is a new product from a startup. This isn’t necessarily a source of a problem as long as it doesn’t make the entire release of the project a moving target. We always try to get all the stakeholders together and listen to their high-level description of the goals carefully. The time spent at this stage with preparation and setting up realistic expectations can save an enormous amount of precious development time that we can spend later on adding some extra bells and whistles.
Do your research!
Doing a comprehensive research is the first step once the idea and the goals are set. Interview potential future users, listen carefully to their input, look into competitors, try out their solutions and get some of their power users involved. This not only helps in creating a useful product but also helps in creating a product that is easy to get started with and reduces the learning curve required for the users which ultimately leads to a more successful release on the market.
Calculate with iterations
Even with the most careful preparation steps, your chances that it will be perfect for the first time are pretty low. A bit of trial and error are a natural part of the process, things that made perfect sense in theory or on the drawing board, might become cumbersome or difficult to use once clickable and are there to interact with. In our experience, it is usually the 3rd or 4th iteration that makes it into the final product at the end. Make sure to calculate with this and leave a 10-20% buffer to make room for such adjustments.
Get everyone on-board
It is really important to get all the stakeholders aligned but we found it equally important to have the team together during certain discussions. We saw quite a few examples where a certain function looked stunning on paper but developing it on the given platform would have required a complete revamp of the entire existing codebase or features that required one-tenth of the development efforts with one slight adjustment in the design. Spotting these as early as possible can save an extreme amount of time and headache. It also helps with avoiding trivial mistakes and running into dead ends. I am not even mentioning that it helps with preparing the team mentally for all the challenges that are ahead of them.
Keep meetings short and focused
I like meetings but I hate meetings and I am pretty sure that I am not alone with this. Slow, distracted, scattered, absolutely ineffective and they take away a significant chunk from the time you could have spent with actual work. However, meetings can also be useful and utterly effective with the right mindset and style applied. We limit our decision making meetings to 30 mins, we send out an email with all the necessary information required to everyone, we list all the questions that we want to cover and also often have some potential answers already listed to pick from. Also, these meetings always have a team member dedicated to lead the discussion. This worked out wonderfully for us, it could streamline our decision making process and also has a side benefit, inviting people to participate in meetings (see point 4.) faces with much less resistance.
Share your progress
We have a distributed team so people often work remotely which makes communication a really important topic for us. This gets multiplied when working with clients, external teams and multiple departments involved. We have Slack channels dedicated to projects and also shared channels where pretty much everyone is available. We developed the habit of closing our day by listing all the things that were done that day and also a short progress update on all the things that are currently on the table. This keeps everyone in the flow, reduces the number of questions floating around and overall gives a better feeling of moving ahead and making progress together as a team.
Learn when to let it go!
We are perfectionists and we always find something to tinker with, it is never quite ready, it can always be improved upon. However, when testing with one of our own products we quickly found that with 4-5x times more resources and hours spent we could only improve 12% to max 15% on the end result. This means that there is an optimum, there is a time when you should draw a hard line and say, it is ready, it should go live. Due to the nature of our modern days, there will be a second version, a next iteration anyways and this ties back nicely to our first point. If you have the goals correctly set, you can clearly see when they are met and when it is time to say that the tweaking is over, everything that comes after it will make it to the next release.
For more tips, hands-on experience or just an easy chat about the nature of projects feel free to get in touch with us.