Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Communication problems within complex projects
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Eugene
May 31, 2014
Programming
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Communication problems within complex projects
lessons learned from real life
Eugene
May 31, 2014
More Decks by Eugene
See All by Eugene
A year in Elixir. 2018 edition
gmile
0
130
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
300
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
210
霧の中の代数的エフェクト
funnyycat
1
320
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.7k
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
190
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
初めてのKubernetes 本番運用でハマった話
oku053
0
120
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
240
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
160
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
The Limits of Empathy - UXLibs8
cassininazir
1
410
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
320
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
640
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
Exploring anti-patterns in Rails
aemeredith
3
440
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Leo the Paperboy
mayatellez
8
1.9k
Transcript
Communication problems within complex projects lessons learned from real life
Eugene Pirogov 2014
I SUCK! AT COMMUNICATING
The Story
Input data Computation Output data Project scheme… …was dead simple.
Computation! ! = lot of details
PROGRAMMING! IS HARD?! ! GO READ THE! DAMN BOOK.
None
COMMUNICATION! IS HARD.! ! YOU ONLY LEARN! EMPIRICALLY.
“We need a new big feature!” – every client in
the world.
Input data Computation Output data 1 Project scheme Output data
2
Input data Computation Output data Project scheme
Input data — Computation — Output data Project scheme =
throuple —
“We need a time to refactor first.” – every programmer
in the world.
After a day or two of thinking it through, I
begin to work.
During the two period month, it’s Skype, me and client.
Summary
Summary • 1 man • ~2 months • 3 pull
requests • 2/3 pull requests reviewed/merged to master • zero of code is running on prod (waiting for 3rd PR)
The 3rd PR is somewhat “tough” to review. ! Hmm…
Let’s split it in reviewable parts.
Summary • entire team is working • +1 month •
3rd PR is split into 10 smaller PRs • 8/10 smaller PRs are merged • the team is insanely stressed out • zero of code is running on prod
“Time’s up!” – every client in the world (probably).
The NOT happy ending
Summary • the deadline wasn't met – the feature wasn't
delivered • all new code was deployed on production, but no new code was actually used • the codebase is a mess • me – super stressed, almost quit • the project is being put on "no new features mode"
The Reasons
Ridiculous pull requests Reason #1
REVIEWS! ARE BLOCKED
EVERYONE! GET IRRITATED
epicpullrequests.tumblr.com
Lack of understanding Reason #2
IT’S HARD TO! FOLLOW! WHAT WE ARE! BUILDING
No record Reason #3
COMMUNICATION! IS! BROKEN
NO! DESIGN! DOCS
SKYPE! IS! NOT! A WAY! TO DO IT
Lack of seniority Reason #4
I has the dumb™ Reason #5
The Lessons
You can’t do everything yourself Lesson #1
YOU! ARE! A MEMBER! OF! A TEAM
HERO! MODE! OFF
IT’S! A STRESS.! ! DO! YOU! WANT! THAT?
Always remain on the damn record! Lesson #2
COMMUNICATE! IN A! SHARED SPACE.
GITHUB.! COMMIT MESSAGES.! PIVOTAL TRACKER.! CAMPFIRE.! ! EMAILS ARE GOOD!
BUT NOT GREAT.! ! FUCK SKYPE.
Take a step back Lesson #3
DO NOT! BLINDLY GO! AFTER CLIENT’S! REQUESTS
ONLY! FOOLS! WRITE! CODE! FIRST™
blog.reemer.com/why- only-fools-write-code-first
Learn to ask & accept feedback Lesson #4
TAKE IT GENTLY.! ! TAKE IT WISELY.
YOU! ALL ! STRUGGLE! TO MAKE! A BETTER! PRODUCT.
OTHER PEOPLE! DISAGREE?! ! IT ONLY MEANS! THEY CARE.
You are not your code Lesson #5
DO NOT GET! DRIFTED AWAY! BY ASSOCIATING! YOURSELF! TO THE
CODE! YOUR PRODUCE.
Provide the information Lesson #6
IT WILL! SECURE YOU
LET! EVERYONE! DO THEIR BEST! TO HELP! YOU
GISTs! AND! GOOGLE DOCS! ARE AWESOME
WRITE! DOWN! THE STUFF.! ! THEN! SHARE IT.
Do not let other people down Lesson #7
YOU WILL PAY! BY STRESSING OUT
THE TEAM! WILL PAY BY TURNING! INTO A CRUNCH MODE
THE CLIENT! WILL PAY,! LITERALLY
Talk today and not tomorrow Lesson #8
LIFE! IS SHORT! TO WAIT UNTIL! TOMORROW.
It’s all my fault Lesson #9
ALWAYS! DO! THE! BEST! OF YOU.
sivers.org/my-fault
Do not fear to do mistakes Lesson #10
LIFE! IS! A JOURNEY.! ! WHY FEAR IT?
REPEATING! MISTAKES IS NOT! PROFESSIONAL
EXPERIENCE! IS! PRICELESS.! ! EVEN IF A BAD ONE.
STOP! DIGGING! YOURSELF! A HOLE! AND! LEARN! TO! COMMUNICATE
The Clean Coder: A Code of Conduct for Professional Programmers
@unclebobmartin
Thanks! Questions? @gmile