Communication problems within complex projects

Communication problems within complex projects

lessons learned from real life

5c11b2e624af2cb13797e47442067ea6?s=128

Eugene

May 31, 2014
Tweet

Transcript

  1. Communication problems within complex projects lessons learned from real life

    Eugene Pirogov 2014
  2. I SUCK! AT COMMUNICATING

  3. The Story

  4. Input data Computation Output data Project scheme… …was dead simple.

  5. Computation! ! = lot of details

  6. PROGRAMMING! IS HARD?! ! GO READ THE! DAMN BOOK.

  7. None
  8. COMMUNICATION! IS HARD.! ! YOU ONLY LEARN! EMPIRICALLY.

  9. “We need a new big feature!” – every client in

    the world.
  10. Input data Computation Output data 1 Project scheme Output data

    2
  11. Input data Computation Output data Project scheme

  12. Input data — Computation — Output data Project scheme =

    throuple —
  13. “We need a time to refactor first.” – every programmer

    in the world.
  14. After a day or two of thinking it through, I

    begin to work.
  15. During the two period month, it’s Skype, me and client.

    Summary
  16. 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)
  17. The 3rd PR is somewhat “tough” to review. ! Hmm…

  18. Let’s split it in reviewable parts.

  19. 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
  20. “Time’s up!” – every client in the world (probably).

  21. The NOT happy ending

  22. 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"
  23. The Reasons

  24. Ridiculous pull requests Reason #1

  25. REVIEWS! ARE BLOCKED

  26. EVERYONE! GET IRRITATED

  27. epicpullrequests.tumblr.com

  28. Lack of understanding Reason #2

  29. IT’S HARD TO! FOLLOW! WHAT WE ARE! BUILDING

  30. No record Reason #3

  31. COMMUNICATION! IS! BROKEN

  32. NO! DESIGN! DOCS

  33. SKYPE! IS! NOT! A WAY! TO DO IT

  34. Lack of seniority Reason #4

  35. I has the dumb™ Reason #5

  36. The Lessons

  37. You can’t do everything yourself Lesson #1

  38. YOU! ARE! A MEMBER! OF! A TEAM

  39. HERO! MODE! OFF

  40. IT’S! A STRESS.! ! DO! YOU! WANT! THAT?

  41. Always remain on the damn record! Lesson #2

  42. COMMUNICATE! IN A! SHARED SPACE.

  43. GITHUB.! COMMIT MESSAGES.! PIVOTAL TRACKER.! CAMPFIRE.! ! EMAILS ARE GOOD!

    BUT NOT GREAT.! ! FUCK SKYPE.
  44. Take a step back Lesson #3

  45. DO NOT! BLINDLY GO! AFTER CLIENT’S! REQUESTS

  46. ONLY! FOOLS! WRITE! CODE! FIRST™

  47. blog.reemer.com/why- only-fools-write-code-first

  48. Learn to ask & accept feedback Lesson #4

  49. TAKE IT GENTLY.! ! TAKE IT WISELY.

  50. YOU! ALL ! STRUGGLE! TO MAKE! A BETTER! PRODUCT.

  51. OTHER PEOPLE! DISAGREE?! ! IT ONLY MEANS! THEY CARE.

  52. You are not your code Lesson #5

  53. DO NOT GET! DRIFTED AWAY! BY ASSOCIATING! YOURSELF! TO THE

    CODE! YOUR PRODUCE.
  54. Provide the information Lesson #6

  55. IT WILL! SECURE YOU

  56. LET! EVERYONE! DO THEIR BEST! TO HELP! YOU

  57. GISTs! AND! GOOGLE DOCS! ARE AWESOME

  58. WRITE! DOWN! THE STUFF.! ! THEN! SHARE IT.

  59. Do not let other people down Lesson #7

  60. YOU WILL PAY! BY STRESSING OUT

  61. THE TEAM! WILL PAY BY TURNING! INTO A CRUNCH MODE

  62. THE CLIENT! WILL PAY,! LITERALLY

  63. Talk today and not tomorrow Lesson #8

  64. LIFE! IS SHORT! TO WAIT UNTIL! TOMORROW.

  65. It’s all my fault Lesson #9

  66. ALWAYS! DO! THE! BEST! OF YOU.

  67. sivers.org/my-fault

  68. Do not fear to do mistakes Lesson #10

  69. LIFE! IS! A JOURNEY.! ! WHY FEAR IT?

  70. REPEATING! MISTAKES
 IS NOT! PROFESSIONAL

  71. EXPERIENCE! IS! PRICELESS.! ! EVEN IF A BAD ONE.

  72. STOP! DIGGING! YOURSELF! A HOLE! AND! LEARN! TO! COMMUNICATE

  73. The Clean Coder: A Code of Conduct for Professional Programmers

    @unclebobmartin
  74. Thanks! Questions? @gmile