DEV Community

mshwf
mshwf

Posted on

How to begin a project with just an idea

Hi, I have an idea of an application, I'm excited about it, I'm a junior, I'm good with my stack so I have no technical problems, the problem is, how do I start, and from where, how to collect my ideas to form a solid shape of a project. I feel if I started writing down all the details, it'd be time consuming and distract me.
so is there methodologies (for programmers) to learn how to organize a new project, to keep it interesting and maintained?

Oldest comments (34)

Collapse
 
dmfay profile image
Dian Fay • Edited

You could use what are called "user stories" to generate a list of things that need to happen to bring it to life without having to nail every single thing down beforehand. Think of a statement "As a <role> I want to <action>" which applies to your idea. Add it to an issue tracker like trello or just write it down if you don't want to set up infrastructure just yet. Build up enough of those that you can get going. Add more as they occur to you. If it becomes more than a side project and you start working on it with other people look into agile methodologies such as eXtreme Programming (XP) and Scrum and adapt as necessary.

Collapse
 
mshwf profile image
mshwf

Thanks for these valuable tips, very helpful to start a project without distraction

Collapse
 
tuxbsd profile image
Josh Stephens

Epics and User stories are two topics I feel I am weak with. Really need to spend more time learning about them. I tend to just grab a note book and start jotting everything down from class structure to database tables. Then I quickly become overwhelmed. Going to start trying this out. Hopefully I will get more projects done.

Collapse
 
marconicolodi profile image
Marco Nicolodi • Edited

Nice answer. I also recommend Lean startup techniques to validade If users would buy your product and the lean inception agile technique to really get to know your product, what it does best, how is it different from the competition, and how to choose tasks and prioritize them. The point being: don't build it before you validade that users are willing to pay for it

Collapse
 
moopet profile image
Ben Sinclair

Caveat: this is only relevant for the sorts of projects where you want to sell the end result.

Collapse
 
naeprobs profile image
Alasdair

Start with a very simple domain model as a strawman to help you understand and iron out the first complexities of the problem you are trying to solve. If you can explain the structure of the idea it will make it much easier. Then as Dian says start to break that model down using user stories or feature lists. This will help take that domain model to the next level.

Once you have that in place, focus on the problems that don't have easy answers. This should be obvious now that you have a model in place as they will be the parts you are struggling to describe. If you sort these first you won't get caught at the end with an unfixable problem :-)

Hope that helps...

Collapse
 
mshwf profile image
mshwf • Edited

Thanks, this will help me begin the project without distraction.

Collapse
 
quii profile image
Chris James

Dont get hung up on the details right now. Get a prototype done as embrace the mantra of "perfect is the enemy of good". You will learn more by actually shipping something, even if it is very flaky.

Collapse
 
mshwf profile image
mshwf

Thanks Chris!

Collapse
 
isaacdlyman profile image
Isaac Lyman

This is how I do it. There's no substitute for excitement, so during the initial excitement about the project it's good to quick-code a whole bunch of stuff that you can refine later.

Collapse
 
nicolrx profile image
nico_lrx • Edited

I usually start building the core feature without even thinking about the whole app with user authentification etc.

Once the core feature works, I quickly design a landing page and the few screens I need to allow users use the core feature (I use Sketch for this). Then, I create a Rails app (you can pick up the stack you prefer here) and build the app according to my sketch design.

My philosophy is to launch as quickly as possible the first version of your app. Then, you can iterate and talk to your first users in order to make it better.

Collapse
 
mshwf profile image
mshwf

I'm fan of this philosophy too 👋. Thanks!

Collapse
 
laszlolm profile image
Laszlo L Mari

I always start sketching and building the UI. It becomes more and more clear what needs to be done on the backend to support that UI with the required db and other code.
The most important thing is to not get hung up on details in the UI dev like shadows or background colors. Also things like profile pictures, I usually just put placehold.it there.

Good luck with building your app!

Collapse
 
mshwf profile image
mshwf

Thanks, I like this idea!

Collapse
 
mshwf profile image
mshwf

Thanks all for the great tips, really appreciated and helpful!

Collapse
 
sophiedebenedetto profile image
Sophie DeBenedetto

The best advice I could give is to start small!! We all know that you have the most amazing idea that will allow users to launch themselves on a rocket into space (or whatever) but before you can build a rocket ship you have to build a skateboard. Try to identify what your "minimum viable product" is--the simplest version of what you ultimately want to build. Keep a separate list of features that you want to add, and your product will grow organically over time. But start by focusing on one thing! After all, it doesn't help you to have an app that users can almost log in to and almost invite their friends to use and almost etc. It does help to have an app that does one thing really well, and grow it from there.

Collapse
 
nestedsoftware profile image
Nested Software • Edited

This! I find that it’s easy for me to get overwhelmed trying to do too much at once. Simplifying helps a lot. Sketch out one feature. Implement that one feature. Rinse, repeat. :)

Collapse
 
effendiian profile image
Ian Effendi

This answer definitely resonated with me; sometimes you just need someone to put the words in the right order. Thank you.

Collapse
 
luispa profile image
LuisPa

@ think about the flow of your idea (quick and general)

@ draw it! (Don’t think about the details yet)

@ start build the ui.

@ keep track of the activities that you do, and the pending things.

@ create a prototype. And another but better, and another but better... and so on, you get it :)

Collapse
 
moniuch profile image
moniuch

Assuming that my idea is too complex to be solved just by myself, and I would need to gather a group of other people in order to even start, I would be interested to hear how I can protect my odea from being stolen and taken to some other more powerful company. NDA? PoC? It is not only about how we start but how we start wisely.

Collapse
 
ikemkrueger profile image
Ikem Krueger

How can I protect my idea from being stolen?

That question is a good candidate for #discuss.

Collapse
 
allanjeremy profile image
Allan N Jeremy

I was actually going to write this.

Collapse
 
allanjeremy profile image
Allan N Jeremy

dev.to/allanjeremy/but-what-if-the...

Feel free to join in the discussion

Collapse
 
nashpl profile image
Krzysztof Buczynski

I usualy carry a notebook with me. I write all ideas i have for my projects. Don't make this hard and something that you have to do. Make it a game, plesure something fun to do