Project Inception Checklist

How a development project starts sets the tone for the entire effort. Getting the logistical, communication, and project management structures in place can really help kick off a project the right way and spur immediate productivity. This guidebook is a checklist of items that we find extremely helpful, and sometimes essential, during the beginning of a project. These are things we always do or at least understand why we aren't.

Project Management and Communication

  • Set up a Dropbox folder which can be shared amongst the project team and the client.
  • Create a mailing list that forwards email to all members of the project team. Client's can just CC this email address ensuring that communications are never lost.
  • Start a Pivotal Tracker board, even if the project is small.
  • Set up a Flowdock room or other chat system and make sure all members of the project and client teams are invited.
  • Make sure the time tracking and invoicing is set up in Harvest.
  • Build a Google spreadsheet with all project and client team members' names, roles, and contact info (email, phone) – share this spreadsheet with everyone.
  • Set up a project report card spreadsheet.
  • Create a shared calendar and add important project dates and team outages.

Technical Tools

  • Source control repository, we use Github at all cost.
  • Set up continuous integration with automated deployments to a staging environment on successful builds. For Rails projects we use Codeship.
  • Automate the production deployment process and make sure all members of the project team have access to deploy. This could be a Rake or Capistrano task, or for more complex projects could be a Chef recipe.
  • Set up exception monitoring, Airbrake or Honeybadger for Ruby projects.
  • Install NewRelic or other performance monitoring tools.
  • Install Papertrail, Loggly, or other log synching/archiving solution.
  • Set up an AWS account for the client with an IAM group for the project team.

Practices

  • Have a kickoff meeting with all of the stakeholders (client folks, implementation team, business owners, etc). Dedicate an hour, have lunch together afterwords.
  • Hold an internal inception meeting to discuss project risks, mitigations, answer questions and concerns, etc.
  • Make sure everyone involved has access to the project roadmap and understands the timelines.
  • Define a day-one deliverable. "What can we ship to staging or production on the first day of the project?"
  • Start a developer setup guide that can be used to on-board new team members. If possible, set up a Vagrant or Docker VM for the development environment.