Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
140
Other Decks in Programming
See All in Programming
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6.4k
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
370
App Intentsのビルドプロセスを支える技術
kntkymt
0
330
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
150
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
330
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
250
Security issues being discussed on Web Platforms
petamoriken
0
850
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
700
What We Talk About When We Talk About XP
m_seki
2
590
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
670
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
230
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
640
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
My Coaching Mixtape
mlcsv
0
310
How to Ace a Technical Interview
jacobian
281
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
280
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Producing Creativity
orderedlist
PRO
348
41k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
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