14 Jun 2019

# Meetings

History / Edit / PDF / EPUB / BIB / 2 min read (~308 words)

### Before

• Write/prepare an agenda listing the items to be discussed
• Indicate the duration and responsible/lead of each
• Aim for a meeting to last under an hour. If more time appears to be required, then prior work should be done in order to reduce the amount of time necessary for the meeting.
• Define the list of invitees, try to keep it short, possibly under 6 people
• Share the agenda with all the attendees
• Schedule the meeting around boundaries (beginning/end of day, before/after lunch)

### During

• Present the agenda
• Designate a person that will make sure that the agenda is respected

### At the end

• Determine next actions
• Define deadlines for each next action
• Assign a responsible for each next action

### After the meeting

• Create tasks in a task tracking system for the next actions

### Recurrent meetings

• In the case where a recurrent meeting needs to be scheduled at a different time than usual, specify in the body of the message the reason of the change.
26 May 2019

History / Edit / PDF / EPUB / BIB / 4 min read (~783 words)

## Steps to create a task

• Give it a title
• Give it at least one label
• Give it an assignee
• Decide if it's important or not
• Decide if it's urgent or not
• Estimate the effort required to accomplish the task (in hours)
• Estimate the value the task brings (in $) • Give a rough estimate of effort • Give a description if necessary • Set a deadline if possible • Set status to Unprioritized ## During a workday • Go through the tasks in the Do section, then the Decide section, then Delegate ## Important/Urgent Use Eisenhower matrix to determine task importance/urgency • Tasks that are not important/not urgent are moved to the backlog • Tasks that are not important/urgent are delegated to someone else • Tasks that are important/not urgent should be scheduled • Tasks that are important/urgent should be done ASAP ## Effort/Value/ROI Using the estimated effort and estimated value of a task, you can compute the return on investment (ROI) of the task as estimated value divided by estimated effort. For example, a task you estimate is worth 100$ and takes 2 hours to complete will have a ROI of 50 \$/h. Use the ROI of your tasks to prioritize them. You will want to complete the tasks which are likely to have the best return on investment. The ROI metric will also give you clues about the task you should probably not spend your time on. If you are paid 50$/h and a task has a ROI less than 50 \\$/h, then it should probably be moved to the backlog and only reconsidered if its ROI changes.

• You should attempt to keep the Unprioritized tasks count to 0
• Work on tasks In progress first, then take tasks from Today, then from Queued

26 May 2019

# Writing bug tickets

History / Edit / PDF / EPUB / BIB / 1 min read (~117 words)

## Ticket content

• Summary
• Software version
• Environment details: compiler/interpreter, operating system, etc.
• Steps to reproduce
• Expected results
• Actual results
• Screen capture (if relevant)

25 May 2019

# Reviewing code

History / Edit / PDF / EPUB / BIB / 3 min read (~473 words)
• Verify that the build/tests pass
• Read the issue title and description
• New code
• Understand the feature and associated requirements that are supposed to be implemented
• Verify code implements the desired feature and that the requirements are completed
• New/Changed code
• Check code contains tests
• Is all the new code covered by those tests?
• Verify the location of new/moved files
• Are the files in the right directory?
• Are they appropriately named?
• Verify classes, methods, functions, parameters naming
• Are they significant of their purpose?
• Are they clear enough?
• Are they respecting the naming convention?
• Does the code respect SOLID?
• Consider that when functions/methods signature change, code may now be backward incompatible.
• Discuss whether this is necessary
• Backward incompatible changes should be documented
• In a weak typed or type hinted language, are parameters and return of functions/methods typed?
• Are there TODOs that should be completed within this review?
• Check code for code style issues
• Bug fix
• Verify that the fix is applied at the right location and will not "fix the symptoms, not the cause"

When reviewing

• Provide specific and actionable feedback
• Clearly mark nitpicks and optional comments
• Assume competence
• Provide rationale or context
• Consider how comments may be interpreted
• Don't criticize the person, criticize the code
• Don't use harsh language

25 May 2019

# Web applications

History / Edit / PDF / EPUB / BIB / 1 min read (~156 words)

## General

• 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

## Steps

• Mockups
• SRS
• Database and software architecture
• Implementation
• Test/QA
• Deployment