$30 off During Our Annual Pro Sale. View Details »

Open source workflows in highly regulated environments

Open source workflows in highly regulated environments

Why how you work is as important as what you work on.

Ben Balter

May 08, 2017
Tweet

More Decks by Ben Balter

Other Decks in Technology

Transcript

  1. Open source workflows 

    in highly regulated environments
    @benbalter
    ben.balter.com
    [email protected]

    View Slide

  2. Conway's law
    “organizations which design
    systems ... are constrained to
    produce designs which are copies of
    the communication structures of
    these organizations ”

    View Slide

  3. How you work
    is as important as
    what you work on

    View Slide

  4. Roadmap
    1. Open source moves beyond Agile
    2. Open source behind the firewall
    3. Open source in regulated environments

    View Slide

  5. 1. Open source moves beyond Agile

    View Slide

  6. Agile is a methodology
    "get incremental changes into users' hands"

    View Slide

  7. Open source is a philosophy
    "remove barriers to the free flow of information"

    View Slide

  8. Closed source Open source
    Waterfall
    Traditional software
    development
    Publishing 

    proprietary code
    Agile
    Modern software
    development
    Working in the open

    View Slide

  9. Both open source and agile value
    ad-hoc and informal communication
    over documentation and process

    View Slide

  10. Face-to-face versus asynchronous
    Agile Open source

    View Slide

  11. Applying open source to Agile

    View Slide

  12. Transparency solves for process

    View Slide

  13. 1. Prefer social constraints over
    administrative or technical constraints

    View Slide

  14. 2. Prefer systems that naturally
    capture and expose process

    View Slide

  15. 3. Prefer stakeholders subscribe to the
    software development process itself

    View Slide

  16. The constraints of open source

    View Slide

  17. Electronic
    Prefer systems that naturally capture process

    View Slide

  18. Available
    Expose process via shareable URLs

    View Slide

  19. Asynchronous
    Decisions can be made outside meetings

    View Slide

  20. Informal
    Professional, not formal

    View Slide

  21. Open source flow
    https://guides.github.com/introduction/flow/

    View Slide

  22. Issues are Agile user stories

    View Slide

  23. Everyone has access to issues

    View Slide

  24. Anyone can open an issue

    View Slide

  25. Teams prioritize, sequence,
    and implement

    View Slide

  26. Create a branch

    View Slide

  27. Add commits

    View Slide

  28. Open a pull request

    View Slide

  29. Discuss and review

    View Slide

  30. Deploy

    View Slide

  31. Merge

    View Slide

  32. 2. Open source
    behind the firewall

    View Slide

  33. Open source is a philosophy, 

    not a type of software

    View Slide

  34. Process is shared to the widest extent practical
    One team, your organization, or the entire world

    View Slide

  35. Human-centric processes produce
    human-centric software

    View Slide

  36. Five best practices
    of open source behind the firewall

    View Slide

  37. 1. The technology is the easy part

    View Slide

  38. 2. Start small and
    go through the motions

    View Slide

  39. 3. Minimize information imbalance

    View Slide

  40. 4. Embrace the constraints
    of open source

    View Slide

  41. 5. Minimize Friction

    View Slide

  42. Friction (n) - the time it takes to go
    from "I want to contribute" to "I have"

    View Slide

  43. 3. Open source
    in regulated environments

    View Slide

  44. Version control captures
    who made what change when

    View Slide

  45. Open source workflows 

    capture (and expose)
    process

    View Slide

  46. How open source captures process
    1. Chat (and issues)
    2. ChatOps
    3. Continuous Integration
    4. Code Reviews
    5. Deployments

    View Slide

  47. Chat (and issues)

    View Slide

  48. Chat is inherently asynchronous

    View Slide

  49. Chat captures and exposes
    who made what decision why

    View Slide

  50. ChatOps
    A shared command-line for development teams

    View Slide

  51. Meet Hubot

    View Slide

  52. CultureOps

    View Slide

  53. DevOps
    • View cameras in our datacenter
    • Search error logs
    • Manage and trigger alerts
    • Perform server maintenance
    • Configure load balancer
    • Provision servers
    • Adjust firewalls
    • Activate DDoS mitigation
    • Configure DNS
    • Manage background jobs
    • Deploy to production

    View Slide

  54. Continuous Integration (CI)

    View Slide

  55. Required build statuses

    View Slide

  56. Nothing gets deployed unless
    tests are green

    View Slide

  57. Code reviews

    View Slide

  58. Nothing gets deployed unless
    reviews are green

    View Slide

  59. Deployments at GitHub
    On the pull request
    in Chat

    View Slide

  60. How you work
    is as important as
    what you work on

    View Slide

  61. Open source workflows 

    in highly regulated environments
    @benbalter
    ben.balter.com
    [email protected]

    View Slide