Agile Dev East 2016 - Architecture - Design
Monday, November 14
Great Product Design with User Story Mapping
Built from index cards or sticky notes, a story map is a simple model, that helps the people who make it envision a customer’s experience with their product. Story maps are a core practice within a design process focused on understanding and building empathy with customers and users and then identifying and testing solutions to improve the customer’s experience with your product or services. Jeff Patton says that design process and story mapping can help you identify completely new product opportunities or improve the existing product experience. Learn how to map...
Creating a Continuous Delivery Pipeline: A Hands-On Workshop
Although continuous delivery (CD) and DevOps are growing in popularity, not much practical information is available about how to get started. This hands-on technical tutorial is the place to get your feet wet and your questions answered. Bring a laptop with the appropriate software installed (see note below), and Ken Mugrage will provide everything else you need for this workshop. You will configure a complete continuous delivery pipeline from source code commit through deployment. Learn when to run each common type of automated test for the fastest possible...
Docker Fundamentals Jumpstart
Docker is a mechanism for low-overhead virtualization that is emerging as a key aspect of DevOps architectures. Interest in Docker—with its lightweight, portable, “build once, configure once, and run anywhere” containers—is growing. Aater Suleman presents and demonstrates best practices, pitfalls, and practical advice from real-world case studies using Docker. Aater discusses basic Docker concepts, Docker terminology, Docker commands, must-know Docker features, and real-world examples of Docker projects. He focuses on eight common use cases and explores the...
Acceptance Test-Driven Development
Defining, understanding, and agreeing on the scope of work to be done is often an area of discomfort for product managers, developers, and quality assurance experts alike. The origin of many items living in our defect tracking systems can be traced to the difficulty of performing these initial activities. Ken Pugh introduces acceptance test-driven development (ATDD), explains why it works, and outlines the different roles team members play in the process. ATDD improves communication among customers, developers, and testers. ATDD has proven to dramatically increase...
Help Retain Knowledge: Increase Engagement to Achieve Learning
Ever walk out of a meeting or training class struggling to remember what was just discussed? Or be annoyed that people request information that you’ve already shared? You are not alone! Leaders struggle with how to create an engaging environment that results in high collaboration and learning. Unfortunately, most leaders start off with the disadvantage of being exposed to practices that recent brain science has proven to be ineffective, such as standing up front in the room and talking with slides for an hour instead of engaging people every 10–20 minutes. In an...
Tuesday, November 15
How to Improve the Mobile User Experience (UX)
Many enterprises are migrating to mobile while new organizations are adopting a mobile-first or mobile-only strategy. Because of the special characteristics of mobile and its user base, usability and the user experience (UX) are of increased importance, especially with SaaS-based business models where users can pay by the month and switch applications in a heartbeat. This is intensified with mobile users who can download another app and try it for free. So you've got about thirty seconds for your users to understand how to use your app and get value. How do you do...
Wednesday, November 16
Lead Teams that Deliver the Goods
In software development—and in many life activities—success often depends on how well we collaborate with our team and our stakeholders. Yet getting a group of people to truly work in partnership—let alone self-organize—is a daunting challenge. And we’re often left with lingering tensions, anxieties, and sub-par performance because teams are made up of people with varying degrees of knowledge, skill, and commitment. Although we need our team focused on delivering a great outcome, sometimes egos, personalities, and agendas get in the way. Andy Kaufman asks you to...
User-Centered Design Using Personas
A failure point in developing useful and usable products are user requirements and expectations—understanding who the users are, their goals, actions, motivations, and pain points. Fadi Khoury explains that user-centered design is a product development methodology based on actual user needs, behaviors, abilities, and perceptions. User-centered design is popular because it offers the most effective path to useful and usable products. Combining this design approach with personas—fictional characters, created to represent the different user types that may use a...
In Their Shoes: Understanding Your Mobile Users’ Point of View
A team’s ability to manage change and match shifting business goals is a major component of successful mobile agile development. To help an organization rise above its competition, especially in today’s digital economy, teams must get apps to market fast—and also delight users. User experiences—and the feedback provided to the world via social media and the app store—pave the way toward a brand’s success or failure. So it’s critical that organizations understand the all-important mobile user point-of-view (POV). Steve Moses describes how to leverage the right mix...
From Ops to DevOps—and Beyond
Join Adam Serediuk on his journey leading change during the transition from IT Ops to DevOps and the driving forces behind making this change. In this non-tool talk, Adam describes the cultural and organizational approaches, challenges, and techniques his company used in establishing successful DevOps teams and their continuing journey toward NoOps. Adam outlines the steps his organization took to reshape its operations and development teams along with the reasons and the opportunities for making those changes—with tradeoffs and benefits. Any IT Ops team trying...
Fear and Loathing in Systems Administration
Harold “Waldo” Grunenwald hears it all the time—DevOps doesn't work. Sometimes it's from people whose “DevOps transformation” consisted of a team rename or from operations people who scoff at the idea of letting development teams deploy to production frequently. Waldo demonstrates why placing the blame on DevOps practices and tooling is missing the point. He offers practical solutions to the problems of historically poor relations between operations and development teams, describes why delegating authority is the path to freedom, and shows why cross-functional...
Agile Requirements—From Breadth to Depth
Requirements elicitation and documentation can be frustrating in an agile process. Some interpret the Agile Manifesto statement “working software over comprehensive documentation” to mean that no requirements documentation is warranted because the code documents the requirements. Others are concerned that if details of requirements are not treated equal to code, they are lost for future program modifications. Ken Pugh does not find this an either-or situation and describes ways to create requirements that are a balance between these two extremes. He shows how to...
DevOps Is More than Dev and Ops: It’s about Tearing Down Walls
The word DevOps is quickly becoming the new Agile—an overused word that has lost its meaning. Cutting through the jargon, Lee Eason gets to the heart of what DevOps means, where it came from, and why it is crucial for your company to embrace it. If you want to deliver on the promise of agile—to improve quality and reduce time to market—you must understand and implement DevOps. Lee shares three mechanisms of change—enablement, mentoring, and coaching—you can use to drive the transformation, as well as key performance indicators to measure your progress along the...
Make Your Continuous Deployment Pipeline as Fast as Possible
Continuous integration (CI) and continuous deployment (CD) have been key to increasing the pace at which development teams can deliver value to the business while keeping quality high. However, many teams are finding that their build pipelines are hard to manage, with builds taking so long that they often halt the development process. Abraham Marin-Perez explores the negative effects of long builds and discusses the most common solutions that organizations apply—many of which involve unfortunate compromises that reduce the benefits of CI/CD. In order to fix this...
Introduction to the Scaled Agile Framework (SAFe)
The Scaled Agile Framework (SAFe) is one of the fastest growing frameworks for large teams doing agile—now second only to Scrum. Scrum helps small collocated teams develop solutions in an agile fashion, and up until now, most teams have had to scale agile for multiple teams and program management on their own. Anthony Crain introduces SAFe, which has quickly become the most popular technique used by very large agile organizations. SAFe targets groups of 50 or more people—and even thousands—on one or several related projects. Anthony assumes you know agile, the...
Evangelize for Your Project, Team, or Cause—No Matter What Role You Play
Whether you’re a developer, tester, ScrumMaster, CTO, or CEO, you know you have to listen to the needs of your customers and team; accept the fact that they are going to change their minds; and respond, adapt, tap dance, iterate, raise your voice, stand up, and delight your audience in order to ship out the best software of your entire life. Can I get a witness?! Jonathan Silva shares evangelizing strategies that can help you inspire at any level—whether a Fortune 500 company or a startup software company. These approaches include developing your point of view,...
Testing Transformation in the IoT Era
In the next few years, when more than 20 billion devices will be connected to the Internet, many of us will be IoT testers—in one way or another. Jennifer Bonine explores new areas you will need to address in your testing, new testing skills for the IoT era, and how to innovate your technology strategies and processes to account for new vulnerabilities. Jennifer addresses current IoT trends that are taking shape and what you need to do to enhance your testing skills—and even your career. She explores the real “game changers”—data security, “things” test labs,...
Transform Organizational Culture for DevOps Success
An organization’s ability to adopt a DevOps approach for software delivery often hinges on a cultural transformation that may be more difficult than technology issues. The keys to success are change supported from the top down, combined with people on the front line who are willing to experiment, fail fast, continuously learn, and openly collaborate in a blameless and fun working environment. When done right, the result is a renewed level of trust between the people involved and the organization they work for. Join Al Wagner as he shares how teams can increase...
Your Agile Team Needs a Therapist
Imagine you’re on an agile development team—and something feels weird. People disagree constantly, and when they finally do agree, no one commits to deliver the solution. Vocal team members dominate the conversation. You don’t trust your teammates. They don’t trust you. This isn’t a team. It’s just a group of people. Does this sound familiar? Because people are people—not interchangeable robots—building high-performing, self-organizing teams takes specific skills and a lot of work. In his experience working with agile teams, Robb Pieper has often taken on the...
Avoid Critical Mobile UX Mistakes
With SaaS-based business models, where users pay by the month and can switch applications in a heartbeat, great user experience (UX) becomes paramount. Mobile intensifies this as users can quickly and easily try another app. You’ve got about thirty seconds for your users to understand how to use your app and get value from it. So, how do you do that? Not with a beautiful UX or “wow factor” but with a UX that works for and speaks to the user, understanding what they want when they want it. Phil Lew outlines key principles for the design and evaluation of usability...
Agile ALM: Using DevOps to Drive Process Improvement
Many organizations struggle to improve their existing IT processes to drive their software and systems development work. This leaves technology managers and teams to use whatever worked for them on the last project, often resulting in a lack of integration and poor communication and collaboration across the organization. Agile application lifecycle management (ALM) is a comprehensive approach to defining development and operations processes that are aligned with agile methodology. Bob Aiello explores how to use DevOps principles and practices to drive the entire...
Thursday, November 17
Solve Everyday IT Problems with DevOps
Some believe that DevOps is only applicable to Internet-based companies with a desire to disrupt existing businesses. On the contrary, DevOps practices can dramatically reduce many everyday IT problems—defects, incidents, waste, bottlenecks, downtime, and infrastructure fragility. Sherry Chang dives into these problem areas and outlines the DevOps tools, practices, culture, and other artifacts necessary to eradicate them. She shares practical tips and hard-learned lessons from Intel IT to arm you with the knowledge and tools you need for DevOps adoption. You and...
Managing Agile Software Projects under Uncertainty
In chasing velocity, we often ignore or don’t understand the uncertainties and associated risks in our processes and their results. Agile is designed to handle uncertainty in requirements as new features are requested and priorities shift. But shouldn’t we also be thinking about and mitigating the uncertainties that are unique or even introduced by using agile? Phil Lew suggests that our problem is that we sometimes carry assumptions which either cause us to spend too much effort on things we can’t control or give us unfounded comfort and reassurance. If we can’t...
Continuous Delivery of Microservices: Patterns and Processes
Tight coupling and interdependence between dev teams slows down development, and environment drift causes deployment problems when promoting applications between environments. The introduction of the microservices architecture expands on the role of SOA by allowing for the looser coupling of endpoints and environments, with more predictability, flexibility, and agility. Anders Wallgren says that microservices have gained attention for their ability to facilitate innovation among dev teams. By architecting applications into sets of smaller services that are more...
Demystifying DevOps: Capital One’s Journey toward Continuous Delivery
Many companies are either talking about DevOps or already working toward adoption. Books and conferences around DevOps abound, and it seems that everyone is hiring DevOps engineers. What impact does adopting DevOps have on a company and its people? What does DevOps look like from the inside out? What does it mean to be a DevOps engineer? What do you need to do and learn to make sure you’re not left behind? Adam Auerbach answers these questions, explains the overall DevOps movement, and discusses how DevOps is driving changes to our organizational culture and...
Optimizing Performance across the DevOps Lifecycle
The world of DevOps moves fast and substantially impacts application development quality, costs, and customer confidence. Giving your operations and development teams an effective performance process from an early stage means quality is a priority throughout the development lifecycle. A “test early and often” approach improves your chances of on time/on budget application release and meeting your customer’s performance and quality expectations. Successful performance across DevOps relies on the use of proper processes, performance tools and solutions, and...
Them’s the Rules: Using a Rules Engine to Wrangle Complexity
When dealing with complicated and ever-growing program conditions brought on by new business requirements, it's easy for what was once a small conditional block of code to grow to evaluating hundreds of unique conditions. Unfortunately, much like kudzu, that bad practice begins to creep into other areas of code. Micah Breedlove says that incorporating a rules engine to handle the conditional logic is a great way to reduce the code smells wafting from a multi-hundred line conditional. Converting the conditional into one small block of code which can retrieve and...
Continuous Integration of Innovation and Quality
High-performing DevOps organizations deploy hundreds of times more frequently than lower performers, so it is no surprise that high performers are known for their innovation and quality. Low-performing DevOps teams fail to achieve continuous delivery due to limitations in their testing process and strategy and thus miss the opportunity to continuously test their ideas and integrate feedback. Stacy Kirk describes how to start or optimize quality in your DevOps lifecycle for continuous delivery of innovative applications. Stacy explains how to foster a culture of...
Take Control! Managing Your Time and Commitments
One of the most consistent concerns expressed by project teams everywhere is: We don’t have enough time! The stress of having too much to do and not enough time to do it is overwhelming. In this interactive session, Andy Kaufman shares practical lessons to help you get a better handle on what it takes to more successfully manage your time and commitments. Topics include understanding the importance of taking care of yourself (including getting more sleep and exercise), factors that drive procrastination (with approaches to overcome them and help you manage your...
Integrate DevOps Release Automation with Cloud and Container Management
Pushing code into Git and continuously building web applications with Jenkins are only the first steps toward a streamlined development workflow and agile delivery. Canary, Blue/Green, feature flag, and rolling update release strategies help teams deploy with confidence and zero downtime. Cloud Container platforms (Kubernetes, Docker Data Center, AWS ECS) provide automated workload scheduling and release capabilities. By automated environment provisioning with Terraform or AWS OpsWorks, teams can rapidly spin-up and tear-down Dev, Test, and production...
Agile at the Intersection of Mobile, Cloud, and the Internet of Things
The Internet of Things (IoT) will be a $1.7 trillion market by 2020. Don MacIntyre explores how agile is being used well beyond traditional software development in the Internet of Things. First, Don dives into how agile is being used today in a wide range of development environments. He discusses cloud-based software-as-a-service, large complex mission critical systems, and both mobile software and hardware. Next, he reviews the IoT, describes how it is disrupting many traditional markets, and shares how traditional device manufacturers are applying agile. Don...
Don't Ask "Can You Hear Me Now?" Start Listening Instead
Most of us believe we are good listeners. However, we often overestimate this skill and are hard-wired to short change it by making assumptions, providing answers, and jumping in when we think we know what people are trying to say. In doing so, we rob ourselves of the chance to encourage growth, build trust and respect, and promote ownership. Listening is about more than hearing the words; it is about tone, body language, and so much more. But wait … listening well can be learned, so join Judith Mills to understand and practice this underutilized skill....
Use the Cloud to Enable Continuous Delivery
As your organization embraces DevOps practices, you may run into bottlenecks trying to find the infrastructure needed to support automated unit tests, load tests, UI tests, CI builds, automated deployments, and other parts of a continuous delivery pipeline. Esteban Garcia shares ways to use the cloud to remove these obstacles and help your team focus on delivering software. Using Microsoft's Azure infrastructure as an example, Esteban shows how you can quickly create a test environment with a web application and a database, and then use those resources to support...