Use this guide when you have an idea for an app or website and are tempted to start coding straight away. Have paper or a notes document, and ideally someone who might use the app to talk to.
Step by step
Describe the problem and users
Write one or two sentences on the problem the app solves and who has it. List the types of users, such as customer and admin. For each, note what they want to achieve.
Write the main user tasks
List the key tasks in plain language, such as a customer books a slot or an admin sees today's bookings. Keep only the tasks that are essential for a first version. Move nice-to-have ideas to a later list.
Sketch the screens
Draw rough boxes for each screen and what appears on it, such as lists, buttons and forms. Draw arrows showing how users move between screens. Paper sketches are enough and are quick to change.
Define the data
List the things the app needs to store, such as users, bookings and services, and the fields for each. Note how they relate, for example one customer has many bookings. Mark any personal data you must protect.
Choose simple tools
Pick a language, framework and hosting option you know or that has good beginner guides. Decide how users will log in, if needed, and where data will be stored. Simple, well-documented choices save time.
Plan a first version and milestones
Break the first version into small milestones, such as show a list, add a form, save data. Finish and test each one before starting the next. Use your plan as context when asking AI to help write the code.
Ready-to-use checklist
- Problem statement written
- User types listed
- Essential tasks for first version
- Later ideas moved to separate list
- Screen sketches with navigation
- Data items and fields listed
- Personal data identified
- Milestones broken down
Practical tips
- Show your screen sketches to a possible user before coding, as changing paper is much cheaper than changing code.
- If you store personal data, read the ICO's guidance on data protection before launch.
- Keep your plan in the project folder so you and any AI assistant can refer to it as you build.
Common problems
My first version keeps growing and never gets finished.
Go back to your essential task list and move everything else to the later list. Set a date for a first working version and cut features to meet it.
I do not know which technology to choose.
Pick the option with the best beginner documentation and an active community, even if it is not the newest. You can change tools later once the idea is proven.
I started coding and realised the data structure is wrong.
Stop and update your data plan on paper first. Then change the code in small steps, using Git so you can go back if needed.