- 3 different environments: development, staging, production
- Write migrations for schema changes
- Use ORM if possible over raw queries
- Always make it possible for testers to report the version they tested against
- Simplest is to have a meta field in the head section
- Mockups
- SRS
- Database and software architecture
- Implementation
- Test/QA
- Deployment
- One liner describing what changed (not period terminated)
- A few lines describing in more details why things changed
- GPG signed commit
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
When joining a new project without tests, here is the value you need to provide through the addition of tests:
- the application works and doesn't crash
- the application works and supports a few input cases
- the application works and supports a variety of input cases
- the application works and is robust to most input cases
- Write a test that tests the common case usage of your function
- Write tests that cover edge cases of your function
- Write tests to cover all statements, branches, paths
- Make sure you understand what you have to implement
- Make it work
- Write a test for what you implemented
- Refactor the code for reusability/code standard
- Verify that your code passes linting and tests
- Commit your code on a branch
- Push to the central repository
- Verify that CI passes
- Create pull request
- Annotate code to explain intent of changes
- Title
- Important
- Urgent
- Definition of deliverables
- Assignee
- Estimate of effort required
- Deadline
- If a ticket is in a blocked state, then the reason why it is blocked should be made explicit