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