Why how you work is as important as what you work on
!Optimize for developer happinessWhy how you work is as important as what you work on@benbalter
View Slide
CONWAY'S LAW"organizations which design systems...are constrained to produce designswhich are copies of the communicationstructures of these organizations"
!Developer-centric development
!STARTUPthefairytale
Low valueHigh valueStartup Established firmIdeasProcess
Low valueHigh valueStartup Established firmGeeksSuits
!What does your organizationoptimize for?
!Happy shareholdersSuccessful softwareEfficient developersStrategic management
!Happy shareholdersGood softwareHappy developersHappy Customers
!You can make software withoutMANAGEMENT
!You can make software withoutCOMPLIANCE AND OVERSIGHT
!You can't make software withoutDEVELOPERS
!DEVELOPER HAPPINESSOptimize forand the rest will follow
!Developer happiness(Inside|Outside) the firewall
!Inside the firewall
!Traditional software development
!When outcomes can't bemeasured, institute process
!Daily, synchronous meetings tomanually shuttle informationaround the organization
!Decisions made in person, in hour-long blocks with all stakeholders present
!Blocking, human-based processes
!Email as the least-common denominator
!Organizational knowledge lives(and dies) with employees
!bus_factor++
!Open-source development
!Transparency solves for process
!The constraints of open source
!Electronic
!Available
!Asynchronous
!Lock-free
!Prefer systems that naturally CAPTURE AND EXPOSE PROCESS
!Open source inside the firewall
!Open source is a PHILOSOPHY AND A WORKFLOW not as an alternative technology
!How to WORK LIKE AN OPEN SOURCE PROJECT
!1. Share to the widest extent possible
!Openness breaks down silos,reduces duplication, andminimizes on-boarding time
!2. Minimize developer friction
!Friction (n) the time it takes to go from "I want to contribute" to "I have contributed"
!Common scripts to rule them allhttp://githubengineering.com/scripts-to-rule-them-all/
!PREFER CULTURAL CONSTRAINTSto technical and administrative constraints
!Non-blocking is better than blocking
!Never force a human to do what a robot can
!ChatOps, DevOps, Hubot, and CI
!If you liked it you should havePUT AN API ON IT
!Outside the firewall
!APIs make developers happy
!Openness makes developers happy
!Two caveats
!1. Open up almost everything
!2. Openness is about more than justthrowing 0's and 1's over the firewall
!Treat your data withthe same respectthat developers treat code
!Open source, inner source, APIs, & open data all foster communities around shared challenges
!Be the hub, not the single point offailure (or innovation)
!Adopt an expanded definition ofstakeholders
!Ensure all stakeholders have theopportunity to contribute on equal footing
!Decentralize governance
!Minimize information imbalance
!1. Work in the open
!2. Propose and discussimprovements in the open
!3. One shared, public issue tracker
!4. Minimize synchronous meetings(and memorialize them when necessary)
!5. Extensive, automated tests
!How do you optimize fordeveloper happiness?
!Inside the firewallsystems that capture and expose process
!Outside the firewalltreat external stakeholders as internal stakeholders
!No really, how do you optimize fordeveloper happiness?
!TECHNOLOGYis the easy part
!Bureaucracy is an organism
!Inoculate with small doses ofculture and innovation
!Involve all stakeholders early on
!Start small and go through the motions
!Create a "feedback" repositoryboth internally and externally
!Open dataOpen governanceOpen tooling