• Liked George Dinwiddie
    keyboard_arrow_down

    Evolutionary Anatomy of Test Automation Code

    George Dinwiddie
    George Dinwiddie
    schedule 4 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.

  • Woody Zuill
    Woody Zuill
    schedule 5 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.

  • David Laribee
    David Laribee
    schedule 4 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 4 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.

  • Jez Humble
    Jez Humble
    schedule 4 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 Joshua Kerievsky
    keyboard_arrow_down

    The Art of Refactoring

    Joshua Kerievsky
    Joshua Kerievsky
    schedule 4 months ago
    Sold Out!
    480 mins
    Workshop
    Intermediate

    Code that is difficult to understand, hard to modify and challenging to extend is hazardous to developers, users and organizations. Refactoring, or improving the design of existing code, is one of our greatest defenses against such code. Yet many programmers lack formal training in refactoring. Furthermore, management tends to lack knowledge about the value of refactoring. This one-day workshop is designed to address these needs. You’ll learn the art of refactoring safely, when, why and how to refactor hazardous code, strategies and tactics for refactoring, as well as refactoring to patterns. You’ll also learn how refactoring impacts business concerns and vice-versa. Come to this class prepared to code with a pair and a mob as we refactor example code and help you learn the art of refactoring.

Sorry, no proposals found under this section.