The past few months I’ve worked with a few startups and it’s made me realize that it’s super easy to forget very basic, but crucial things when developing web software. The following is a big brain dump of everything I could think of.
- Source code management (git, svn, mercurial)
- Branches in scm for development and production
- Separate test and prod server
- Deployment scripts/tools
- DB upgrade scripts
- Some sort of framework (Django, Rails, CodeIgniter, anything)
- CSS reset
- HTML5 doctype
- Follow yslow rules
- Bug tracking software
- Specs!
- Feature list
- Roadmap
- Schedule
- QA
- Code review
- Monitoring – nagios, munin
- Print out scm revision/changeset in comment at bottom of webpage
- Print out server name in comment at bottom of webpages
- Coding standards/guidelines
- Automated benchmarking/profiling, SLAs
What else?