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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Eugene
May 31, 2014
Programming
0
380
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
110
Other Decks in Programming
See All in Programming
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
0
130
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
190
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
1.8k
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
130
How to stabilize UI tests using XCTest
akkeylab
0
130
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
290
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
310
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
230
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
220
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
110
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
150
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
760
How to Talk to Developers About Accessibility
jct
2
150
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
290
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
400
Side Projects
sachag
455
43k
How to make the Groovebox
asonas
2
2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
640
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
Statistics for Hackers
jakevdp
799
230k
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