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
Eugene
May 31, 2014
Programming
0
330
Communication problems within complex projects
lessons learned from real life
Eugene
May 31, 2014
Tweet
Share
More Decks by Eugene
See All by Eugene
A year in Elixir. 2018 edition
gmile
0
100
Other Decks in Programming
See All in Programming
童醫院敏捷轉型的實踐經驗
cclai999
0
180
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
230
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
470
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
Team operations that are not burdened by SRE
kazatohiei
1
180
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
VS Code Update for GitHub Copilot
74th
1
300
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
330
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
110
Gleamという選択肢
comamoca
6
760
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
310
Featured
See All Featured
How to Ace a Technical Interview
jacobian
277
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Building Applications with DynamoDB
mza
95
6.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Done Done
chrislema
184
16k
Adopting Sorbet at Scale
ufuk
77
9.4k
Site-Speed That Sticks
csswizardry
10
660
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Git: the NoSQL Database
bkeepers
PRO
430
65k
The Cult of Friendly URLs
andyhume
79
6.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
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