What You Need to Define Before You Start Coding (And What You Don't)
Tired of Having a Pile of Abandoned Projects? Getting Lost in Unnecessary Details?

Starting a new project is exciting, but if you jump into coding without the right foundation, you can quickly get stuck, rewrite code endlessly, or abandon the project altogether.
Conversely, over-planning can lead to analysis paralysis, where nothing gets built.
This article breaks down what you actually need to define before you start coding and what you can figure out later. The goal is to help you move fast while avoiding major roadblocks.
“The secret of getting ahead is getting started. The secret of getting started is breaking your complex overwhelming tasks into small manageable tasks, and then starting on the first one.” — Mark Twain
What You Absolutely Need to Define Before Coding
1. The Problem You’re Solving
Before touching a single line of code, you need crystal clarity on why you’re building this project. Ask yourself:
- What specific problem does this solve?
- Who will use it, and what is their main pain point?
- Is this problem actually worth solving? (Validate before coding!)
Example: “A doctor spends too much time manually transcribing patient notes. My app will automate this with AI-powered transcription.”
2. Jobs to Be Done (Core Use Cases)
Define what the user will actually do in your app. You don’t need a detailed spec yet, but you must know the core workflows. Ask yourself:
- What will users use the app for, step by step?
- What actions must they take to get value from it?
Example: A doctor needs to:
Upload an audio recording of a patient visit.
Get an AI-generated transcript.
Edit and save the final version.
3. Page Structure (Basic Wireframes)
You don’t need a full UI design yet, but you must outline:
- What pages will your app have?
- What each page’s purpose is.
- What actions are possible on each page?
Example:
- Dashboard Page (Shows recent transcriptions)
- Upload Page (User uploads audio files)
- Settings Page (Billing, integrations)
Creating simple wireframes (even hand-drawn) prevents you from coding blindly.
4. User Interactions & UX Decisions
Thinking through how users interact with your app will save you from massive refactors later. Ask:
- What actions can users take? (Upload files, delete records, filter data?)
- Do you need confirmation dialogues for destructive actions?
- How will errors be handled?
Example: If a doctor deletes a transcript by mistake, is there an undo option?
5. Technical Feasibility Check
Before coding, verify that your idea is actually buildable with available tech.
- Are APIs or AI models available for key functionality?
- Can your chosen database efficiently handle expected data structures?
- Any scalability concerns?
Example: If your app relies on AI, test an API like OpenAI’s Whisper before committing to the whole project.
What You Don’t Need Before Coding
- Colour scheme
- Font choice
- Copy
- Tech stack details (auth, framework, database choice, etc.)
- Full-fledged design
- Media assets
- Go-to-market plan
- Pricing strategy
- Detailed target audience segmentation
- Multi-lingual support
How to Execute Without Getting Stuck
1. Timebox Your Decisions
If you get stuck deciding on UI, structure, or tech, set a timer for 10 minutes and make a decision.
2. Force Small Wins
If you struggle with long projects, break them into tiny deliverables you can finish in one sitting. Each win builds momentum
3. Don’t Start Unless You Can Finish
If you start coding a new project, push until it’s at least usable before switching to something else.
Final Thoughts
If you’ve ever started a project and abandoned it halfway, chances are you didn’t define the right things before coding.
The key is to plan just enough so you don’t get lost but not so much that you never start.
Focus on defining the problem, core use cases, page structure, UX, and technical feasibility. Leave everything else for later.
Thanks,
Matija