On sharing ideas & sharing code

1,015
-1

Published on

Monkigras 2014. Based on my experience with Jenkins. On modularity, extensibility, and why it helps developers scale.

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,015
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • I work on Jenkins / one of the things I managed was scalability of development / that’s something I deeply care about / in this talk I want to explore why it matters
  • What is OPC? / This is how Jenkins is run
  • That’s when … / DVCS solves the scalability problem
  • How can you trust random nobody?Is it like not locking the door?“You owe it to your users to be selective”
  • Does PR create a wrong incentive and funnel problem?
  • The real problem is that people have to come to argue with you / justify the change / defend the addition / In either case, they have to convince YOU to let changes in.
  • There’s positive functions as well / Think of Steve Jobs & iPhone
  • But it doesn’t really help resolve conflict of interest.Communication is an act of letting people see things that they didn’t. Communication is fundamentally painful
  • You have incredible advantage of being the gate keeper to control communicationThis is a great tragedy / you are not giving ideas a chance to be tested / you are not letting people “talk in code” to othersIt’s arrogant think that you can correctly judge all the new ideas
  • You really see that central VCS vs DVCS isn't the point, nor the open commitpolicy vs PR culture is the point.
  • You do feel drag.“Can your X do Y?”“I need integration with Z to close this deal”“We got another partner and we want integration by Monday”“Let’s build a PoC that combines X and Y”“What if X does Y instead of Z?”
  • You want to make it so that they can do that on their own, without bothering youTalk is cheap, show me the code.
  • Divide things up /make composable / let people see what you did, reassemble what they like
  • Divide things up /make composable / let people see what you did, reassemble what they like
  • Divide things up /make composable / let people see what you did, reassemble what they like
  • imaginary modularity vs visible exploitable modularity
  • Starting VM, preparing the right image, but deploying a different binary.Can I do that on my own, as an experiment, without affecting you?Rewire components. How do you do that? Can that be done uniformly?
  • Parallel here? We’ve seen this problem before in a big Java app. We solved that with “dependency injection”.(In CB, we want to solve this for ourselves in such a way that solves it for everyone.)These are the friction to express idea
  • Don’t ask me to turn your ideas into code / These go a long way to create greatness. Thank you.
  • imaginary modularity vs visible exploitable modularity
  • On sharing ideas & sharing code

    1. 1. On Sharing Ideas in Code Kohsuke Kawaguchi / CTO / CloudBees, Inc. kk@kohsuke.org / @kohsukekawa ©2013 CloudBees, Inc. All Rights Reserved 1
    2. 2. Committers • A chosen few ©2013 CloudBees, Inc. All Rights Reserved 2
    3. 3. Open Commit Policy ©2013 CloudBees, Inc. All Rights Reserved 3
    4. 4. Is open commit policy a relic before GitHub? ©2013 CloudBees, Inc. All Rights Reserved 4
    5. 5. ©2013 CloudBees, Inc. All Rights Reserved http://commons.wikimedia.org/wiki/File:Hitchhiker-Luxemburg-1977.jpg 5
    6. 6. Are pull requests easy enough to substitute a commit access? ©2013 CloudBees, Inc. All Rights Reserved 6
    7. 7. ©2013 CloudBees, Inc. All Rights Reserved 7
    8. 8. What doesn’t happen • Fringe use cases • Trying conflicting ideas ©2013 CloudBees, Inc. All Rights Reserved 8
    9. 9. You are the gate keeper ! ©2013 CloudBees, Inc. All Rights Reserved 10
    10. 10. YOU ©2013 CloudBees, Inc. All Rights Reserved 11
    11. 11. But wait, this is not just OSS! ©2013 CloudBees, Inc. All Rights Reserved 12
    12. 12. Inside a business… ✓ everyone has commit access ✓ using distributed VCS ✓ using GitHub ©2013 CloudBees, Inc. All Rights Reserved 13
    13. 13. Do people have to “argue with you”? ? ... ©2013 CloudBees, Inc. All Rights Reserved 14
    14. 14. I want to talk to my audience in code 00110100 01011010 11001101 00010110 ©2013 CloudBees, Inc. All Rights Reserved 15
    15. 15. What you want • Get out of their way • Let people innovate and fail fast YOU ©2013 CloudBees, Inc. All Rights Reserved 17
    16. 16. http://commons.wikimedia.org/wiki/File:Close_up_of_Hand_Cut_Jigsaw_Puzzle.JPG ©2013 CloudBees, Inc. All Rights Reserved 18
    17. 17. The solution ©2013 CloudBees, Inc. All Rights Reserved 19
    18. 18. The solution ©2013 CloudBees, Inc. All Rights Reserved 20
    19. 19. The solution ©2013 CloudBees, Inc. All Rights Reserved 21
    20. 20. http://www.flickr.com/photos/60648084@N00/297463600/ ©2013 CloudBees, Inc. All Rights Reserved LEGO Group 22
    21. 21. How do you run it? ©2013 CloudBees, Inc. All Rights Reserved 23
    22. 22. Friction to express ideas in code affects scalability of engineering org ©2013 CloudBees, Inc. All Rights Reserved 25
    23. 23. Once the formula is established… ©2013 CloudBees, Inc. All Rights Reserved 26
    24. 24. My Wish List • Share your idea in code, not in English • Get out of people’s way ©2013 CloudBees, Inc. All Rights Reserved 27
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×