avoid drowning

40
Swim your way through a new code base Avoid Downing

Upload: lynn-root

Post on 05-Jul-2015

554 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Avoid Drowning

Swim your way through a new code base

Avoid D!owning

Page 2: Avoid Drowning

Engineer @ Red Hat @roguelynn

roguelynn.com

LYNN ROOT

Page 3: Avoid Drowning

DIVING

Page 4: Avoid Drowning

Top-down

Work flow

The Code

Lifesavers

Page 5: Avoid Drowning

Purpose

Architecture

Break it apart

Lather, rinse, repeat

Page 6: Avoid Drowning

Purpos"

Page 7: Avoid Drowning

What does it do?

What problems does it solve?

Strengths & weaknesses?Competitors?

Page 8: Avoid Drowning

A!chitectur"

Page 9: Avoid Drowning

What are the components?

How do pieces fit together?

Page 10: Avoid Drowning

B!ea# it apart

Page 11: Avoid Drowning

What’s this chuck’s purpose?

How does it fit with other components?

Page 12: Avoid Drowning

Lathe$, !ins", !epeat

Page 13: Avoid Drowning

Go with the flow

Page 14: Avoid Drowning

User

Admin

Manager

Developer

Page 15: Avoid Drowning

U%e$

Page 16: Avoid Drowning

Target audience?

How is it used?

Learning curve?

Page 17: Avoid Drowning

Admin

Page 18: Avoid Drowning

How are users set up?

How is it maintained?

How does it work with their systems?

Page 19: Avoid Drowning

Manage$

Page 20: Avoid Drowning

What are the goals?

Release cycle & pressure dates?

Other teams?

Page 21: Avoid Drowning

Develope$

Page 22: Avoid Drowning

How to submit & fix a bug?

How is the code tested?

Go-to people?

Page 23: Avoid Drowning

Ease in

Page 24: Avoid Drowning

File Hierarchy

Dependencies

Tools

Challenges

Page 25: Avoid Drowning

Fil" Hierarch&

Page 26: Avoid Drowning

Match up with architecture

Docs, src, tests

stdlib, modules, & third-party libraries

Top-down

Page 27: Avoid Drowning

Dependencies

Page 28: Avoid Drowning

OS & hardware reqs

Software reqs

Build reqs

Page 29: Avoid Drowning

Tools

Page 30: Avoid Drowning

git log

git blame

git-by-a-bus

Page 31: Avoid Drowning

Challeges

Page 32: Avoid Drowning

Write docs

Fix bugs

Increase test coverage

Page 33: Avoid Drowning

Lifesavers

Page 34: Avoid Drowning

Mento$

Page 35: Avoid Drowning

Internal Mentor

External Mentor

Manager

Page 36: Avoid Drowning

Research

Page 37: Avoid Drowning

Personal/Private Wiki

Bookmarks

Old-fashioned post-its

Page 38: Avoid Drowning

Readings

Page 39: Avoid Drowning

The Pragmatic Programmer

Cookbooks

The Developer’s Code

New Programmer’s Survival Guide

Page 40: Avoid Drowning

%wim %afel&