- The war for definition
- The resistance to a definition
- The filling of the vacuum
- Devops comes from the lived experience of the practitioner
- Making it, in all cases, unique to the practitioner
- We had a lot of overlapping experiences though
- Relationship to failure
- High trust, high interaction relationships with each other
- A penchant for automation
- A tendency towards self reliance
- Obsession with metrics and graphs
- A focus on revenue and availability
- I think the struggle to define devops comes from this nature
- You can look at an individual, and see the 'school' they came from
- If you look at the 10 people I worked with longest, they way they 'do devops' is very, very similar to mine
- Its not suprise - our experiences are very similar
- The further you go from there, the more small differences there are
- In general, the macro trend holds - you can see us all under one umbrella, with many small differences
- Gōngfu (功夫)
- 功 (gōng) meaning "work", "achievement", or "merit",
- 夫 (fū) which is alternately treated as being a word for "man" or as a particle or nominal suffix with diverse meanings (the same character is used to write both)
- Originally, it did not mean just to practice martial arts
- It referred to the process of ones training - the refinement of body and mind, the learning and perfection of your skills
- The excellence achieved through long practice in ones skills Source - http://en.wikipedia.org/wiki/Kung_fu_%28term%29
- Hundreds of different schools
- They vary widely on what they emphasize
- But the broad methods are the same
- Basics - the fundamental internal/external foundation
- Forms - a series of predermined behaviors that can combine to a continuous way of acting
- Applications - using your Kung fu in the field, and adapting the basics and forms to your situational awareness
- When you see someone doing it, and you are broadly ignorant, you know its different than boxing
- When you are someone who knows it well, you can tell the differences right away
- Sound familiar? Source - http://en.wikipedia.org/wiki/Kung_fu_%28term%29
- There is a deep well of practical philosophy
- There is a broad base of experience, unique to each individual
- We are recognizably similar
- There is a way to teach people how to do it
- It starts with the basics, and everyone must master them
- It moves to Forms - predetermined behaviors that can be combined into continuous sets of actions
- It ends in Application - actually doing your Kung fu in the field, using what you have learned
- TMTOWTDI is true and honest and important
- However - if you don't know how to do it, you could probably skip the 15+ year journey of difficulaty
- And practice the basics, learn the forms, and apply them in your life
- Those arguments might change what overall makes a form
- But they don't change its nature
- We have a common language and pallete for expression of our ideas
- I call it "Chef Style"
- It comes from my experience
- As a systems administrator
- As a software developer
- As an entrepreneur
- As an executive
- As a human being dedicating my adult life to the internet
- As a father
- It draws on many important influences
- Mark Burgess
- John Allspaw
- Christopher Brown
- Tom Thomas
- Nathen Haneysmith
- Jesse Robbins
- Barry Crist
- Mitch Hill
- Alex Ethier
- Paul Edelhertz
- Larry Wall
- Yukihiro Matsumoto
- Theo Schlossnagle
- Jeff Hackert
- Lao Tzu
- Thich Naht Hanh
- Jesus Christ
- Jez Humble
- Ben Rockwood
- Jesse Leach (Killswitch Engage)
- Ronnie James Dio
- Sammy Hagar
- Johnny Cash
- This talk is my foundational document of that Kung fu
- Once you have watched it, you can join my school
- We can develop the basics, our forms, and help on application
- Talib Kweli explained to me that artists amplify the movement they see in the world
- Marvin Gaye didn't write What's Goin On and
- then
- the movement happened
- The movement happened, and Marvin had to respond to, and amplify it, with his art
- That is my intenet here - I will use my platform to raise up the voices of those who are doing the work
- And we can then leverage it as a platform to help each other
- And to further our aims of having our workplace be a better place
- I took Tae Kwon Do for a month when I was a kid
- It's not even Chinese, its Korean - that's where it ends
- But - my Devops Kung fu is strong
- So is my Comic Book Kung fu
- So I will now use exclusively Comic Book Martial Arts references
- A definition of DevOps
- The principles we aspire to (How you recognize DevOps when you see it)
- Wushu calls this the 'basics', but it involves a lot of pushups, and there isn't a lot of pushups in devops
- The forms we use - the actual things we practice, that try and re-enforce and bolster our principles
- The application - the use of those forms in our actual situation
- These four things are the evolutionary arc of your practice - in the beginning, you learn from others
- As you grow, you will use the forms others have used to learn about the deeper meaning and philosophy
- The more you apply them in practice, the less reliant on the forms you will be - it all just becomes the natural flow
- 'Do not be timid about the scope or the influence - we are re-inventing the way we run businesses"
- Leading you, and anyone else, to be where those of us with already strong Kung Fu are - uniquely suited to our task
- A cultural and professional movement, focused on how we build and operate high velocity organizations, born from the experiences of the it's practitioners.
- Cultural and professional - cultural like Heavy Metal, professional like Vocalist, Lead Guitar, Rythm Guitar, Drums, and Keyboards
- Focused on how we build and operate - it encompasses the details of how we build things, and the details of how we operate them
- High velocity organizations - because we aren't very good at operating slow moving organizations; we were built to go fast
- Born from the experiences of it's practitioners - many of whom were the web innovators - because they were the first ones that had to go fast
- It is a Job Description (and can be a useful signal of intent)
- Everyone involved in building and operating a high velocity organization
- Including, but not limited to
- CEOs and Executives (Professor X)
- Managers (Cyclops)
- Systems Administrators (Beast)
- Software Developers (Storm)
- Network Administrators (Kitty Pryde)
- Security Professionals (Wolverine)
- Sales Reps (Cannonball)
- Product Managers (Forge)
- All of these roles (and more) should practice our Kung fu
- The application may be very different, but the basics and forms are the same
- In this way, we are not generalists - we are highly connected specialists
-
(It's not about whether you are good at it - it'sa bout the soul of our kung fu)
(It's your intent)
- Both the producer and the consumer
- When yoyu do the right thing for the people, the right things happen for the product and the company
-
(Waste Reduction/Pull)
- Muda
- Pull
- Kaizen
- Kaikaku
- Small Batch + Experimentation
- Lean product development
- Conway's law
- Voices, stupdity, similarity
- You want harmony, thinking in different ways, bringing their skills to bear
- Good D&D parites are diverse
- Need a sense of clearly defined purpose thats bigger than the task at hand
- Sources of engagement
- Gallup Q12
- Write it down publicly
- Always refer back to it in every internal communication
- Shoot for one sentence
- Include the people you are trying to help
- Include your product
- Include the change the people you are helping will see "The most enduring and transformative companies use Chef to become fast, efficient, and innovative software driven organizations" (Contentment, Knowledge, Freedom) (People over Product over Company) (Lean Product Development)
- What, in your environment, bring about good outcomes
- Write them down publicly, and refer back to them on every internal communication
- Remember the principles of DevOps
- Mix in the things that are unique to your industry and problem (Contentment, Knowledge, Freedom) (People over Product over Company) (Lean Product Development)
- Empowerment
- Permission to act
- Context to make good decisions
- Access to help, guidance, and more context
- Find leaders who
- Care about your purpose
- Align with your beliefs
- Have leadership as a talent
- Holding of context and caring for your subordinates
- Be available for context and caring at any time - up to senior leaders, down to individuals
- Take people to lunch, or have meetings, outside your specialty
- Ask them what they do, and try and understand
- You need to talk to:
- Legal (Ask them what the role of a lawyer is, and how you can help make any interactions you have smooth)
- Finance (Ask them what the role of a finance is, what key metrics they watch, and how you can help)
- Sales (Ask them what their quota is, what do they struggle with at customers, and how can you help them make their number)
- Marketing (Ask them what message is resonating, why, and how they see the market evolving)
- Business Development (Ask them what partners are moving the needle, how they think about those arrangements, and whats on the horizon)
- Software Development (Ask them what they are building, and why it matters, and what they are excited about in the future)
- Systems Administrators (Ask them about availability, what do they think is the biggest limit to your organizational efficiency)
- Security Professionals (Ask them how they evaluate your business and technology in terms of risk, how you can help)
- Product (Ask them what they think the gaps in your product are, and to talk about the last 5 customers they've met)
- Before you try and do a major decision, make sure you know the answer going in
- Have a written down plan, and why you think its important
- Talk to all the key stakeholders, preferably 1:1
- Get their criticism and feedback
- Update your plan, incorporating thier feedback and criticsim (Make It Theirs)
- Present plan to the group
- Get it done
- Product/Pain Relievers/Gain Creators
- Map to Customer Jobs, Customer Pains, and Customer Gains
- Pain Killers not vitamins
- Make something people LOVE
- Needs not wants (customer wants a feature, customer(s) need features)
- How to identify the opportunities
- Call out customer pain through engagement
- Interview customers to learn about their problems
- Solve the pain you experience yourself
- Write down your ideas for products What is it? (product) Who is it for? (target customers) What problem does it solves and why does it matter? (problem & pain) How does it work? (pain relievers & gain creators) What is unique about it? (uniqueness) What is the value proposition? (value) How do we make money? (cost & revenue)
- Lead with vision
- Align with customer feedback
- Balance innovation with customer needs
- Group them into themes
- Define the outcomes for the themes
- Distill those into features, and validate with customers
- Iterate on features according to vision and feedback
- Put it on a grid
- Focus on themes
- The power of the parenthetical
- Keep it alive through iteration
- Your THEMES should hold - your OUTCOMES might hold, and your FEATURES should shift all the time
-
(The Creating Delight slide)
-
Mona lisa slide
- You don't have debt if nobody is using it
- Don't mistake "doing it right" for doing it "incrementally"
- You are building for high velocity
- So small batches, with near term hypothesis
- Shipping the smallest and simplest thing possible to help Get closer to our objectives Get feedback learn validate De-risk
- Experiments and validation with customers
- You introduce near-term volatility to gain decreased long-term failure
- Stylistic difference - there wasn't a way to be declarative about stylistic choices
- There is no reason you have to act drunk when doing drunk boxing
-
(Early stage risk)
- Theory is fun for yak shaving
- Reality is complex
- Execution is all that matters
- Demo every week
- Invite everyone
- Record it and post it
- Gives you a celebration all the time
- Helps you focus on ITERATIVE vs INCREMENTAL (hard to demo one leg)
- Teams that aren't demo-ing are probably being INCREMENTAL
- We are all polyglots
- Learning new languages and tools is one of the great joys of our industry
- Be willing to choose langauges and tools that fit
- Small batch + iterative development protects you from risk
- You must have lightweight feature branches
- Triage and prioritize the bugs
- Be nice to your customers
- Do you have a way to track their requests
- A feature needs to be complete enough that anyone can build it
- Always integrate branches to master
- They should be short lived, iterative branches
- This does not mean just automated testing - it means integrating to master and testing frequently
- You are going to fix the build when it goes red.
- No changes happen to the system with a single pair of eyes
- Code review
- Acceptance
- Write one test at a time
- Write the tests that help avoid future problems
- Test from 4 different angles
- Unit test (a single function)
- Integration tests (multiple classes/units)
- Functional tests (user-oriented, high level, full stack)
- Smoke tests (quickly determine if the system is "working")
- Use the same artifact that you test when you deploy
- Always be able to ship
- Have the role of who ships be clearly demarcated
- The way change moves through your organization is fixed
- Designed to re-enforce the flow and principles you hold
- Flexible at the level of execution
- Local->Change->Review->Verify->Accept->Build->Union->Rehearsal->Delivered
- Avoid using words like
- Production
- Staging
- QA
- Those are activities and locations all rolled in to one
- They happen ALL OVER The workflow
- Applications are core
- Infrastructure is code
- All code goes through the same workflow
- Availability = uptime/(uptime+downtime)
- Focus your efforts on reducing mean time to diagnose and mean time to repair
- Failure is inevitable, its how you detect and react that matter most
- From the operating system, network, applications, and your process
- High resolution matters
- HAve as few systems as possible
- Identify key metrics
- Put them on a graph
- Set a limit
- Plot a trend line
- Expand your time horizon
- Get the attention of the right humans.
- As few alerts as possible
- Routed to the people who can take action
- Start with the is it up alert (see also smoke testing)
- Never create an alert that isn't actionable!
- OODA
- Orient is the step that matters most - rob pike/ken thompson
- The First Responder is the default Incident Commander
- Decides what to do next
- Coordinates resources
- Can hand off command
- Communicates status
- Not about rank
- There is only ONE Incident Commander.
- Invoke the space: we are here to learn, not to blame
- Describe the incident
- Establish the timeline
- Identify contributing factors
- Describe customer impact
- Describe remediation tasks for the root cause
- Describe improvement tasks for response process
- Autonomous actors
- Responsible for their correct operation
- Making progress toward that goal
- Making clear promises to other actors
- Having those actors evaluate the quality of those promises
- The sense of code ownership across the product
- Break down the one person silo
- Code review, cross training, skills development
- Conway's Law “Interpersonal variability, that is the capability and behavior differences between programmers using the same language, tends to account for more differences between programs than a change of the programming language.”
- Make a component as simple as it can be, but no more
- Design for re-use when you can
- CERN and the LXC - one framework for four experiemnts
- The number is 3 - you don't need a hundred re-use points
- Can you get 1 less than the numebr of actors
- Make extensible system
- There is a loop that gets you here
- Complicated
- Break down
- Simple
- When you use your core principles, and you use your discernment, you are in the right place
- The process by which we do things is what matters
- It is training and the situation and experience that brings you to the right value
- Lets all take a minute and breathe
- Cauuse that was a lot
- But we're not talking about a small thing - we're talking about changing the way we build and run our businesses
- And it's the work of your entire career - so you've got some time to work on it
- The next step is application - actually doing all of these things in your organization
- Given a long enough application, you will develop your own style - what works, what doesn't, what vocabularty you choose
- While we can't - and wouldn't presume - to tell you how to do it forever
- We can tell you how to start tying all these things together, and gain your first experiences with what it feels like
- Your discernment
- Your experience
- That's what the real active action is
-
You talk about moving risk and complexity to the left and that is where it is in the kata (or tai chi form) as well. The most frequently needed/used moves are at the front, the ornate or specialized moves at the end or on the right.