Sign in to follow this  
Amr0

How do you plan your project?

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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]"

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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... 

Share this post


Link to post
Share on other sites


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.

 

And highly motivating!

 

We use Trello. We just don't over-architecture our Trello and keep it simple.

Share this post


Link to post
Share on other sites

 


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.
 

 

And highly motivating!

 

We use Trello. We just don't over-architecture our Trello and keep it simple.

 

 

Do you mind sharing a link to your Trello board?

Share this post


Link to post
Share on other sites


Do you mind sharing a link to your Trello board?

 

A quick check returned that the only project that would be in a share-able state is actually too sensitive to share given the nature of the project, therefore, I will not. 

Share this post


Link to post
Share on other sites

Paper! Yes I know, I am so hopelessly last millenium. But a notebook made from ordinary paper works wonders.

 

Not so much for the implementation phase, but the "assign to..." functionality in bug trackers works wonders, too (if everybody is responsible, nobody does anything -- if one person is responsible, it's already done).

 

In my experience, whenever you write TODO or FIXME comments, they're still in there three years after, so that's kinda useless.

Share this post


Link to post
Share on other sites

My mod team uses Google Drive with spreadsheets saying what needs to be done, what has been claimed and by who, and it is separated into categories (i.e. Writing, Landscaping...etc).

 

The most efficient system I've came across IMO.

Edited by Envy123

Share this post


Link to post
Share on other sites
Thanks for postimg this topic Amr0! I'm in school right now so I haven't been able to seriously work on anything but it got me thinking of different things I'll do next time to improve workflow. Some of which came from study habits and the ways I approach school projects.

1) ideas: I've learned that doing a brain dump actually helps me think better/faster. I'll usually do this in Microsoft OneNote.
A. Make a feature list Inso,enkind of heading font.
B. Fill in between with a bunch of ideas as to honor can be implemented in code.
2) In a separate OneNote document I'll do another brain dump of the art assets I'll need.
3) Inwould eventually like to take this information and make into ancomplete GDD and TDD but that hardly ever happens.
4) Break down the work into tasks. I've learned that these need to be stupidly small. I tend to over estimate time for small tasks and under estimate time for large ones. Plus, seeing a huge list of tasks is motivating for me and so is putting a strike through on a task.
5) Schedule each day i work on the project. Every night I look at what I've done and what I can do next. I try to balance art and programming so be sure I don't burn out on either side or lose motivation for the project altogether.

Share this post


Link to post
Share on other sites

Ok so in the end I went with Workflowy. Here is my current project's plan/workflow. The reasons I went with Workflowy are:

  • Simple concept, easy to work with, intuitive. A point tree with drag-and-drop functionality makes sense for my intended usage. More so than cards (trello).
  • Can be used as a change log. Just move an item from the "TODO" list to the "Completed" list. The items in the completed list are grouped by the release version, so it's obvious which version brought which change.
  • Any point (and its children) can be shared with a link. This allows me to add links on the project's website to things like a change log, known issues, or the entire project's plan/workflow, and the information will be up to date without any further effort. It has two types of sharing links: view-only, and view-and-edit, so it can be used to work collaboratively with other people.

The free plan seems like it should be enough for my needs (250 points per month currently), but I wish it was more (there is a generous referral system in place though, but I always feel people who post referral links only want the gain and not to really share their experience with other people, so the links I posted here are not referral links). Also, it doesn't work offline.

 

OneNote is good, but drag-and-drop point lists are only supported in the desktop client (not the web interface), and you'd have to create a separate notebook for your project in order to share it with your users, because sharing a specific note is not supported.

 

In the end there is no single tool for all users needs and preferences. Just find something that gets the job done and doesn't get in your way and start working!

Edited by Amr0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this