Wikimedia Apps/Team/iOS/Engineering Review/March 27 2015

Makefile & external dev setup

 * What is the role of a make file?
 * Simple setup
 * Advanced setup

What Why How of Code Review

 * Why: phab ticket
 * What: code
 * How: code/tests
 * Unit Test is the best practice
 * If not feasible, describe in git commit

TL;DR Ideally the diff, tests, and task speak for themselves. Patch/Pull Message should contain a high level description and pointers to all of the above

Flaws

 * Legacy code makes understanding difficult, so extra measures need to be taken to facilitate understanding
 * Gerrit literally squashes discrete history, forcing devs to tell story of "how" using other means
 * Gerrit also forces the commit message to be the description of the entire changeset (for better or worse)
 * Can't use a rich medium to tell the story, e.g. GitHub PR
 * No tools for automated user/visual tests

Actions

 * Try for smaller patches w/ pointers to phab tickets (w/in sprint ideally)
 * When exceptions to the best practice of testing occur, we need to flag the task so we can measure the cost of not having automated tests to cover those cases
 * Try to use automation and unit tests to reduce engineer testing time
 * Leverage testers for "Higher Value Testting" (fuzz, exploratory, edge cases, hard-to-automate, i.e. not regression)
 * Further investigate using Github while Diffusion is being built
 * Experiment with submitting a GH merge commit as a patch in gerrit