• Raj Indugula
    Raj Indugula
    Robert Brown
    Robert Brown
    schedule 4 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    “Every line is the perfect length if you don't measure it.”  - Marty Rubin

    So your organization has embarked upon a transformation to be more nimble and responsive by employing the latest tools and thinking in the Agile and DevOps arena.  In this transformational context, how do you know that your initiatives are effective?  Empirical measurements should provide insights on business value flow and delivery efficiency, allowing teams and organizations to see how they are progressing toward achieving their goals, but all too often we find ourselves mired in measurement traps that don't quite provide the right guidance in steering our efforts. 

    Rooted in contemporary thinking and tested in practice, this talk explores the principles of good measurement, what to measure, what not to measure, and enumerates some key metrics to help guide and inform our Agile and DevOps efforts.  If done right, metrics can present a true picture of performance, and any progression, digression of these metrics can drive learning and improvement.  

    It is our hope that this session inspires organizations and teams to start or take a fresh look at implementing a valuable measurement program.

  • Liked Puneet Khanduri
    keyboard_arrow_down

    Diffy : Catching bugs without writing tests

    Puneet Khanduri
    Puneet Khanduri
    schedule 3 months ago
    Sold Out!
    45 mins
    Demonstration
    Beginner

    Diffy is a tool used at Twitter to automatically catch regressions in our backend services before they are deployed to production.

    Diffy is open source and has been adopted into modern continuos deploy workflows by the larger community.

    This talk will cover the fundamental concepts behind Diffy and how its automation helps achieve peace of mind for service owners, devops, and QA folks.

  • Joy Montello
    Joy Montello
    schedule 3 months ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Sixteen years ago the ‘Agile Manifesto’ was written out of a “need for an alternative to documentation driven, heavyweight software development processes”[1]… but since then, the word “agile” has been confused with a synonym for project management, and it seems that teams are struggling to catch up to “modern” overhead in the name of “Agile” instead of having the freedom to focus on delivering value.  

    In this session, using the Merriam-Webster dictionary definition of agility (“marked by ready ability to move with quick easy grace”[2]), we will explore agility in the BI and data space and how it can actually work.  We’ll dive into the product thinking framework we’ve used to help data product and business intelligence teams get clear on their goals and then move toward them with clear focus and low overhead.  I will share the background for our framework (as well as some non tech examples that support our approach) and share some actual examples of how some of our teams have employed it to deliver measurable impact, howe we measure and secrets to BI agility.

    [1] http://agilemanifesto.org/history.html

    [2] http://www.merriam-webster.com/dictionary/agile

  • Liked Pooja Shah
    keyboard_arrow_down

    Release Status Analyser to bring more agility @ work

    Pooja Shah
    Pooja Shah
    schedule 4 months ago
    Sold Out!
    20 mins
    Demonstration
    Advanced

    Problem Statement

    Do you have a lot of automated Tests and so the lot many tests reports to analyse before taking call for release?

    Plot: Any huge impacting micro-service based product/project for which enormous tests have been already automated and your continuous deployment process requires all of those tests in "PASSED" state. Due to high traffic most of the day, releases are deployed at non peak hours. Imagine decided deployment time in production is 5 AM. (The feature and regression testing is done already but there are always some small last minute changes, so it’s better to have a double check on the frozen code to release)

    At 1 am: Final automated sanity checks start executing  

    At 3 am: Get the results, release engineer/ devOps gets notified of the state of the release, she/he looks at CI board and see several green and red builds. He/She now 1 by 1 opens all red builds, clicks on individual reports, console, screenshots....  more red builds- more time to analyse it...

    At 4.30 am: After gathering report on which test failed for what reason & who should be looking at them, she/he calls up respective owners to look out and state the reasons & take a call on the release

    At 5 am: The service owner says "let’s revert my feature to previous version and take the release live"

    Release Engineer again starts searching for files/mails where the last stable version is stored, spending more time again. It’s 6 AM now, she/ he deploys last stable service versions, runs the failed tests -> integration tests ...

    it already 9 AM, wooosh!, time runs really fast. Can't release now, peak traffic time.............

    Do you share the same pain?

    Before giving a +1 for the release, it becomes essential for the QA folks to provide proper feedback as quickly as possible. At the same time assessing n number of reports becomes an additional tedious task. So definitely there should be 1 dashboard which nicely displays the status with transparency and anyone should be able to tell whether release is good to go and if not, then why not. RSA which I have created on top of open-sourced technologies is a small effort towards achieving the same. Will take you through a live demo and discuss on how you can use it to meet your needs.

  • Liked Prasad
    keyboard_arrow_down

    DevOps lead IT Transformation story of an Investment Bank

    Prasad
    Prasad
    schedule 4 months ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Total cost of ownership of the Investment Bank IT portfolio is way too high. Business is also keen in getting high responsiveness from IT. There is high desirability from all stakeholders in changing the way IT work. Based on a value stream analysis, key  aspects that impede speed and value are identified. Common and prominent impediments identified are silo, handovers, local optimization, manual and inefficient software engineering.  Principles and practices of DevOps seems to be an excellent fit for this change. This means new capabilities for IT workforce, new operating model, new way of measuring, new way of aligning with other corporate groups like security etc.  This session is a journey in progress of IT transformation using DevOps as core theme.  Where to begin? What to change? How to create capabilities? How to onboard teams into this wave? How to sustain? Where are we now? Where we want to reach? Lessons learnt?

  • Liked George Dinwiddie
    keyboard_arrow_down

    Evolutionary Anatomy of Test Automation Code

    George Dinwiddie
    George Dinwiddie
    schedule 3 months ago
    Sold Out!
    90 mins
    Workshop
    Intermediate

    Many people agree that one important outcome of Behavior Driven Development is a set of regression tests to demonstrate the desired behavior and ensure that it is maintained over time. Then they often struggle to do so in a manner that remains maintainable as the system and the test code grows larger. Sometimes they even abandon their tests and start over, repeatedly.

    In this session we'll examine the evolutionary history of an application and its test suite. We'll stop at various stages in its life to consider the choices we might make to address growing complexity.

    We'll work using Cucumber-JVM and Java in order to be accessible to a large audience. You can apply these concepts in other languages and test frameworks. Rather than depending on having enough laptops set up, we'll use mob programming to enable everyone's participation.

    If you'd prefer exploring on your own machine, bring your laptop loaded and ready to go.  Clone the code repository from https://github.com/gdinwiddie/EquineHoroscope to get the code and its history.  Unzip http://idiacomputing.com/pub/EquineHoroscopeJars.zip in the same directory for the dependencies.  (Download sample at https://leanpub.com/EvolutionaryAnatomy/ for even more detailed instructions.) I'll be using Eclipse, and the instructions are tuned for that, but you can use any Java IDE.

    Bonus: Participants will receive a coupon for a free e-book on the material.

  • Liked David Laribee
    keyboard_arrow_down

    Testing Strategy: New Model, Better Outcome

    David Laribee
    David Laribee
    schedule 3 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Pyramids? Quadrants? Cupcakes?! There are a wide array of models that describe approaches to test automation strategy and their possible positive (or negative) outcomes.

    In this talk, we’ll survey the landscape of testing models: models that range from technical to product to cultural mindsets, including best practices and anti-patterns. I’ll add detail and nuance to each of these models in the form of professional experience, real world example, and case study. 

    With a new lens, focusing on testing strategy as an act of curation, I'll share a new approach to evolving a testing strategy appropriate for your product development team's specific context.

  • Woody Zuill
    Woody Zuill
    schedule 4 months ago
    Sold Out!
    90 mins
    Workshop
    Intermediate

    Let’s explore the purpose and use of estimates in the management of software development efforts, and consider possible alternatives. We depend on estimates to make important decisions, and yet we’re often disappointed by  the results. Are estimates for cost, time, or effort always needed? Is it possible there are other ways to approach our work?

    The default use of an "estimate-driven" approach is pervasive in software development efforts, and while estimates  can be useful, it is worthwhile to scrutinize our use of estimates for cost, time, and effort, and to seek better ways to manage software development projects.

    There are a number of things to explore and many questions to ask. For example, do we really need estimates for all the things we are currently using them? Are we getting a reasonable benefit from them? Is it possible to manage software development projects without these estimates, or at least with fewer estimates?  Is there a way to prove that estimates are helping us make good decisions?

    In this session we’ll participate in some interactive information gathering exercises to see if we can gain a shared idea of our current understanding of the purpose and use of estimates.  We will examine the nature of software development projects, and see if we can work together to come up with some ideas about alternatives to using estimates.

  • Liked Narayan Raman
    keyboard_arrow_down

    UI Automation Success: Keeping Pace with Product Evolution

    Narayan Raman
    Narayan Raman
    schedule 2 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Team A's application is evolving fast. Team B is switching UI frameworks (jQuery to Angular). Team C is migrating an applet application to web. Team D is extending a web app to mobile. Can automation help in the following scenarios? Ideally it should.

    When applications evolve, test automation code starts failing. If tests are not fixed quickly, automation code becomes stale and the whole suite becomes unusable.

    Changes to applications follow specific patterns. Knowing these patterns helps create automation frameworks which can handle them easily. In this talk, through live examples, we will see various ways in which web applications evolve, how they break automation code, and how we can structure the automation code such that there is minimal change required to accommodate changes.

  • Doc Norton
    Doc Norton
    schedule 3 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.

  • Liked Julian Harty
    keyboard_arrow_down

    Does software testing need to be this way? Tools, approaches and techniques to test more effectively

    Julian Harty
    Julian Harty
    schedule 3 months ago
    Sold Out!
    45 mins
    Talk
    Advanced

    Software development teams recognise testing is relevant and important. Testers want to add value and do purposeful and meaningful work, however software automation is encroaching and in some cases obviating much of the hand-crafted tests - including some of the 'automated tests' created by teams. As Nicholas Carr says in his book The Glass Cage: "Who needs humans anyway?"

    And yet, humans - people - have much to contribute to crafting excellent software, including testing the software. This presentation investigates:

    • leading automation techniques to understand more of what they can offer us in terms of testing our software.
    • how structured testing techniques can help all testers including "exploratory testers"
    • where analytics can help
    • tools, approaches and techniques to help test more effectively
  • Liked Mikhail Advani
    keyboard_arrow_down

    DevOpSec: Rapid Security in the Cloud with AWS and CIS

    Mikhail Advani
    Mikhail Advani
    Rajesh Tamhane
    Rajesh Tamhane
    schedule 4 months ago
    Sold Out!
    20 mins
    Demonstration
    Advanced

    High performance teams are releasing software to production several times a day. This poses a challenge to Ops and infosec who need to have the confidence that  these releases will not lead to a security breach in the infrastructure. DevOpSec or DevSecOps is a discipline where development, operations and  security work collaboratively to achieve security  compliance in agile teams. In this demonstration of our open source project, we show how we used DevOps and security best practices to achieve and test AWS infrastructure.

  • Liked Ankur Sambhar
    keyboard_arrow_down

    Path to Devops: Cloud Native Applications

    Ankur Sambhar
    Ankur Sambhar
    schedule 2 months ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Migration to Cloud is the need of an hour as it brings in the required agility to the way the applications are built and hosted. With ever changing business needs, Cloud enables the agility to deliver high quality software quickly and that too consistently. In the current market scenarios, it provides significant benefits to the organizations to be able to respond swiftly to changing business needs.

    As a seasoned technologist, this talk will be my experience sharing on migrating a business critical enterprise application to be Cloud Native. It will allow me to take you to our journey and share our experiences/learnings on the way about how it brought a change in our mindset while designing the application to be fault tolerant and resilient to failures, what are the processes/tools that worked for us, what are the challenges that we faced and overall what have we actually achieved out of it.

    All in all how it moved us one step closer to DevOps :)

  • Naresh Jain
    Naresh Jain
    schedule 1 month ago
    Sold Out!
    45 mins
    Experience Report
    Advanced

    By working with some of the most successful tech-product companies, I realised that code is NOT an asset, it's a liability. We should strive hard to minimise code. In 2011, when I started to hack on ConfEngine, I questioned my belief in TDD. I had also started playing around with APL style Array-Programming and Functional Programming. I felt, may be, I was getting a bit too dogmatic about TDD and automated tests in-general. As a thought experiment, I decided to build ConfEngine without ANY automated test. At first, it was really scary not to have the safety-net of automated test (something I took for granted for almost a decade.)

    As I scaled ConfEngine without any automated tests, I had certain interesting realisations:

    • How to embrace Simplicity and Minimalism WITHOUT automated tests
    • Why Throwing Away Code frequently helps you achieve a better decoupled-design and how this helps in better experimentation
    • Fear of Refactoring WITHOUT Tests is over-rated (Good IDE and safe-refactoring techniques can take you a long way)

    ConfEngine grew from a pet-project to a 8 member product team. It has over 60K users and has done financial transactions worth over half-million USD. And we continue to push forward without ANY automated tests. Its not perfect, but it has certainly helped me challenge my dogma around TDD.

    Background: In 2001, I stumbled upon the Test Infected paper. For the next 2 years, I struggled to really apply the test-first concept on real projects. Finally in 2003, I felt that I had fully internalised TDD and was able to apply on almost all projects. Then I started playing around with FIT and FitNesse, using ATDD on some of the projects. In 2006 I published "Avatars of TDD" paper in which I explained various styles of TDD and its design implications. Until 2011, I was a very big advocate of TDD, ATDD and BDD. I still like those practices, however I would not recommend it in all projects.

  • David Laribee
    David Laribee
    schedule 3 months ago
    Sold Out!
    480 mins
    Workshop
    Intermediate

    In the early 2000s, eXtreme Programming (XP) introduced agility to software engineers. Contemporary cultural and technical innovations - container technology, distributed version control systems, the proliferation of free and open source software, and the DevOps movement - have significantly expanded our possibilities.

    In this one day, hands-on workshop, we’ll build a modern continuous deployment pipeline based on Git, Jenkins, and Docker. Starting with continuous integration, we’ll practice Git workflows enabling parallel development with pull requests and explicit dependency management through the use of forked repositories. We’ll then extend the ecosystem to support ad-hoc testing environments, multi-versioned deployments, and build promotion. We’ll survey tools and techniques for production deployments touching on Docker Swarm, Google Kubernetes, ChatOps, and emerging tools used in serverless architectures such as Amazon Lambda.

    While technologies change, values and principles continue to guide our choices. We’ll end with reflection and a guided discussion on how core XP values - simplicity, feedback, communication, courage - can serve as a compass for environmental and workflow decisions that impact our customers and teammates.

  • Liked Julian Harty
    keyboard_arrow_down

    Analytics Driven Software Engineering for Mobile Apps

    Julian Harty
    Julian Harty
    schedule 3 months ago
    Sold Out!
    480 mins
    Workshop
    Advanced

    There's little need to work in a vacuum as an isolated developer or team. Our software tools, our apps, and our users all provide information we can use to help us improve our practices and the apps we produce. Some tools provide leading information - that's available and can be applied before we release the app. Other information lags the release of our app to testers and users, we receive the information as the app is being used. 

    The information may help us reflect on our existing work, what went well and what we missed or didn't do quite as well as we'd like to do. We can also use it to improve how we work in future, for instance to test more effectively and efficiently, to learn from production and real world use of our software, etc. We can choose to work faster, increase the value of the feedback we receive, and shorten the feedback cycles so we can iterate faster and more purposefully.

    In this interactive workshop we will be able to investigate and review some of the many and varied tools and sources of information. We will compare information that is easily available with techniques such as implementing and applying mobile analytics and designing automated tests to help us collect high-value, relevant information explicitly. We’ll also investigate the capabilities and tools that are available to developers and those who support mobile apps to harness these tools and the data they provide to refine and improve our testing. We'll also consider automated testing, their sweet-spots and their blindspots.

    In addition to general mobile testing techniques we’ll investigate ways to help decide what to test next and what might survive in the morass of “won’t be tested”. As we learn more about specific aspects of an app, we can further refine the testing and use various analytics and research to improve our testing. There’s plenty of data available to help us improve the testing and even the development of mobile apps if we choose to collect and use it. Privacy and protection of the users is also key and part of being a trustworthy, professional tester so we’ll touch on these topics and how they’re generally designed and implemented in mobile apps.

  • Liked Jez Humble
    keyboard_arrow_down

    Continuous Delivery Sounds Great but it Won't Work Here

    Jez Humble
    Jez Humble
    schedule 3 months ago
    Sold Out!
    45 mins
    Keynote
    Intermediate

    Since the Continuous Delivery book came out in 2010, it's gone from being a controversial idea to a commonplace... until you consider that many people who say they are doing it aren't really, and there are still plenty of places that consider it crazy talk. In this session Jez will present some of the highlights and lowlights of the past six years listening to people explain why continuous delivery won't work, and what he learned in the process.

  • Liked Mitchell Hashimoto
    keyboard_arrow_down

    Towards FutureOps: Stable, Repeatable Environments from Dev to Prod

    Mitchell Hashimoto
    Mitchell Hashimoto
    schedule 2 months ago
    Sold Out!
    45 mins
    Keynote
    Intermediate

    Modern human history is a story of humans inventing new tools to do more with less. "Doing more" has allowed most of us to no longer worry about producing our own food, collecting water, planning long journeys, etc. Instead, we’re able to specialize, buy what we need for less, and to some extent explore ourselves a lot more.

    We're far from done, and of course humanity is far from perfect. In this talk, I’ll show the role that automations and computers play in building a brighter future.

  • Jez Humble
    Jez Humble
    schedule 3 months ago
    Sold Out!
    480 mins
    Workshop
    Intermediate

    Getting software released to users is often a painful, risky, and time-consuming process. The practice of continuous delivery sets out the principles and technical practices that enable rapid, low-risk delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and IT operations, teams can get changes released in a matter of hours—sometimes even minutes—no matter what the size of the product or the complexity of the enterprise environment.

    In this workshop, Jez Humble presents an in-depth guide to the principles and practices behind continuous delivery and the DevOps movement, along with case studies from real companies and ideas to help you adopt continuous delivery and DevOps within your organization. You’ll start by learning the value proposition and the foundations that enable continuous delivery, followed by an introduction to the pattern at the heart of continuous delivery–the deployment pipeline. The training then dives into the key development practices of continuous integration and comprehensive test automation. These lessons cover change management, agile infrastructure management, managing databases, architecture, and the patterns that enable low-risk releases. They conclude by discussing the culture and organizational change patterns of high performing companies. After taking this training, you will understand not just the principles and practices that enable continuous delivery and devops, but also how they are implemented in high performing organizations. With this knowledge you’ll be ready to transform your organization’s software delivery capability to get high quality solutions to market fast, while reducing the risk of the release process.

  • Liked Stanly Lau
    keyboard_arrow_down

    Mentoring technical practices, what works and not

    Stanly Lau
    Stanly Lau
    schedule 3 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Technical practices like refactoring and TDD (Test-Driven Development) have become mainstream in software development. However, software developers I met in many companies are either oblivious or have a different interpretation. My interest is to help developers adopt technical practices and being a mentor has played a big part. Through the years I've tried many ways to maximise the effectiveness of mentee's learning and also brings many challenges and discoveries. In this talk, I'll share the experiments I tried and hope it'll inspire you to help others improve their technical practices.

  • Naresh Jain
    Naresh Jain
    schedule 3 days ago
    Sold Out!
    480 mins
    Tutorial
    Beginner

    As developers, we often shy away from making changes to existing (legacy) code base due to the fear of breaking existing functionality. While we've enough industry wisdom on how to refactor large monolithic applications, its usually hard to find team members, who can champion the cause. For many folks, refactoring code without having automated tests can be scary. And quite often, it ends up being an egg-and-chicken problem, .i.e. to write tests one needs to refactor the code. But to refactor the code, we first need tests. Even if we break the egg-and-chicken problem, where do we start and how do we visualise the progress, becomes a big challenge.

    This hands-on workshop will equip you with the necessary tools, technique and skills to confront legacy code. It teaches you how to use various safe-refactoring strategies, while breaking dependencies and writing first few scaffolding tests to guide your excavation. These techniques are very useful to get existing code safely under test for refactoring. You will also learn how to use these techniques in conjunction with TDD to breathe new life into large existing code bases.