DevOps East 2017 - Architecture & Design
Monday, November 6
Git and GitHub for Developers and Testers
Skill with Git and GitHub is now a common requirement for jobs because Git is entrenched in the majority of development and operations organizations. Git gives testers unprecedented visibility into the inner workings of software and configuration code. But Git's intricate commands can be confusing. GitHub collaboration and code review capabilities are revolutionary. New rules are needed to avoid frustration. In this hands-on tutorial, Wilson Mar presents material available nowhere else to clarify the structure of tools, repositories, and GUI programs used by the pros. The culmination of...
Service Virtualization for Faster Development and Testing
An agile development mantra—Test early and test continuously—is rapidly becoming the mantra for DevOps as the business demands frequent releases of compelling functionality. As testers, our efforts to “shift left” and support continuous integration with automated (and manual) tests are disrupted by a number of factors. Access to constrained system components is one of the greatest challenges. Research has found that an application under test interacts on average with more than fifty separate components—less than half of which are reliably available when testing. So, how can we ensure that...
Lean/Agile Data-Driven Decisions Demystified
For many agile practitioners, software metrics beyond a burndown chart are little understood or, perhaps, very scary because poor metrics can be worse than no metrics. In this enlightening session, Larry Maccherone explores how you and your organization can use metrics to bring management and lean/agile teams closer rather than allowing metrics to become a wedge that drives them into conflict. Larry covers the entire lifecycle of the metrics process—from metric selection to reporting data. Join Larry to gain an understanding of a wide range of concepts including common (101-level) metrics...
Essential Patterns of Mature Agile Teams
PreviewMany teams have a relatively easy time adopting the tactical aspects of agile methodologies. Usually a few classes, some tools introduction, and a bit of practice lead teams toward a fairly efficient and effective agile adoption. However, these teams often get “stuck” and begin to regress or simply start going through the motions—neither maximizing their agile performance nor delivering as much value as they could. Borrowing from his experience and lean software development methods, Bob Galen examines essential patterns—the thinking models of mature agile teams—so you can model...
Tuesday, November 7
Stop Talking about DevOps: Start Applying Continuous Delivery Practices
DevOps. You think you need it because the market is telling you so, but the market is confused (and self-perpetuating). Agile, continuous delivery, and DevOps all promise the same dream—improved time to market through incremental delivery of quality software. So where should you focus? Max Griffiths begins by distinguishing DevOps from the other approaches and, rather than wrangling new words for old problems, helps refocus how to measure success. How long does it take you to commit and deliver code? Max shows how you can measure this through Value Stream Mapping, a crucial tool used to...
The Architecture of Microservices
Sold Out!Microservices—one of the latest software architecture styles—promises to deliver benefits such as fast and easy deployment, ease of testing, fine-grained scalability, architectural modularity, and high overall agility. Unfortunately, these benefits are coupled with a lot of complexity. In this product-agnostic architecture tutorial, Mark Richards provides you with an understanding of the microservices architecture style and what hybrids and alternatives exist. This helps you make the right architecture and design decisions for your organization. Mark discusses the core concepts of the...
Thinking Inside the Box: Root Cause Analysis with the Six Boxes
Improving business and user value delivery, quality, efficiency, and productivity of your software engineering team is a noble undertaking. However, poor productivity, quality issues, failing to meet commitments, and general team inefficiencies are still commonplace. And at the root of most of these problems? James Waletzky says it is those highly imperfect creatures—humans. To go about fixing the problems, we must discover the root causes, not just the symptoms, and those are not always obvious. In this hands-on tutorial, James focuses on the methodology of Human Performance Improvement (...
Advanced Test Automation in Agile Development
Agile teams are charged with delivering potentially shippable software at the end of each iteration. In fact, some high-performing agile teams with advanced automation can ship working software every day. They achieve regression confidence with extensive automated test suites and other advanced practices. Rob Sabourin shares automation techniques to improve story and feature testing, exploratory testing, and regression testing. Explore ways to fully integrate testing into agile delivery teams by combining test-driven development (TDD) techniques, precise test and tool selection,...
Rethinking Your Retrospectives
The retrospective is the most important ceremony that an agile team performs. Continuous improvement ideas, team health concerns, organizational impediments, and shared wins are brought to light and explored during a retrospective. This is the heart of agile. If you aren’t doing retrospectives, you’re missing an incredible opportunity to collaborate and improve as a team. Learn how to get started with retrospectives and take away solid action items to get this important tool implemented on your team. For those already using retrospectives—but still unsure how to get the most out of them—we...
The Lost Art of Live Communication
Have you ever been in the same room with co-workers and sent them a Slack or text message instead of having a live conversation? Many people are starting to prefer virtual or instant chat messaging to live conversations, but live communication can get better results at work. As technology professionals, we often focus more on technical skills and ignore the important communication skills. Join Jennifer Bonine to see how to make the most of—and get the best results from—your live conversations. Jennifer shares a toolkit to help you assess your core communication competencies and see how you...
Wednesday, November 8
Measure Anything: The Quality, Productivity, Predictability, and Engagement Model
Measuring software development is difficult. Measuring the return on investment (ROI) of complex initiatives (such as adopting agile) is even more difficult. One department at IBM struggled to reduce a list of 150 metrics down to a top twenty to use in consulting engagements. Through the years, nearly every one of Anthony Crain’s clients has asked him for help in proving that their teams were “getting better” at development. Nearly all of their measures were “adoption” measures showing how teams were doing agile. However, none of the metrics was focused on whether the development was...
Why Won’t They Pair?
Do your developers and testers pair—and do it in the best ways? If you can answer yes, then you are among the fortunate ones who have a trusting environment where people have confidence in their work. Unfortunately, a large number of development shops don’t practice pairing in any form. Pair programing was documented in Kent Beck’s book eXtreme Programming Explained, published in 1999. So why is it that eighteen years later many developers and testers do not practice this simple yet effective programming technique? Linda Cook addresses many reasons that people don’t pair. Drawing on...
Leverage Streaming Data in a Microservices Ecosystem
Imagine a world where operational data is continuously flowing from applications and devices at an extremely high rate. Now imagine services intercepting this data and analyzing it real time. Sounds futuristic? It's not—it's here today. Mark Richards describes what streaming architecture is all about—what it is, when to use it, and how to implement it in a microservices ecosystem. Mark describes the overall ecosystem for streaming architecture—including a brief discussion about the differences in Apache Spark, Flink, and Hadoop—and then explains how Apache Kafka works. Using live coding...
My Dad Won’t Buy Me a DevOps
PreviewMany IT managers find themselves banging their heads against a wall trying to get upper management to invest in DevOps. Managers see clear opportunities to implement it into their organizations but get a No from senior executives. Many managers are frustrated that, despite all the blustering in their companies about corporate initiatives for transformation, any attempt to implement improvements peters out quickly. T.j. Randall discusses the various stages of the software release pipeline. He offers a detailed demonstration of how to calculate the cost of each stage and suggests...
Fail Smart, Not Just Fast: Use Failure Mode and Effects Analysis (FMEA)
PreviewYou’re a professional project manager or ScrumMaster. Your software development projects never fail because you follow all the best practices. Right? We all know better. Unfortunately, many projects fail, and they fail due to issues outside the team's control. The reality is that we need to reconsider what failure looks like and plan for it when it happens. Rob Keefer introduces a tool—Failure Mode and Effects Analysis (FMEA)—that has been used in engineering disciplines for many years and successfully applied to software development project management. FMEA shines a light on the...
They Said, We Said: Bridge the Communication Gap with Behavior-Driven Development
PreviewHave you heard that only 36 percent of business features built into software are actually used by end users? And why do we get functionality that fails to work as expected? One of the age-old problems between IT and our clients is that we don’t speak the same language. Sheetal Patel shares her experience of how behavior-driven development (BDD) introduces the bridge of common language that both IT and non-technical, business clients can speak to build the right product. Sheetal explains how collaborating on agile teams with BDD gains a common understanding among developers, testers...
Hands-On Machine Learning Using the R Language
After you hear Stephen Frein's keynote on intelligent software, join him for a hands-on tour of machine learning techniques. Using the free R language and the RStudio IDE, Stephen guides you through a sampling of machine learning techniques and discusses how these techniques can be used for both understanding and prediction. Follow along as he extracts data from online sources and builds machine learning models in real time to predict numeric values, assign classifications, and categorize textual sources of information. Experiment with the demonstrated methods by modifying the code and...
Thursday, November 9
Fundamentals of Docker
Docker seems to be taking the IT world by storm. But why all the excitement about yet another virtual machine technology? Because Docker is much more. Korey Earl says that Docker solves many DevOps challenges including process isolation, build once-deploy anywhere, and automated scaling without the resource overhead that comes with virtual machines. Docker can improve resource utilization, infrastructure agility, and the transition from development to operations, allowing IT organizations to support the business rather than holding it back. Join Korey as he reviews the basics of the Docker...
DevSecOps Manifesto and Process Model for Secure Applications
The bad guys don't break in through the highly secure bank vault door; they attack the crumbly bricks and mortar of the vault walls. The same is true for application security. The vast majority of incidents don't target security features like encryption, authentication, and authorization. Rather, the target is vulnerabilities in the boring, non-secure parts of the code. In many organizations, the security function is still largely thrown-over-the-wall, but things are changing. Larry Maccherone believes we cannot prevent the vast majority of incidents with a bolt-on approach to security. We...
Task-Oriented Unit Testing for Agile and Traditional Projects
Developers are charged with developing software at lightning speed, often using new and unreliable technologies. Rob Sabourin shares a task-oriented method for organizing unit testing to help programmers and other team members get to consistently done working code, testing beyond the code. Rob approaches unit testing from the viewpoint of completing all the technical work required to fulfill a requirement, exercising the entire vertical technology stack and going beyond raw code. Programmers learn when and how unit test design can be implemented blending white box and black box techniques...
Microservices and Docker at Scale: The PB&J of Modern Systems
After predominantly being used in the build/test stage, Docker has matured and is expanding into production deployment. Similarly, microservices are expanding from greenfield web services to use throughout the enterprise as organizations explore ways to decompose their monolithic systems to support faster release cycles. Anders Wallgren says running microservices-based systems in a containerized environment makes a lot of sense—both for build and test, and from a runtime perspective in production. This makes Docker and microservices natural companions, forming the foundation for modern...
Automation Anti-Patterns: Deal with Them
PreviewAutomation is vital to modern testing. But if you listen to what testers complain about, problems with test automation is a recurring theme. We complain about how hard it is to add, run, or change tests. We grumble about how difficult it is to keep up with developers who keep breaking tests and bemoan the number of bugs missed by our automation. Dave Westerveld digs into some of these frustrations and shares real-life examples of automation anti-patterns. These include test bloat and some of the reasons for it, or what happens if we don't leverage automation in the right places....
Databases in a Continuous Integration/Delivery Process
PreviewDevOps is transforming software development with many organizations adopting lean development practices, implementing continuous integration (CI), and performing regular continuous deployment (CD) to their production environments. However, the database is largely ignored and often seen as a bottleneck in the DevOps process. Steve Jones discusses the challenges of database development and why many developers find the database to be an impediment to the CD process. Steve shares the techniques you can use to fit a database into the DevOps process. Learn how to store database code in a...
Design by Discovery to Stop Building Bad Software
Two common situations lead to bad software—the project team isn’t aligned on the problem or the customer isn’t involved in the design process. Either way, you end up with a product that the business didn’t ask for, the tech team struggles to deliver, and customers don’t want. So, how do you increase confidence in the direction of your product and work together to build innovative solutions that bring the business, technology, and customers together? Garren DiPasquale and Matt Wallens introduce, a process to understand business goals and customer needs. It isn’t about designing screens or...
Eliminate Cloud Waste with a Holistic DevOps Strategy
Chris Parlette maintains that renting infrastructure on demand is the most disruptive trend in IT in decades. In 2016, enterprises spent $23B on public cloud IaaS services. By 2020, that figure is expected to reach $65B. The public cloud is now used like a utility, and like any utility, there is waste. Who's responsible for optimizing the infrastructure and reducing wasted expenses? It’s DevOps. The excess expense, known as cloud waste, comprises several interrelated problems: services running when they don't need to be, improperly sized infrastructure, orphaned resources, and shadow IT....
Implement Practical and Proven Encryption Practices
PreviewFrom its earliest times, software development has featured commercial and government-grade encryption libraries. Encryption libraries make it possible for organizations to protect data with the highest level of security. Gene Chorba says that despite a big push in the past few years to use encryption to combat security breaches, lack of expertise among developers and overly complex libraries have led to widespread implementation failures in business applications. Although any developers believe they know how to implement crypto, they haven't had any specific training in...