I've recently been asked by a couple of potential clients about doing some test development for them on apps, prototyping as a first stage to a more involved project. So what is prototyping and what are the benefits?
Put simply prototyping is all about creating a quick proof of concept and is a very useful tool, not just for app development. Think of it like an artist doing preliminary sketches before producing an actual piece. They'll sketch to refine their idea, see what works and what doesn't, how the composition hangs together and try different ideas out. That's prototyping in a nutshell.
It's very effective in helping to both prove an idea and to aid in the final brief production, and it's all about doing that quickly. With prototyping you can speedily prove a game mechanic, an interface or an interactive flow without investing huge amounts of time and money. Sometimes it exposes weaknesses in an idea that you can only really identify by creating something solid to play with, and many times it acts as a trigger for other ideas.
There's another use of prototyping as well - creating the workflow. This is especially useful if the developer is being provided with app-ready artwork from a designer they haven't worked with before. The developer can provide advice on what's needed, how artwork should be structured and how it should be supplied, and the designer can then see how that translates into reality in the app. Any kinks in the workflow can then be ironed out before production starts in earnest.
As a client looking to hire a developer to produce an app, there's a further benefit to prototyping - it gives them, and the developer, a chance to test the waters for a potentially more involved working relationship. This can be very beneficial for both parties. It allows the client to see if they are comfortable working with the developer and that they can produce what they say they can, and it helps the developer to build an idea of how the client works and what their relative level of knowledge is, which can be invaluable later in the project.
The key with a prototype is to decide exactly what you want to achieve with it. Testing a simple game mechanic, for instance, can be produced very quickly and often it can be done with simple placeholder graphics (this is a common method used during full development as well in lieu of the artwork being ready). You're generally looking to produce something quickly with a prototype, and depending on the scope, this would normally be between a couple of days to a week maximum. If you spend too long proving the idea it ceases to be cost effective and efficient. You're not looking to create something finished and polished, you're just looking to get the basics in place to enable the idea to be expanded or refined.
And it's often not wasted production either. Code from the prototype could be refactored for use in the app's production phase and game logic, as an example, is a good case in point. This could be re-used as the starting point during final production. It can often enable the production to get off to a flying start.
Prototyping is a very useful step to go through especially if an idea isn't fully fleshed out, and it's something that I'm more than happy to engage in. Most app projects are a fairly large undertaking in terms of time and cost so it makes sense to do everything possible to make sure the idea is solid before plunging into full development.