DEV Community

How do you plan a personal project?🧭

DesirΓ© πŸ‘©β€πŸŽ“πŸ‘©β€πŸ« on December 12, 2019

Hello, users! I'd like to start planning a project where design, programming, researching and a lot of writing will be required. However, I feel a...
Collapse
 
atrandafir profile image
Alexandru Trandafir

I think yours is not an easy question, at least that's my opinnion, and it is because I guess it depends on the circumstances (type of project, individual background, alone or team, etc) because you can work on a project in many ways and unless you always work on the same kind of projects, at least for me, I find myself doing things in different ways depending on the project.

Then, in terms of personal project, I think it brings more "issues" for some people, as you already know I'm trying to build a product of my own. And building a product that is ment to be a business and even innovative, should have a little bit different approach because it might be good at the same time as you build the product, to also engage your possible user base and involve them into the process, take care of some marketing, etc.

But... if we're to take an easier example, like, this client comes to you and they tell you they want to build this web application.

Then I kind of go like this:

  • Meet client and take initial notes to understand what it is and how it works, and who will use it
  • Based on notes, try to make sketch on a sheet of paper with a simple diagram of the entire application (I also use Mindmup, or even simple list in a document, but putting it more visual sometimes is better for general view)
  • Also transfer those notes into a document with "additional/detailed specifications", because for example "how many fields does the signup form have" doesn't matter for the diagram, but it will matter later
  • In that same document, sometimes I write details about all the screens or functionalities, but not always, depending if I see it necessary (some features are easy to represent on a sketch, while others need specific indications written down)
  • Now in the middle of everything, before building or during, I also use to do some research and adjust all the material I create based on it
  • Now I sketch on a single sheet or on may (depending on size of project), all the screens & workflows (this time a little bit more detailed than the initial diagram, but not going crazy over it)
  • Now I can move to design, and in this step I either create very detailed sketches of the screens and develop that with some CSS framework as Bootstrap, or I really take time and do some pretty design in Figma if the project scope allows it

Then in terms of planning / tracking tasks to do I usually think of it like this:

  • What is the end goal?
    • Answer: This should be a web application on a server used by real people
  • Which are all the steps that must be done?
    • Answer: Develop this, develop that, I put everything on a list and organize it by what makes sense

Then how do I proceed with the tasks list? It can be many ways, or a mix of them

  • A) I can just use all the sheets of sketches and use a marker to highlight the "items" done (developed)
  • B) I can put everything on a Word document in a simple tree, and highlight there the items done
  • C) I can move this to Trello and organize it there

For me option A or B is the fastes, or mixing both. But then Trello can provide more space for tracking of individual tasks.

Of course, every time I finish something, I might push it to a test server, I might get feedback from client, adjust it, test it myself, etc. (I usually test everything myself and push finished features).

So fastest way:

  • Sketch something on a sheet, or multiple sheets of paper, and just develop it and highlight the stuff as you build it, and from there, put a mix of the rest of the tools as you find the need or by your taste
Collapse
 
zoltanhalasz profile image
Zoltan Halasz

My current side projects are jquery libraries that I need or might need in the near future. I am working on a .net core razor project and I try to find suitable javascript libraries that can be used in business such as chart.js and data tables.js. I learn their basics and in order to keep the knowledge, I prepare small tutorials how to use them. I just do this beside my main work project and from time to time I publish some of these tutorials. I consider a side project everything that will move me forward, such as learning new technologies or tools, anything that breaks the monotony of my main projects.

Collapse
 
mrb101 profile image
Basel J. Hamadeh

Create a Trello board and start working. Add cards as you go. Don't create a complex workflow. Just use it as a to-do list. Add new ideas to open column. When you working on something move it to in progress and when you it's done move it to done.
The moment you start adding complex workflows. Most of the the time will be wasted on maintaining the workflow.
If you feel Trello is too much. Then a check list will do the job.

Collapse
 
weigrand profile image
22Infinite

My suggestion is to stop planning and try to do it right now. When you start your projects, you must encounter some specific problems. Then when you manage to solve those problems, you will absolutely have the clear direction for what you need and what you should learn about.😊

Collapse
 
furtivusmaj profile image
Ahmed Mej • Edited

My last side project dealt with a lot of data, so I couldn't apply my noob approach of "code first, questions later". Instead, I moved to a trello board and it was way less hectic and more efficient. I think that Trello, coupled with a sketch/diagram tool, is enough for personal projects.

Collapse
 
helleworld_ profile image
DesirΓ© πŸ‘©β€πŸŽ“πŸ‘©β€πŸ«

Nice!

We all leave the 'code first, questions later' approach when a big project hits in πŸ˜†

Collapse
 
sfiquet profile image
Sylvie Fiquet

When I start a new project I create a new Trello board with an Inbox list where I create cards for all the to-dos I can think of.

I usually add a few more lists: Next, In Progress and Done so I can move cards from one to the other as I work until all the important bits are done.

I add coloured labels to my cards. The labels depend on the project but there's usually 'priority:top', 'priority:medium' and 'priority:low' with appropriate colours (I use red/yellow/blue).

When a task needs to be split into smaller tasks, I'll create a checklist in the card if it's simple or just create new cards for subtasks.

When the task needs some research or reflexion, I switch to Evernote to write down a description of the problem and the various directions I can explore. Then I research and write down what I learned. It helps me decide how to solve the problem and it documents why I chose that solution (useful when you come back to it six months later).

If I am stuck I find that writing down the questions I have helps me get unstuck.

Collapse
 
cmmata profile image
Carles Mata

I think you shouldn't overplan like other people say in comments and spend more time actually doing than planning.

I normally start by writing my "future project" ideas in a note (I use G Keep, but any other is valid). Then when I want to start a new project, I pick the most suitable one (by priority, estimated time, how much I would enjoy doing it, ...) and write a basic plan. Just phase titles like "Think about features", "Design" and "Development". And only start thinking about tasks when I'm on that phase, not in the beginning. Finally, the project starts and I write in notes / project management app some initial tasks, and I add the rest as they come. If it's a development project, I usually use Gitlab to host my repository and to write down all the features / bugs. If it's more like a personal project, I usually use digital notes to keep it simple.

And by the way, I don't think you should schedule all the project because things happen, and you don't always have as much free time as you would like, and the deadlines are rarely accomplished. But I strongly recommend you to schedule some amounts of time per week to work on that project, like every Tuesday and Thursday from 8pm to 10pm.

Also, if it's a website, an app or something about software remember to have other people to test it so you can get other perspectives different than yours.