How I Plan My Software Projects

Visakh Vijayan
3 min readMar 17, 2024

I love the feeling of starting a new project. You have so many ideas here and there and you can’t wait to start working on them. But if it isn’t done in an organized way, you end up losing motivation and sooner or later, you end your future startup.

Below are some things that have helped me over the years. Today, when I start a new project, here is what I do —

  1. Brainstorm by setting up a call with the team members. Once everyone is convinced that we should do it, we kick off. The reason is simple. Your idea might be stupid! Only your brothers can call that out.
  2. I decide on the appropriate tech stack to use for the project. This includes the backend, frontend, media servers, CDNs, deployments, etc. I am in love with the MERN stack.
  3. I clone the appropriate boilerplate which has all the basic requirements of step 1. You can find more details here. This is also the part where you send out invites to collaborators.
  4. The next step is to set up JIRA for planning the sprint cycles. I use the Kanban board which is good for iterative development.
  5. In JIRA, I open Confluence and start writing my documentation. There are two main ones — the PRD (The specifications document) and the Engineering document (The crux of what we are going to build).
  6. I pour my heart out into the Engineering document and make it as detailed as possible. This way, even if I lose motivation I can read the Engineering document and be re-motivated.
  7. The Engineering document is not a one-day job. I invest around a week into writing it so that I fall into the habit of working on the project. Once done, I send them in for review with my collaborators. This again is an iterative process that includes taking reviews, re-working them, and finally making peace.
  8. The sprints are then planned into stories, tasks, subtasks, etc on JIRA. Estimates are put in. Deadlines are locked and task assignments are done.
  9. Then comes the favorite part. The coding starts. For hobby projects, I make sure we keep the tasks as easy as possible so that we can quickly complete them and get an immediate satisfaction of achieving something.
  10. We make sure to call out if someone needs to catch up because laziness is a curse in the software development feel. It takes a lot of work to keep yourself motivated. So everyone chips in to encourage each other. This is usually via daily catchups, competitor analysis, or maybe just a beer, etc.
  11. And last but not least, we celebrate. Because our end goal is not to finish the product but to be a part of building it. Product development is a continuous process and we make sure we are happy throughout the process.

Please feel free to add more ideas to this. The fun should never stop in engineering. Happy coding!

--

--

Visakh Vijayan

Techie from Kerala, India. Days are for coding, nights for weaving tales of tech, travel, and finance. Join me in exploring this multifaceted journey