schedule 03:40 PM - 04:25 PM place Legends III

Your app is a unique snowflake. Your tests are too… but they shouldn't be!

You know the person on every project team who cares just a little bit more about testing than everyone else? This talk is a distillation of the lessons learned I've learned from being that guy on dozens of projects.

This is a rapid-fire session that covers 15 systemic problems that plague most teams' test suites, presented form an angle you probably haven't considered before. Best of all, it'll equip you with preventative measures to avoid or mitigate each of them.

 
2 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

This talk breaks the failure modes of testing down into three categories: physical structure, isolation, and feedback. In each category, I cover 5 common failure modes as mini-topics. For each, I'll introduce the problem, explain why it keeps happening, and give advice on how to prevent or mitigate it.

Learning Outcome

The goal of the talk is to multi-tiered. For beginners, it should dramatically broaden their horizons beyond "testing is good" as a binary quality. For intermediate developers, it should give new and specific language for things they're already observing. For advanced developers, it should give them new and creative ways to communicate these problems to their teammates, sparking discussion and giving hope for change.

Target Audience

Anyone who writes or maintains automated tests

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Liked Fred George
    keyboard_arrow_down

    Fred George - Go Faster: Remove the Inhibitors to Innovation

    Fred George
    Fred George
    Consultant
    Fred George Consulting
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Advanced

    A common theme runs through conferences, whether focused on MicroServices, DevOps, Lean Startup, or a myriad of other popular topics: Enabling an organization to Go Faster . I explore the need to go faster (which is hardly new), and three areas inhibitors arise: Technology choices, staid business Processes, and traditional Organization structures and roles. For each, I cite personal experiences in overcoming each.

  • Liked Joshua Kerievsky
    keyboard_arrow_down

    Joshua Kerievsky - The Art of Refactoring

    Joshua Kerievsky
    Joshua Kerievsky
    CEO
    Industrial Logic Inc.
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    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. In this talk, I’ll discuss the value of refactoring, how we practice it safely, when and why we refactor, the power of refactoring tools and when we avoid refactoring.  I’ll be using several real-world examples of refactoring and sharing what I’ve learned about this important practice of the last 20 years.

     

  • Liked Martin Fowler
    keyboard_arrow_down

    Martin Fowler - Software Design in the 21st Century

    Martin Fowler
    Martin Fowler
    Chief Scientist
    ThoughtWorks
    schedule 1 year ago
    Sold Out!
    45 mins
    Keynote
    Beginner

    In the last decade or so we've seen a number of new ideas added to the mix to help us effectively design our software. Patterns help us capture the solutions and rationale for using them. Refactoring allows us to alter the design of a system after the code is written. Agile methods, in particular Extreme Programming, give us a highly iterative and evolutionary approach which is particularly well suited to changing requirements and environments. Martin Fowler has been a leading voice in these techniques and will give a suite of short talks featuring various aspects about his recent thinking about how these and other developments affect our software development.

  • Liked Leena S N
    keyboard_arrow_down

    Leena S N - Deliver with Impact

    45 mins
    Experience Report
    Intermediate

    Many software delivery teams struggle to have a common understanding of "why" a product or feature is being built. The documents such as Project Charter, vision document etc. tries to solve this problem, but it’s common to see such documents exist in the repository, hardly known or read by anyone in the team. And this document rarely gets updated too. Ask your team members what is the goal of the project? You may be surprised to know how many actually know about it.

    This is where Impact Mapping comes into the picture. It is a "Strategic planning technique", defined by Gojko Azdic, explained in the book Impact Mapping. It is a very simple technique based on the idea of "asking the right questions" which are:

    • Why are we building what we are building? 
    • Who are the actors who gets impacted?
    • How do we expect to change the actors’ behavior?
    • What should we do to create the impacts? 

    Fundamental of Impact Mapping is that Impact means a change in behavior of an actor which usually results in a positive impact either by Reduction in the Cost or Improvement in ROI for the business.

    The above questions need to be answered by the entire team [the IT team, the business people and any other stakeholders, if any], and avoids the common anti-patterns:

    • Ad-hoc planning
    • Wrong Assumptions
    • Pet features

     

  • Liked Leena S N
    keyboard_arrow_down

    Leena S N - Merge Hells?? Feature Toggle to the Rescue

    20 mins
    Talk
    Beginner

    Feature branching has been popular for long, but everyone knows about the “merge hell”, a common issue because of long lived branches or infrequent integration. How do you continuously merge, test and release software with great confidence without spending too much time on merging and fixing conflict issues. That is where Mainline development, one of the key practices of Continuous Delivery, comes into picture and Feature Toggle works in conjunction with the same. Feature Toggle [also referred as Feature Flip, Feature Switch, Feature flag] is a technique which allows you to turn on or off a feature through configuration. Feature toggles gives you the flexibility to toggle features in specific environments i.e. turn on a feature in pre-production environments and turn it off the same in production. This also helps to rollback features, as rolling back is as simple as turning off the feature and deploying.

  • Liked Manish Chiniwalar
    keyboard_arrow_down

    Manish Chiniwalar / Kuldip Chakraborty - Make bold decisions and validate them in 5 days

    90 mins
    Talk
    Intermediate

    You have a great idea and you want to get it to existence. How do you proceed?

    You know that the key to successful product startup is:
    1. Building the right product
    2. Moving fast

    Here’s what usually happens:

    • You’ll spend a few weeks getting a better understanding of the Idea.
    • Decide a list of features that needs to go into the product.
    • Visualise the idea by drawing a few sketches and spend few weeks trying get feedback from your expert friends. (Let’s meet at Starbucks… Dinner’s on me!)
    • If you get a good signal, you then are challenged with finding someone to design and build it for you.
    • After a month of searching, you find a friend/agency/freelancer/intern/new-hire.
    • You have a team and an office. You spend the next 3-4 months building the MVP. The product is coming around nicely and you are making sure all details are taken care of… And of course, event tracking! Measure everything.
    • You then release the product into the wild! (Party!)

    It’s now been up to 6 months to a year since you first come up with the idea. Your analytics just doesn’t have enough traffic yet to tell you what’s working and what’s not! You struggle to have a good picture.

    Consider this:
    If we met 6 moths ago, and if I told you, I have a time capsule wherein you can travel through time, to the end of the product development and know how your users will react to your product. Would you take it?
    Of course, you would!

    The time capsule I’m talking about is called the Google Venture’s Design Sprint. It’s a 5-day process to validate critical business assumptions. It uses design thinking and lean startup methods to de-risk your product by better solutions and testing it with 5 real users. At the end of the design sprint, you’ll know what connected with your users and what just didn’t make sense to them.

    This process will save you months and months of time spent in meetings, research, design, coding, marketing.
    5 Days. Monday to Friday. That's it!

  • Liked Manish Chiniwalar
    keyboard_arrow_down

    Manish Chiniwalar - Build the right products through better user research

    20 mins
    Talk
    Intermediate

    The most common objection people have against User Research is, "People don't know what they want" and they go ahead and quote:

    “If I had asked people what they wanted, they would have said faster horses.” ― Henry Ford

    He's right! But, that's the wrong question to ask your users!

    What if you ask instead, "What do you want to get done with your horses?" or just followed it up with a simple "Why?".
    Then people might have told you, "I want to reach the other town faster", "I want to be able to carry more people or more goods", "I want to feel the thrill of speed",...

    Then it's your job to figure out "How Might We move more people faster with minimum maintenance and cost?"

    Let's take another example,
    Bad question:
    You: "Will you brush your teeth at night from tomorrow?"
    User: "Of course, twice a day!"

    People are incredibly optimistic about doing things in the future. A good question would be:
    You: "What does your night routine look like?"
    User: "I have dinner, clean the kitchen, make the bed, Turn on Netflix, switch night lamp on and fall asleep watching House of Cards"

    In this talk, I'll share with you, my learning and experience doing user research.