How Do You Start A New Project?

twitter logo github logo Updated on ・1 min read

When you have a new project idea or are tasked with developing a new project, it is fundamentally important that it has been properly planned and scoped.

How do you go from getting the idea, to begin developing? Do you create user stories, create documents, use task management applications like Trello?

Discuss.

twitter logo DISCUSS (3)
markdown guide
 

I'm going to add my two-cents on this.

I use trello or a simple markdown file to write down all the stuff I do before starting a new project.

  1. I compile a features list of my project. I look at similar projects (if they exist) and decide on what features I'm going to give in version 1. I also decide some features for version 2.
    For example: For a music player app, the basic functionality + playlist feature should be enough for a version 1. Adding lyrics support via 3rd party sdk can be done in version 2 or 1.1.

  2. Find the right tech stack for the project. Does it involve scraping a website? IMO you should choose python. You can also look at this in this way that you are deciding libraries and frameworks that would provide the required implementations for your features. (Maybe you will use Room in android to save data or maybe Realm).

  3. Make an architecture design with models, interfaces, implementations, classes and stuff on paper. Review it to find corner cases. Usually this involves making a flow to possible user-actions and deciding functions and variables present in any component. I think this is equivalent to making user stories. These stories should correspond to the features you decided in the first step.

  4. Last step is coding it all.

 
Classic DEV Post from May 11

Handling Array Duplicates Can Be Tricky

Handling Array Duplicates Can Be Tricky

George Hanson profile image
I'm a full stack web developer based in the United Kingdom. I'm usually writing a lot of PHP or JavaScript 🛠️

Read more long-form software content.

Sign up (for free)

Become a better software developer.