Agile2015 has ended

Sign up or log in to bookmark your favorites and sync them to your phone or calendar.

Development Practices & Craftsmanship [clear filter]
Monday, August 3


Beyond Error Handling - Using Design To Prevent Errors (Michael Feathers)
Limited Capacity seats available

It would be easy to say that error handling is a black art in software development but that implies that there is some secret stash of knowledge out there. The truth is that we tend to think of error handling as a "lesser concern." If we know how to throw and catch exceptions, we feel that we are okay.
The fact of the matter is - we aren't okay. Error handling in applications is often a symptom of incomplete design. This workshop will focus on techniques you can use to systematically increase the robustness of code by rooting out potential errors and designing them away.
Attendees should bring laptops with a Java development environment. Attendees should also have reading-level understanding of Ruby code.
Learning Outcomes:
  • Learn a Model for Software Robustness
  • Understand Trusted Cores and Type Tunneling
  • Understand the connection between "Tell, Don't Ask" and Error Propagation
  • Learn Techniques for Reducing Variation at Software Interfaces
  • Acquire Guidance for Exceptions, Null Objects, and Option Types



Author of Working Effectivley with Legacy Code, R7K Research & Conveyance
Michael Feathers is the Founder and Director of R7K Research & Conveyance, a company specializing in software and organization design. Prior to forming R7K, Michael was the Chief Scientist of Obtiva and a consultant with Object Mentor International. Over the past 20 years he has consulted... Read More →

Monday August 3, 2015 14:00 - 15:15
National Harbor 10/11


Abuser Stories: Reduce Software Vulnerabilities by Thinking Like a Criminal (Judy Neher)
Limited Capacity seats available

We all know that User Stories capture goals from the user perspective along with their business value. On the flip side, how can we ensure we've thoroughly examined the ways in which hackers, criminals and adversaries can exploit those stories to get access to our most valuable resources: Our Data!
Abuser stories is a way to capture potential vulnerabilities in software systems, using the standard user story format. While user stories are written from a user perspective, abuser stories are written from an enemy or attacker’s perspective and describe the enemy’s mal-intent and motivation.
The session will look at the concept of Abuser Stories more in-depth. We will examine:
  • How seemingly benign functional user stories can create vulnerabilities in our software, leaving lots of opportunity for our enemies to take advantage of our weaknesses.
  • How to use the concept of abuser stories to shed some light on where these vulnerabilities can be introduced.
  • How to craft a good abuser story.
  • How to craft refutation criteria so that we can determine that the attack depicted by the abuser story is not possible.
  • How to estimate and rank abuser stories.

Learning Outcomes:
  • The participants will take away:
  • * An appreciation for how functional stories can introduce vulnerabilities we may not have thought of before
  • * An understanding between a threat and a vulnerability
  • * A way to capture predictable vulnerabilities that may be introduced into a system while coding features
  • * How to estimate and rank abuser stories in the overall product backlog

avatar for Judy Neher

Judy Neher

President/CEO, Celerity Technical Services, Inc.
Passionate about building highly collaborative, high performing teams.

Monday August 3, 2015 15:45 - 17:00
National Harbor 3
Tuesday, August 4


Open Source Patterns of Cloud Native Architectures (Andrew Clay Shafer, josh long)
Limited Capacity seats available

Mobile and the looming internet of things initiatives are driving organizations to adopt cloud technologies and methodologies as software must be delivered at an ever increasing scale. We've all read 'Release It!' and 'Continuous Delivery', but some things are easier said than done and there is so much to do. Luckily, we live in a time when people have solved common problems and made the solution freely available. In this session, we'll look at the manifestation of ideas like circuit breakers, load balancing, service discovery and other related microservices through the lens of the NetflixOSS and Spring Cloud open source libraries deployed to Cloud Foundry. We'll walk through how cloud native patterns are used to build fault tolerant architectures, can be optimal for continuous delivery, require a technical baseline and finish with a nod to leveraging Conway's Law to design your architecture and your org chart.
Learning Outcomes:
  • basic understanding of cloud native architectures contrasted with last generation enterprise architecture
  • introduction to microservices and prerequisites of managing them
  • basic vocabulary around microservices, continuous delivery, devops, how they fit together and reinforce each other
  • patterns for service discovery, fault tolerance, graceful degradation, identity and horizontal scalability
  • map that list of common cloud native architecture patterns, the problems they are solving and examples using NetflixOSS and Spring Cloud deployed to Cloud Foundry
  • demonstrations and github repos with the code

avatar for Andrew Clay Shafer

Andrew Clay Shafer

Clown Prince, Parvus Captus
we do what we can

Tuesday August 4, 2015 15:45 - 17:00
Chesapeake 1/2/3
Wednesday, August 5


From Zero to Continuous Validated Learning: Lean Startup on PaaS (Chris Sterling)
Limited Capacity seats available

This session will take us on a journey from idea to "validated learning”, implementing an idea and measuring for its expected effect on behavior. Cloud computing, Agile software development, and Lean Startup have all contributed to lowering the cost of learning and accelerating time to market for businesses. Platform as a Service (PaaS) is further accelerating the validated learning cycles in application development to increase successful business outcomes. We will show how to use Cloud Foundry as a PaaS and a Lean Startup approach to take us from zero to a valuable platform that helps us inspect and adapt our business based on validated learning.
  • Using Lean Canvas to identify our first experiment
  • Developing a Landing Page MVP application to run the first experiment
  • Deploying to Cloud Foundry, a Platform as a Service (PaaS), for executing the experiment
  • Measure the results of the experiment
  • Reviewing the Lean Canvas to decide what we need to learn next
  • Use a Blue/Green Deployment approach for updating our application

Learning Outcomes:
  • After this session, participants will take away an approach for validating their own business ideas through fast, focused learning cycles. Software developers will also take away tools and techniques for enabling fast feedback using Cloud Foundry as a PaaS.

avatar for Chris Sterling

Chris Sterling

Product Owner - AppFog, CenturyLink Cloud
Chris Sterling is a Product Owner for AppFog, a public platform to deploy cloud native applications, at CenturyLink Cloud. Chris has an extensive technology, process, and consulting background and brings his experience and deep passion for software development into his daily work... Read More →

Wednesday August 5, 2015 14:00 - 15:15
Chesapeake 10/11/12


Hands-on: Let's save some Legacy Code (Arlo Belshee, Llewellyn Falco)
Limited Capacity seats available

Like everyone else, you have a large product that is hard to work with. We're going to change that in 75 minutes. Together we will save some gnarly legacy code (one thousand-line function). We will start with something hard to read, untested, and possibly buggy. We will finish with code that is stupidly easy to modify. You'll learn 6 trivial techniques that you can apply over and over to fix 95% of the messiest code you have. You can take home this exercise to help the rest of your team learn these techniques. You'll also learn how your team can teach itself a bunch more techniques to handle the other 5%.
We are going to save some legacy code. In 75 minutes. While adding features. We will mob program; you will save this legacy code. We won't introduce any bugs along the way. We will spend the time that you would normally use reading code to instead make it readable. You can apply these techniques and reduce the cost of coding within 48 hours of getting home.
We have done this exercise with dozens of teams. They code differently now. Changing existing code is actually safer and cheaper than writing new code. Their designs get a little better each day. This session will improve your code and show you what skills to learn to gain further improvements.

Learning Outcomes:
  • Know the 6 refactorings required for reading code by refactoring it.
  • Differentiate between refactoring and micro-rewrites (code editing), and choose each where appropriate.
  • Have fluency in the key refactorings with one tool set and know how to spread that fluency to other tools and to broaden the skills within that tool set.
  • Able to start successfully saving legacy code without making major investments, even with no tests.
  • See an obvious path for continuing to learn design and refactoring skills - know where and how to get feedback and can create own curriculum for next 1.5-3 years of improvements.

avatar for Arlo Belshee

Arlo Belshee

Team Craftsman, Legacy Code Mender, and Rabblerouser, Tableau Software
Arlo helps you change cultures in large organizations. He transitions hundreds or thousands of people at a time to full technical and cultural prowess in a way that sticks. More importantly, Arlo gives your company the ability to change its own culture. He seeks to be the last consultant... Read More →
avatar for Llewellyn Falco

Llewellyn Falco

Agile Coach, Spun Labs
Llewellyn Falco is an Agile Technical Coach specializing in Legacy Code and Test Driven Development. He is the creator of the open source testing tool ApprovalTests( www.approvaltests.com ), co-founder of TeachingKidsProgram ( www.teachingkidsprogramming.org ) and a PluralSight a... Read More →

Wednesday August 5, 2015 14:00 - 15:15
National Harbor 13
Thursday, August 6


Complementing Scrum with Technical Excellence for Hyper-productivity (Ron Quartel)
Limited Capacity seats available

“Few implementations of Scrum achieve the hyper productive state for which Scrum was designed (5-10 times normal performance). Those that do all implement variations on XP (eXtreme Programming)” - Jeff Sutherland
Want to go fast? Really fast? Like 5x-10x times faster? Find out how Scrum + XP delivers on this.
The session will start with a lively and interactive exercise which will make it obvious why you need to complement Scrum with eXtreme Programming (XP) and what happens if you don't. The exercise is easily reproducible and you will be able to facilitate it in your own environment to help sell your engineering teams and management on the advantages of taking on these practices.
Learning Outcomes:
  • what XP is
  • how XP integrates with Scrum
  • the what, how and when of refactoring
  • how technical debt is created and how to stop it in it's tracks and remove it
  • how to build an XP team
  • how and why Scrum plus XP achieves hyper-productivity
  • why Scrum without XP can fail you

avatar for Ron Quartel

Ron Quartel

Resourceful Human, Ripl
Untethering the human spirit in the workplace.

Thursday August 6, 2015 09:00 - 10:15
Chesapeake 7/8/9