This is how we do it - Our Development Process
When a client approaches us to build an app or a website, they will usually have an idea of how it will perform and the functionality required. They may have a written process of how the user will move through the app to complete a task or they may just have a vague idea of how they think it should work. It then falls to us to ascertain exactly what the client is asking for and how we can sculpt the idea into a real-world product. We use the following process to ensure a smooth transition from idea to code.
The first step is to work out exactly what the client needs to make their idea work for their users. Often clients will come along with a whizzbang idea and a list of functionality as long as your arm. Some of this functionality is often inspired by bigger sites completely outside the industry or demographic target that the client is aiming for. It's our job to ask the right questions to really nail down what the client's users are going to need. This ensures that not only will the user not be bombarded with functionality they're not going to use but that the client will only be paying for what's needed.
Development, especially in terms of web applications, often revolves around abstracting a real-world object or concept into a model, which is then used to move data around to help the user complete a task. This is a crucial step as it sets the structure for the entire app! Therefore, the next step in our development process involves figuring out how the different elements should best be represented and how they will be related. We aim for the fewest number of models while still maintaining the functionality needed, for the simple reason that the less abstraction there is the less code there is to maintain! New models can be added as the functionality increases but we always begin with the Minimum Viable Product (MVP) to ensure the project is progressing in the right direction.
You'll notice we're all this way into the process and we haven't mentioned the build technology yet! It's a common misconception that a project starts with the platform it's going to be built on and goes from there. Here at FloDesign we work out what the project entails and then pick the platform that fits best. Choices range from an open-source, off-the-shelf system, which can be tweaked and changed to suit the project, to a fully bespoke build for more complex apps. When we select tech it has to provide the best fit for the project, as well as being scalable for when or if we expand the functionality.
Prototyping and iteration
Next we start with prototyping. We like to get into code as soon as possible to allow the client to have a play and see the direction the project is going in. Iterative development allows us to produce in sprints, test and deploy to the client quickly, which means that any changes in direction can be accommodated early on.
Our work doesn't stop once the project is live. While we aim to get the best fit for the project's users, it's not always easy to know exactly what they want. We work with the client, post launch, to analyse collected data and design new features or content.
tl;dr: Start small so you don't waste time & money, analyse, iterate, improve.