makandra's development process
Learn about our process:
The squares represent the state of the story in Pivotal Tracker.
In particular you should understand:
- Why do we have a process?
- What is a story?
- What metrics does our process optimize for?
- How to divide large requirements into stories. When is a story too small, when is it too large?
- The lifecycle of a story
- How to write a story
Story format
Read the card Project management best practices: Stories.
Gatekeeping
Get familiar with our Gatekeeping process.
In particular you should understand the purpose of:
- Feature branches
- Code reviews
- Commit squashing (and the resulting traceability through
git blame
)
Our Merge request checklist
Read the card Before you make a merge request: Checklist for common mistakes
Include the checklist in the description of all future merge requests and try to tick all boxes. You can ignore the translation and pagination requirements for now as they are taught later on.
Deploying production
Understand the steps involved in deploying changes to production.
For this, take a look at geordi
gem and examine what its deploy
task does.
Pivotal Tracker
Learn to use
Pivotal Tracker
Show archive.org snapshot
, our project management tool:
- Work through the
tutorial
Show archive.org snapshot
- Browse through a large project using multiple panes
- Understand how Pivotal Tracker handles velocity and iterations, and why we need neither of those
- Optional: Add the bookmarklet to create commit messages from a ticket to your bookmarks
Exercises
- Consider two small changes for your MovieDB
- Change the title of MovieDB to FilmDB
- Add a new attribute to a Movie (like a selection of genre, or duration in minutes)
- Formulate requirements in the forms of stories and ask for feedback from your mentor.
- For each change, follow the process
- Deploy the changes to staging
- Have your mentor accept/reject each story. Make sure at least one story is rejected once (e.g. change your mind so "FilmDB" is actually "FilmBase"), so you get to practice the workflow for rejects.
For this exercise, your mentor is both your code reviewer and your customer. Ping them in Slack whenever you think it's their turn in the process.
For all further lessons, you should deliver all exercises through the process.
Tip
If no merge request option can be found, check in your GitLab settings (general > visibility) if the slider "Merge requests" is activated. If not, do so.
Other processes
Some of our clients use different processes:
For each of these processes:
- Understand how they work
- How do they differ from our own?
- What are the pros and cons to our own process? Under which conditions would it be superior to our own process?