How do you plan your project?

Started by
17 comments, last by Amr0 8 years, 5 months ago

I'm talking about personal / small-team project planning. For most projects, some soft of project planning is important. Project scheduling is also important, but usually more so for big teams / companies than small teams or lone garage developers. Often the two are integrated together. For a lot of people, project planning is just keeping a to-do list. Even more people just feel they know what needs to be done and just focus on working on what they feel needs to be worked on. Some people go for a to-do list with some extra functionality through software.

Describe how you keep track of tasks to finish and finished tasks, project scheduling (if any), what annoyances with your current approach, things you think would enhance it, how you share it with people (in case you do)... etc. Also, if you do keep a live project plan online, share the link here if you don't mind.

For consideration, following is a short list of software one can use for this that I've briefly researched in the last couple of days.

  • workflowy is basically a to-do list with drag-drop, tagging, and sharing (so that you don't have to maintain a separate change log) added in.
  • Trello is more complex. It's a to-do list with project scheduling and task assigning to members, with commenting and communication functionality. A trello board (basically project plan) can be made available for public viewing. I think it can be overkill for a small project for a single person, but maybe this can be said about anything except the last point in the list.
  • Evernote note. One can create a note with a simple bullet list and then share a link to the note on the project website for example. It supports lists with checkboxes, and also evernote works offline if you have the client. Signing up only for this particular use case can be overkill as well I think.
  • Notepad + text file in your project directory. Simple, quick, works offline, and can be placed right inside your project directory. Can even be made available online if placed in a cloud-synced directory. Unfortunately, working with the project plan can be daunting for anything but a simple 10-item list.

Personally I'm finding that having to go online to update the project plan on a daily basis (multiple times per day possibly) can be distracting.

Advertisement

Even more people just feel they know what needs to be done and just focus on working on what they feel needs to be worked on. Some people go for a to-do list with some extra functionality through software.

I'm one of those people. I Write my todo-s directly in code, something like this
// [TODO] Implement "bla"

and everyday i start with Ctrl+Shift+F for "[TODO]"

TODO:'s in code are my reminders for what I need to work on the next time I get to the computer, such as implementation details I've skipped because I needed to get other code down while it was still in my head.

Otherwise, I keep a note in my phone where I write specific things to work on - not big picture ideas. For example, I would write "Handle Box to Box collisions in CollisionSystem.cs", not "collision detection". Some times I'll have twenty small tasks written out on my phone, and they are loosely ordered by their importance. Having it on my phone is great because it's always with me so I can add to it at anytime.

The problem I've found with organizing tasks on the macro level is that it seems to point towards an often impractical coding process. If I say that at a certain point in a project I need to implement collision detection, and then I try and handle a bunch of collision cases that I don't need immediately in the project, I end up doing a lot of coding with few results on screen and if the results aren't being used on screen then they aren't being tested throughout the design process and will probably be broken by other changes later on anyways. Instead, if I only have box shaped objects in game at the moment, all I'm going to handle are those collisions - circles don't exist yet so they can't collide.

This is just my process however, some people's brains work well with the macro level planning, of course.

Spreadsheets.

Spreadsheets to help prioritize, move rows up and down.

Spreadsheets with dates and deadlines and future plans.

Spreadsheets with dates and completed milestones and past events.

A big list of features and goals. Everything above the black line is finished. Everything below the red line is not yet committed. Everything between the black and red line is currently being worked on.

Maybe you find this interesting: http://www.gamedev.net/topic/672170-hacknplan-a-planning-tool-for-gamedev-launches-an-open-beta/

Maybe you find this interesting: http://www.gamedev.net/topic/672170-hacknplan-a-planning-tool-for-gamedev-launches-an-open-beta/


Which has been moved to Your Announcements, where announcements belong.

-- Tom Sloper -- sloperama.com

Trello. Love it! I use agile and make sprint lists, bug lists and backlog list. Move from backlog to sprint # and do those things for the week (or 2 weeks).

For personal projects, I only keep a TODO file on the project folder. Inside this TODO file is a list of features I would like to implement. The purpose of this file however is not to serve as a ticket-tracking like JIRA but a reminder for my future self. Personal projects tend to suffer from drag with no specific deadlines, due to personal circumstances, changes in your life, etc.

If I am in the middle of implementing something, I will finish that feature even that cost me some sleep hours. I don't want to be staring at my code 10 weeks later with my code half working and forgetting what I was doing.

For this reason, a full-featured ticket tracking like JIRA or anything else feels a little over the top for personal projects.

Well I have two approaches to this.

Firstly with my projects at home, e.g. game projects I plan by writing down lists on paper. There's something relaxing about having a hard copy of your todo list that you can cross out when you complete tasks. This only works because my game projects tend to be things I work on alone.

In my day job I use jira to prioritise tasks for a small team of three developers on a large codebase. Tickets are logged and priorities set, then it ties in with stash to create the relevant branches in git for code.

If needed we sometimes use gantt charts to show our schedule as this gives an easy visualisation of the schedule that upper management can understand...

I use Pivotal Tracker. Then a notebook on the side for minor things as i work.

@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube

This topic is closed to new replies.

Advertisement