FlowCon is a new conference aimed at supporting organizations that want to create more innovation through continuous delivery and lean product development. The idea is to translate great ideas into things people can use as quickly as possible, and become more responsive to business needs, through agile practices and DevOps culture.
Puppet Labs attended this inaugural conference as a sponsor. We've collected 20 presentations highlighting top ideas discussed at the conference, especially for those creating web applications.
1. Innovation Speed Is the Top Priority
What It Is & How to Get Started
» Smoother deployments.
» Happier teams.
» A more agile business.
The biggest pain point driving companies to adopt agile practices and continuous delivery is their need to deliver innovation to users as quickly and efficiently as they can. For Netflix, doing a great job of recommending the next movie you should watch is more important than consistency of the streaming experience, or even price point. Keeping users engaged and happy by helping them find movies they'll love trumps all other priorities. Netflix can keep a competitive advantage by continuously delivering features to power users while minimizing changes for the laggards who want everything to stay the same.
.@adrianco: "In short, everyone needs to get on top of Agile, continuous delivery, DevOps in order to compete." #flowcon
— Gene Kim (@RealGeneKim) November 1, 2013
2. Businesses Need To Be More Agile
via Creating Flow: An Executive Perspective - Tim Sullivan, Ancenstry.com
More companies are adopting agile practices to respond quickly to business conditions and needs. Changing from the waterfall method of software development to agile practices can be a slow process over many years, because there's no template that works out of the box. Agile is really a philosophy, and has to be adapted to fit each company's workflow and culture.
Even if you can't do continuous deployment you should be doing continuous improvement. #flowconsf
— Josh Meier (@moshjeier) November 1, 2013
3. Iterate Until Awesome
via Inspiring Design Thinking In A Corporate Culture - Catherine Courage, Citrix
The lean startup ethos is "build, measure, learn." It's a very iterative process. The first iteration may completely suck, but it may provide some viable functionality with minimal effort. The idea is to persevere through this process until you end up with something that's awesome.
Continual experimentation is critical. Launch is only the first step, must continue to iterate and engineer success #flowconsf
— Josh Meier (@moshjeier) November 1, 2013
4. Less Waterfall, More Innovation
via A Practical Approach to Large Scale Agile Development - Gary Gruver, Macys.com
It's interesting to see how developers spend their time working within the waterfall model of development compared to working within a more agile framework. There's a lot less upfront planning, and a lot more time available to innovate when working the agile way. Some developers are getting more authority and freedom to become product owners and even root access to servers, but with that power comes great responsibility, such as rotating pager duty.
In context of dev responsibility on owning releases, “you run what you wrote, you get root access AND you get PagerDuty.” @adrianco #flowcon
— Nick Silkey (@filler) November 1, 2013
5. The Before & After of Continuous Delivery
via From Dinosaur to Spaceship: Continuous Delivery at SAP - Darren Hague, SAP Global IT
Jez Humble said the purpose of continuous delivery is to make software release boring and uneventful, rather than a huge event that is enormously stressful for everyone involved. It's about creating a sustainable pace that in the end is more responsive to business needs, but more than anything else improves the quality of life for everyone: developers, IT operations people, managers, and all stakeholders.
“No one ever said I want to go away from stable, boring, small releases & go back to weekend waterfall disasters.” @jezhumble #flowconsf
— Nick Silkey (@filler) November 2, 2013
6. Netflix's Continuous Delivery Feedback Loop
via Velocity and Volume (or Speed Wins) - Adrian Cockcroft, Netflix
Adrian Cockcroft's presentation demonstrated how the OODA (observe, orient, decide, act) feedback loop has evolved over time. He mapped each component to Netflix's webscale cloud architecture. Observing is about keeping tabs on the competition and making sure Netflix stays one step of everyone else through innovation. The company is able to orient to a baseline of success through the process of collecting and analyzing a ton of big-data metrics. The power to make decisions was moved down to the level of developer implementors through a culture of "just do it." And finally, Netflix is able to execute via a continuous deployment infrastructure that runs in the cloud (with most of their code open sourced on GitHub.)
“Cloud native: construct a highly agile and highly available service from ephemeral and _assumed broken_ components.“ @adrianco #flowcon
— Nick Silkey (@filler) November 1, 2013
7. Relative Latency of Different Feedback Loops
via On the Care and Feeding of Feedback Cycles - Elisabeth Hendrickson, Pivotal Labs
Fast and informative feedback loops are essential to the process of lean product development and continuous deployment. Each layer of feedback has increased latency: Automated unit tests are the fastest, and customer opinion of the delivered product is the slowest. These feedback loops are vital because you need to see quickly if your implementation matches your intentions, and whether you are meeting an actual need.
.@testobsessed "If the cost of automating test is too high, then what you have isn't a test prob but a software design failure." #flowconsf
— Eric Shamow (@eshamow) November 1, 2013
8. The Tricky Parts of Continuous Delivery
via Designing Continuous Delivery Into Your Platform - John Simone, Heroku
Web applications have many moving parts, and continuous delivery is sometimes easier said than done. Some of the more painful aspects are around database migrations and the ability to quickly revert a deployment if it introduces a bug or a decreased level of performance.
The easy part: version your code, control your deployments, deploy behind feature flags, favor slow rollouts #flowconsf
— Josh Meier (@moshjeier) November 1, 2013
9. A Bad Canary Example from Netflix
via Velocity and Volume (or Speed Wins) - Adrian Cockcroft, Netflix
Being able to quantify the state of your system across a number of metrics is a key component for pushing out and evaluating a canary test deployment. Above is an example of a Netflix canary with three aspects that go beyond the company's standard deviation. This specific experiment would be rejected, reverted, and then the team would conduct an analysis of what may have gone wrong, with some potential refactoring.
Netflix first deploys canary tests to Europe in the middle of the night during U.S. working hours. Then the team progressively deploys the canary through different regions: Europe, U.S. East, and U.S. West, taking a full day to run it through all regions. Metrics are evaluated only after at least a full day of full load, because sometimes a feature will work at small scale, but fail under peak load.
.@adrianco: "Scale breaks hardware; speed breaks software; Speed At Scale breaks everything" (haha) #flowcon
— Gene Kim (@RealGeneKim) November 1, 2013
10. Things that Should Be in Configuration Management
via Configuration Management: Stability in Your Pipeline - Sascha Bates, Opscode
Configuration management is the baseline for ensuring that your development, staging and production environments are as identical as possible. The less deviation in these environments, the more confidence that you can have that an application that passes tests in the dev and staging environments is ready to deploy into production. It's also a good idea to decouple the environment-specific variables and information listed above from the application code within your configuration management tool of choice.
"The Dev environment is the production of developers." Give it the effort it deserves. @sasha_d #flowcon #configurationmanagement
— Paul Kearney (@pkdotnet) November 1, 2013
11. Six Principles of Kanban
via Balancing Dev Agility with your IT Ops Mission Using Kanban - Dominica DeGrandis, Trainer & Coach
Kanban is a popular agile process that helps your team visualize its workflow, and optimize efficiency by not doing too many tasks at once. It originated with the Toyota Production System as a way to facilitate swarm behavior and remove bottlenecks on a factory production line. Oddly enough, Kanban principles that work so well in manufacturing can also be applied to building software. One example is that the Kanban board radiates information to everyone on the team, and encourages collaboration.
WIP limits introduce necessary stress/tension into an organization #kanban @dominicad @flowconsf
— Dave Mangot (@davemangot) November 1, 2013
12. Product Development Lifecycle
via Won’t be fooled again - Jeff Patton, Agile & Product Design Coach
Jeff Patton says it shouldn't be your goal to just build and ship more stuff. Instead, you should minimize your output while maximizing your impact and outcomes. As a product owner, you should not just look at data. You need to go to where the users are, because you can't get empathy from looking at numbers. Jeff showed some examples of teams that left delivered features on their Kanban board for months until they were able to gather feedback and data from users.
"Requirements is a word that means 'shut up'" and code this instead of asking questions #flowcon
— Greg Wester (@gwestr) November 1, 2013
13. Lean Product Design Principles
via Lean Product Design: Scaling from 6 to 60 - Joe McLean & Natalie Hollier, ThoughtWorks
Working on a team of six people is a lot different from working on a team of 60. Joe McLean and Natalie Hollier walked through a case study of a company that went through different iterations of lean product design as it grew to 10 times its size. While small teams can start easily and move fast with a lot of uncertainty, larger teams feel more pressure to plan; it's harder to implement change when there are more decision makers. One way the company managed to scale was to embed designers with goal-oriented teams, and to use a combination of lean process, lean tools and lean mindset.
If you are a product owner, story acceptance tells your team that you are paying attention. @chemphill @carbonfive #flowconsf #agile
— lane halley (@thinknow) November 1, 2013
14. Five Principles for Design Thinking
via Inspiring Design Thinking In A Corporate Culture - Catherine Courage, Citrix
Design thinking is not about creating buttons, colors and layout. It's about weaving the principles of design into the DNA of your company, and realizing everyone can have an impact on finding ways to add more customer value. It's about cultivating empathy for the pain the user is experiencing, generating creative ideas, and analyzing how well those solutions work.
Courage: "If you're in small company, I urge you to try to make Design Culture; In large company, still try. :)" #flowconsf
— Gene Kim (@RealGeneKim) November 1, 2013
15. A Recommended Lean UX Design Cadence
via Mixing Lean UX and Agile Development - Courtney Hemphill, Carbon Five
Lean user experience is all about doing quick experiments with teams that have diverse roles — for example, developer, designer and product owner. The conflicting perspectives of these different people help challenge a groupthink mentality and generate creative solutions. However long the sprint duration, the goal is to take the path that prioritizes completing a whole deliverable. Check out Courtney Hemphill's slides for more info on some of the user story process and tools that Carbon Five uses in its lean UX workflow.
Protip: Don’t ask for requirements. Instead ask for goals. Reduces shiftiness, ambiguity. People go crazy with requirements. #flowconsf
— Nick Silkey (@filler) November 2, 2013
16. Create a Virtuous Cycle of Hiring
All the tools, techniques and continuous delivery processes in the world won't amount to much if the company is unwilling to change its culture and adopt the new ways. A key element for building a high-performing team that can sustain a high velocity cadence is hiring the right people, and cultivating a culture that's dedicated to continuous improvement. Randy Shoup shares characteristics he's found are vital to creating a Virtuous Cycle of Velocity.
You can't put smart people in a dumb organization to make the organization smarter @royrapoport #flowconsf
— Dave Mangot (@davemangot) November 1, 2013
17. Mind the Tech Diversity Gap
via Programming Diversity - Ashe Dryden, Ruby Developer
Diversity in the tech community is a hot topic, as there are few women and minority-group members in tech, relative to the general population. This is a problem, because the more diversity and differing perspectives on a team, the more creative the solutions that can be generated. FlowCon organizers paid particular attention to including some new voices that haven't been heard before, and Ashe Dryden packed quite a lot of info into her Programming Diversity talk.
Only 3% of OSS contributors are women; so, "We only look at Github profiles when hiring" is a huge primary selection bias. #flowconsf
— J. Paul Reed (@SoberBuildEng) November 1, 2013
18. Top 10 Steps for Refactoring Code
via Therapeutic Refactoring - Katrina Owen, Developer & Instructor
When features are rushed to delivery, there's no time to do it right, so a lot of technical debt accumulates. The way around this is to build time for refactoring into the process of development. Ideally, you perform a series of tests against your code so you can aggressively refactor code while ensuring that functionality is still working. Katrina Owen managed to present 301 slides on refactoring code in 30 minutes, and I took the liberty of aggregating the top 10 areas to start refactoring.
"The thing to do with big ugly code is to break it down into small ugly code." @kytrinyx #flowconsf
— Dominica DeGrandis (@dominicad) November 1, 2013
19. Auditing Trends Are Slowly Catching Up
via Successfully establishing and representing DevOps in an audit - James DeLuccia, Ernst & Young LLP
Advances in the auditing world are trailing behind the maturity of agile software development practices. This means that there is sometimes tension between compliance with various standards and being able to make progress efficiently. James DeLuccia from Ernst & Young LLP offered some tips for how DevOps-friendly organizations can navigate these auditing realms.
.@jdeluccia: "What auditors need: demonstrative evidence that 'control objective' is satisfied to a statistically relevant level #flowconsf
— Gene Kim (@RealGeneKim) November 1, 2013
20. Most Decisions Are Not Made from a Rational Place
via Organizational Change Myths and Patterns for Evangelists - Linda Rising, Author & Queen of Patterns
In her book, Fearless Change, Linda Rising lays out 48 myths for working with other human beings. One interesting insight Rising shared is that most people don't make decisions with the rational mind, and that a lot more emotional, instinctual and subconscious decisions are made than people like to admit. So when you're trying to make change in your organization, feeding your colleagues homemade cookies can be a lot more effective than logical arguments or mustering a lot of facts.
"You don't have to have a good idea. You just have to have good cookies. Quality of cookies beats quality of idea." @RisingLinda #flowconsf
— Nick Silkey (@filler) November 2, 2013
Be sure to check out Gene Kim's live tweet notes, aggregated here.
This was a great inaugural FlowCon conference, nudging the software industry to where it needs to go to be successful in the 21st century.
"Plan for #flowcon is to create a conf to represent how the industry should be not how it currently is" by @jezhumble
— Paul Stack (@stack72) November 1, 2013
Learn More
- Our new ebook makes the case: Continuous delivery is good for people and good for businesses. Download it for free to learn what continuous delivery is and how to get started.
- Don't miss Puppet Labs methodology lead Eric Shamow explaining What Is This Continuous Delivery Thing Anyway?.
- Learn how to bring continuous integration to your software-defined infrastructure.
I noticed that most of the
I noticed that most of the slides for the various talks are available online: http://flowcon.org/flowcon-sanfran-2013/schedule/index.jsp