Hey everyone! I'm currently working on a personal project that I'm really excited about. I've developed a solid idea and grasped what it'll take to build it, but I've never actually gone through the whole process of designing and implementing an idea from scratch. In my previous job, I encountered design documentation and architecture, but I never wrote them myself; I mainly saw them used for features in existing products.
I'm feeling confident about my concept and its features, but I'm struggling with when to stop the design phase. How do I determine if I'm over-designing? What's considered too little in terms of design? I'd love to hear your thoughts on when to make the leap to coding. Also, if you have any great resources like books or websites, I'd appreciate it! I'm enthusiastic about my idea, and I want to avoid getting stuck in the design stage without moving into actual development. Thanks!
4 Answers
Look into concepts like 'structured programming' and 'minimum viable product.' The amount of design you do really depends on the timeframe you have and how maintainable it will be. It's wise to implement features in phases and continue to add over time. And seriously, don’t skip the documentation; it'll save you in the long run!
Everyone's process is different, but I find it beneficial to start with minimal functional code and iterate from there. Just enough design to figure out what you'll need for components. Learning to write loosely coupled code really helps as you can create parts independently and integrate them later.
Absolutely! I've done a few projects where I got the basics down but then didn’t build them out fully. I've been thinking about microservices principles from my last job—definitely exploring those other architectures you mentioned.
In corporate settings, the waterfall method often gets idealized as a resource saver, but in practice, it rarely works that way. The iterative method is likely what would work best for you. Build something you think you need, step back to critique it, then refine. You might need to rewrite parts, but that's totally fine!
I totally agree. The waterfall approach is often overrated. I think working Agile has exposed the need for balance between final design and implementation. I want to avoid burning out again like I've done with past projects, especially since I'm really passionate about this one.
A good approach is to ensure you have a basic idea of how each component will interact while you build. For a personal project, you’re already in a great spot because part of the learning process is to try things out as you go. Don't overthink the design; just get started and learn from your experiences as you build it! Have fun with it!
Thanks for the encouragement! I'm aiming for something that could ideally attract customers, so it's a balancing act between speed and design. But I agree, I’ll learn a lot along the way!
Haha, I hear you! Documentation was drilled into me at my last job. I'll make sure to keep it in mind.