Skip to content

Latest commit

 

History

History
104 lines (77 loc) · 4.13 KB

README.md

File metadata and controls

104 lines (77 loc) · 4.13 KB

Project Checklist

Jolly Good Code is a boutique software consultancy in Singapore that specializes in Agile engineering with Ruby (and Rails).

We do a number of projects every year and Anchors of a project are responsible for going through this checklist whenever we start a project.

This checklist helps to ensure consistency in communication and practices across all projects, and more importantly ensure quality in our delivery.

However, depending on situations, it's ok to deviate from the checklist when required.

Project Kickoff

Firstly, decide on a codename for the project, then setup various services as follows, mainly for communication between JollyGoodCoders and the Client and to facilitate app development.

Details of the setup are also documented in our Guides (to be further updated).

Communication

  • Chronicles.io
  • PivotalTracker
  • GitHub (with empty repo and copy Project Checklist to Issues)
  • Slack and Integrations

App Development

  • Heroku (Staging)
  • Heroku (Production)
  • Codeship
  • deppbot

Slack Integrations

  • Chronicles.io
  • PivotalTracker
  • GitHub
  • Heroku
  • Codeship

Optionals

  • CodeClimate
  • HoundCI

Pre-Production

As we start to build the project, we need to check the following:

Code

  • Latest version of Ruby and Rails defined in Gemfile
  • Ensure all configuration and keys are stored in ENV variables
  • Ensure all Model associations have the necessary dependent: destroy
  • Setup Attache + AWS S3 for storing user-generated content

Optimization

  • Optimize according to suggestions by Google's Pagespeed
    • Use heroku-deflater - see blog
  • Enable bullet and lol_dba and check and optmize all SQL queries
  • Optimize all images with ImageOptim or Smusher
  • Enable lazy loading of images if app is image heavy

ActiveJob

  • Ensure all/most emails are sent via background processes
  • Ensure all/most images are processed via background processes, or use Attache

Optional

  • Ensure Web Accessibility with WAVE

Production

  • Concurrent Server
    • Puma recommended at 1-2 x PUMA_WORKER
  • Start your Worker?
  • Setup Database with (sizable) Memory
  • Setup Backup Strategy
    • heroku pg:backups schedule --at '03:00 Asia/Singapore' DATABASE_URL --app <app>
  • Setup Logging Strategy
  • Setup Monitoring
  • Setup Errors Tracking
  • Update DNS
    • Add custom domains (www and root) to Heroku
    • CNAME www to Heroku URL; Redirect 302 root to www
  • Update DNS Entry for Mail Services
  • Update Basement specific ENV in Heroku's config (e.g. WWW_HOSTNAME etc)

This checklist is ever evolving and we would love to have your inputs too.

Send us an issue! ❤️