code quality as a built-in process

51
Code Quality as a built-in process By Elad Maimon

Upload: elad-maimon

Post on 13-Apr-2017

240 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Code quality as a built-in process

Code Qualityas a built-in process

By Elad Maimon

Page 2: Code quality as a built-in process

When to start with code quality ?

Page 3: Code quality as a built-in process

When to start with code quality ?

Page 4: Code quality as a built-in process

Qualitydoes nots t a r tafter yous u b m i t

Page 5: Code quality as a built-in process

PAIR PROGRAMMING

Page 6: Code quality as a built-in process

What is pair programming ?

Page 7: Code quality as a built-in process

What is pair programming ?

1 monitor

Page 8: Code quality as a built-in process

What is pair programming ?

1 monitor

1 keyboard

Page 9: Code quality as a built-in process

What is pair programming ?

1 monitor

1 keyboard

1 mouse

Page 10: Code quality as a built-in process

What is pair programming ?

1 monitor

1 keyboard

1 mouse

Page 11: Code quality as a built-in process

What is pair programming ?

1 monitor

1 keyboard

1 mouse

2 developers

Page 12: Code quality as a built-in process

Driver Navigator Tactician Strategist

switch frequently...

Page 13: Code quality as a built-in process

Pros

Page 14: Code quality as a built-in process

Higher code quality

Pros

Page 15: Code quality as a built-in process

Higher code quality

Pros

Encourage discussions

Page 16: Code quality as a built-in process

Higher code quality

Pros

Encourage discussions

Knowledge sharing

Page 17: Code quality as a built-in process

Higher code quality

Pros

Encourage discussions

Knowledge sharing

Shared code ownership

Page 18: Code quality as a built-in process

Higher code quality

Pros

Encourage discussions

Knowledge sharing

Shared code ownership

Teaching tool

Page 19: Code quality as a built-in process

Higher code quality

Pros

Encourage discussions

Knowledge sharing

Shared code ownership

Focus

Teaching tool

Page 20: Code quality as a built-in process
Page 21: Code quality as a built-in process

1 + 1 > 2 ?

Page 22: Code quality as a built-in process

Might reduce creativity

1 + 1 > 2 ?

Page 23: Code quality as a built-in process

Reduce independency

Might reduce creativity

1 + 1 > 2 ?

Page 24: Code quality as a built-in process

Reduce independency

Might reduce creativity

1 + 1 > 2 ?

Soloist teammate

Page 25: Code quality as a built-in process

- Be stubborn

- Get attached to your code

- Dominate

- Distract yourself

- Late

- Overuse

DOs DONTs- Find proper environment

- Talk a lot

- Postpone hard decisions

- Take shared breaks

- Switch roles frequently

- Switch pairs often

Page 26: Code quality as a built-in process

T e s t D r i v e n Development

Page 27: Code quality as a built-in process

Why

automated

tests ?

Page 28: Code quality as a built-in process

It’s all about t r u s t ...

Page 29: Code quality as a built-in process

o u r j o b i s N O T t o C OD Eo u r j o b i s N O T t o T E S Twe are software engineersw e S H I P s of t w a r e t ha tSOLVES problems. (Uri Nativ)

Page 30: Code quality as a built-in process

TDD & BDD

Page 31: Code quality as a built-in process
Page 32: Code quality as a built-in process

Who writes this ?

Page 33: Code quality as a built-in process
Page 34: Code quality as a built-in process

Code Reviews

Page 35: Code quality as a built-in process

Online vs.

Formal

Page 36: Code quality as a built-in process

WHEN ?

Page 37: Code quality as a built-in process

Every line of code!

WHAT ?

Page 38: Code quality as a built-in process

Search for...

Page 39: Code quality as a built-in process

Search for...

Bugs

Page 40: Code quality as a built-in process

Search for...

Bugs Design

Page 41: Code quality as a built-in process

Search for...

Bugs Design Requirements

Page 42: Code quality as a built-in process

Bugs Design Requirements

UI

Page 43: Code quality as a built-in process

Bugs Design Requirements

UI Readability

Page 44: Code quality as a built-in process

Bugs Design Requirements

UI Readability Styleguide

Page 45: Code quality as a built-in process
Page 46: Code quality as a built-in process

Code comments...

Page 47: Code quality as a built-in process

Code comments...

documentation = { how: “code”, why: “comments”}

# TODO documents ?

Page 48: Code quality as a built-in process

Self documenting code➭ Function and variable names➭ Naming conventions

Page 49: Code quality as a built-in process

Self documenting code➭ Function and variable names➭ Naming conventions

This:

Page 50: Code quality as a built-in process

Self documenting code➭ Function and variable names➭ Naming conventions

vs. This:

This:

Page 51: Code quality as a built-in process

- Write extensive commit comment

- Split to short commits

- Don’t get attached to your code

- Understand the reviewer is a better reference to readability than you

Reviewer Reviewee- Don’t insist on perfect

solution

- Different approaches are OK

- Ask for explanations

- Separate faults that are not “NO GO” ( open ticket )

- Don’t argue back and forth more than twice - talk F2F