location_city Bengaluru schedule Oct 15th 03:30 - 05:00 PM place Magnolia

Are you "doing it" the TDD way? Really? Are you getting the results from TDD as you expected? Yes? Great, check out one of the other exciting sessions at this conference.

No? Then: How come? Isn't TDD supposed to be easy? Just do the red-green-refactor dance and all code's gonna be functional plus clean.

Sorry, but I beg to differ. It's not that simple. And there are many reasons for that as I'll show you in this talk.

My main objection is, that TDD as it's commonly explained and demoed, is ignoring the plain and simple reality of problems being of very, very different difficulty. Or have you ever seen a TDD demo beyond the usual code kata exercises like "Fizz Buzz" or "Game of Life"?

Hence in this talk I want to present a bigger picture. I'll classify programming situations according to the Cynefin framework and put TDD in perspective. It will become clear where TDD might be a good fit and why - but also, where TDD is overtaxed.

And since TDD is only a fit for a small subset of problems, of course alternative approaches to test-first programming will be presented.

 
 

Outline/Structure of the Tutorial

  • Of the value of correctness
    • Why test automation?
    • Why test-first development?
    • What does TDD add to test-first?
  • TDD's focus on Pear Programming (no typo!)
  • A framework for assessing problem difficulty
  • Don't play dumb: Informed test-first development
  • If in doubt slow down: TDD as if you meant it
  • Prototypes as first class solutions

Learning Outcome

Attendees will learn why TDD is so hard to get right. And they will get to see what can be done about that. It's not more of the same, but a variety of approaches, because the world is not just simple. And in the end they will see: software development is not about TDD or not, but about getting things done in a systematic and straightforward manner, regardless how you call it. No time for dogma!

Target Audience

Developers, Technical leads, Architects

Prerequisites for Attendees

Experience with automatic testing is helpful. Frustration with TDD is not required, but would stand a chance to be alleviated. But also beginners can benefit from this talk since it's presenting a framework to assess problems and pick the most promising approach to solve them.

schedule Submitted 10 months ago

Public Feedback

comment Suggest improvements to the Speaker

  • Naresh Jain
    Naresh Jain
    Founder
    Xnsio
    schedule 6 months ago
    Sold Out!
    45 Mins
    Demonstration
    Intermediate

    One of the main advantages of a Microservices Architecture is to allow teams to independently build and deploy microservices without having to bundle everything into one release and shipping them together.

    For this to really work, we need a mechanism which ensures that when each microservice is independently deployed, it does not break other dependent services. This is not just limited to microservices. Any two components that depend on each other, need to safeguard themselves against the changes does by dependent components. This could mean changes in the protocol, or response JSON structure or data type or message format or just about anything.

    The real question is how do you ensure this?

    This is one of the core problems contract testing tries to solve by making implicit behavioural and structural properties of a component (service) explicit in the form of an executable spec (contract).

    Come to this session to learn how you can do both Consumer and Producer driven contract tests, that prevent accidentally breaking dependency between 2 components.

  • Liked Adam Tornhill
    keyboard_arrow_down

    Adam Tornhill - Manage Technical Debt in Microservices and Monoliths

    Adam Tornhill
    Adam Tornhill
    Author
    Software Design X-Rays
    schedule 10 months ago
    Sold Out!
    480 Mins
    Workshop
    Intermediate

    Many codebases contain code that is overly complicated, hard to understand, and hence expensive to change and evolve. Prioritizing the technical debt to pay down is a hard problem since there's always a trade-off between improving existing code versus adding new features. In this masterclass, you learn how easily accessible development data let us uncover the technical debt with the highest business impact. The techniques cover both technical and organizational decisions around your codebase, and we cover both traditional architectures as well as microservice architectures where you learn to measure non-code properties like team coupling, system mastery, and detect implicit dependencies between services.

    • Identify the code that's most expensive to maintain amongst millions of lines of code.
    • Put costs on technical debt and assess its delivery impact.
    • Detect architectural decay and learn to control it.
    • Perform architectural analyses of layers and microservices to uncover team coupling and implicit dependencies.
    • Learn refactoring patterns to address technical- and architectural debt.
    • Measure how organizational patterns influence code quality and the link to software architecture.
    • Uncover the social side of your codebase and use data to mitigate off-boarding risks.

    Participants are encouraged to take this opportunity and analyze their own codebases. As part of the workshop, you also get access to CodeScene – a tool that automates the analyses – which we use for the practical exercises. We also look at open-source alternatives, and see how we can use Git itself for data mining; the workshop is not about tools, but rather about the techniques and their applications. This is a new perspective on software development that will change how you view code.

  • Liked Jutta Eckstein
    keyboard_arrow_down

    Jutta Eckstein / John Buck - Beyond KPIs and OKRs: Creating an environment for high-performing, innovative teams that leads to true effectiveness

    480 Mins
    Workshop
    Intermediate

    Too often innovative people in medium to large organizations have the feeling of being in a box - with startling new ideas - and no one really listens. In essence, these innovators are trying to “measure performance upwards.” This upward voice intrinsically measures strategies and customer impact, and applying the concept can significantly improve the overall performance without relying on top down OKRs and KPIs. Moreover, “measuring from above,” tends to measure the output of production rather than the truly important outcome: what is really making a difference for our customers and therefore for our company.

    Adding “measurement from below” to a company can create a mindset that empowers everyone to follow their passion and interest and nourish the company’s effectiveness. Implementing a “from below” approach to measurement involves a fundamental shift that asks the company to synthesize a variety of new approaches. One such synthesis is Beyond Budgeting, Open Space, Sociocracy, and Agile (BOSSA nova). This synthesis enables a company to “measure upwards” without jeopardizing the strengths of “leading downwards.” Fortunately, the implementation can be done in small steps that probe and demonstrate new measurement ideas on a small scale such that the proof cascades beyond the demonstration. This session will enable you to get started on your journey to spreading the idea of upwards measurement company-wide.

    This workshop asks participants to start where they are, explains what it means to probe, and helps them develop strategies and experiments they can use in their own situation to create an environment for high performance that goes beyond what OKRs and KPIs can offer.

  • Liked Gunnar Grosch
    keyboard_arrow_down

    Gunnar Grosch - Performing Chaos in a Serverless World

    Gunnar Grosch
    Gunnar Grosch
    Evangelist and co-founder
    Opsio AB
    schedule 10 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    The principles of chaos engineering have been battle-tested for years using traditional infrastructure and containerized microservices, but how do they work with serverless functions and managed services? In this session we'll cover the motivations behind chaos engineering, how we perform chaos experiments, what some of the common weaknesses we can test for in our serverless applications are and run some actual experiments in a serverless environment. Join as we move from talking about principles to performing real chaos engineering experiments for serverless!

  • Liked Dana Pylayeva
    keyboard_arrow_down

    Dana Pylayeva - DevOps Culture Certified Trainer

    480 Mins
    Workshop
    Intermediate

    Unique opportunity to get trained by the author of one of the most effective DevOps Culture simulation, prepare for DevOps Culture Certified Trainer exam (DCCT) from CertiProf© and gain competitive advantage in DevOps training marketplace.

    First time in India! The latest 2020 version of this popular simulation (ran at 45 conferences in 15 countries).

    This train-the-trainer workshop will prepare you for many successful facilitations of DevOps Culture simulation and give you access to the licensed training material (PowerPoint slides, handouts, flipcharts design etc). You will learn to run effective debriefing with your groups and help them connect learning from the simulation with solutions to the real-life challenges in their organization.

    The simulation is designed for a broad audience, enabling participants to gain the insights into the “Why” and the “What” of the DevOps before jumping into the “How”. Through this powerful role-based simulation, participants experience the benefits of cross-training, learn to eliminate silos, "shift left" on security, adopt systems thinking and practice optimizing the flow of value from business to development and to IT operations.

    Become one of the DCCT holders - DevOps change agents who are able to create the DevOps Culture simulation experience, providing participants with additional insights into taking the next steps to embracing DevOps mindset and leading organizational change. Guide your workshop participants through the experiential discovery of the following practices: optimizing flow, amplifying feedback loop and growing safety culture. Deliver real-life examples from medium to large size organizations, latest findings from the State of DevOps report and key ideas from “The Phoenix Project” by Gene Kim.

    This unique simulation uses cognitive neuroscience principles, game design theory and elements of “Training from the Back of the Room” framework.

    Learn from the game creator, prepare for DCCT exam from CertiProf© (included in your registration) and help make DevOps culture experience accessible to all – business stakeholders, C-level executives, IT management, techies and non-techies alike.

  • Liked Tony Morris
    keyboard_arrow_down

    Tony Morris - Types and Property Tests for Software Resiliency

    Tony Morris
    Tony Morris
    Software Engineer
    Simple Machines
    schedule 7 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    In this talk, we utilise the tools of Functional Programming to provide robust and resilient software components. We start off by defining Functional Programming and investigate how this itself can improve the quality of software. Once we have committed to programming in this style, we explore some of the tools that naturally arise. These tools will be explored using a variety of programming languages, since these techniques are available in many popular programming environments. Some examples will also introduce Haskell syntax.

    1. Using static types to provide a reliable indication of the behaviour of software, including up to proof of correctness. We will use the technique of parametricity to demonstrate this reliability[^1].
    2. Using property-based testing for high coverage testing with minimal programmer effort.
    3. We will also have a look at the trade-offs that are made between types and tests and discuss a reasoning framework on making optimal decisions on when to use each.

    [^1]: Wadler, Philip. "Theorems for free!." FPCA. Vol. 89. No. 4. 1989

  • Liked Devdas Bhagat
    keyboard_arrow_down

    Devdas Bhagat - How Spilgames migrated to the cloud

    Devdas Bhagat
    Devdas Bhagat
    System Architect
    Spil Games
    schedule 10 months ago
    Sold Out!
    45 Mins
    Case Study
    Beginner

    Spilgames went all in to public cloud in 2018. At that point, there were no example of actual migrations, just a number of business studies showing the benefits of public cloud. This talk covers the business reasons of why we went into public cloud, the IT side of the migration including business continuity, refactoring infrastructure, and the state of the systems today

  • Liked Todd Little
    keyboard_arrow_down

    Todd Little - Feedback Loops are the Key to the Learning Mindset

    Todd Little
    Todd Little
    Chairman
    Kanban University
    schedule 10 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    At the core of the agile mindset is learning. Continuous learning is only possible through active feedback loops. Linear approaches do not support learning and are doomed to fail in a world of uncertainty. The key is maintaining healthy feedback loops which incorporate new knowledge which enables learning leading to success. An iterative approach with broken feedback loops is similarly doomed.

    From Todd’s background as a Chemical and Petroleum engineer the idea of feedback and control loops was natural and to a large extent how he got involved in the agile community. Todd will explain the basics of feedback loops and how they can enable agility and learning, or when broken they can destroy agility and enable other behaviors such as organizational politics.

  • Liked Nikhil Barthwal
    keyboard_arrow_down

    Nikhil Barthwal - Implementing Serverless Applications on Kubernetes

    Nikhil Barthwal
    Nikhil Barthwal
    Product Manager
    Google
    schedule 7 months ago
    Sold Out!
    480 Mins
    Workshop
    Intermediate

    This workshop covers Knative, Kubernetes-based open-source platform to deploy and manage modern serverless workloads. It provides a set of middleware components that are essential to build modern, source-centric, and container-based applications that can run anywhere: on-premises, in the cloud, or even in a third-party data center. Knative components are built on Kubernetes and codify the best practices shared by successful real-world Kubernetes-based frameworks.

    Each of the components under the Knative project attempts to identify common patterns and codify the best practices shared by successful real-world Kubernetes-based frameworks and applications. Knative components focus on solving many mundane but difficult tasks such as deploying a container, orchestrating source-to-URL workflows on Kubernetes, routing and managing traffic with blue/green deployment, automatic scaling and sizing workloads based on demand, and binding running services to eventing ecosystems.

    The workshop goes into details of how Knative enables you to focus just on writing interesting code without worrying about the boring but difficult parts of building, deploying, and managing an application. It shows how developers can even use familiar idioms, languages, and frameworks to deploy any workload: functions, applications, or containers. We also touch upon Cloud Run (a managed Knative offering) and software architecture patterns for modern serverless applications.

  • Liked Craig Brown
    keyboard_arrow_down

    Craig Brown - The Puzzle Game | Understanding Agile

    Craig Brown
    Craig Brown
    CEO
    Everest Engineering
    schedule 7 months ago
    Sold Out!
    45 Mins
    Workshop
    Intermediate

    Product managers and software developers often have different ideas of what Agile is and can be. There is also a strong bias in the Agile industry to treading the known territories of the past over innovating and improving towards better.

    In today’s session we play a game that challenges us to think differently about what agile is and can be. We want to show you different ways of working and generate ideas that you can take back to your teams to drive further and better improvements.

    Things you will learn from this session;

    • Is Scrum a best Practice?
    • Are estimates waste?
    • Do we know what value looks like?
    • How does improvement happen on teams?

    We are going to play a game.

    In this game we are going to pitch Scrum teams against other non-scrum teams and see who can do a better job of delivering customer value early and often. Come along and learn something new about how systems and frameworks help or hinder people’s ability to delivery good outcomes.

    Come and join a team. Have fun. Learn something unexpected and be delighted.

    The #NoEstimates movement has been going since about 2011 and challenges us to think differently about planning and estimating, and how we organise teams. In 2013 Chris Chapman invested a game to play that investigates the value of estimates and how they can help or hinder us. This game’s pay-off is wider than estimates though and can teach through experience how systems and frameworks help and hinder us.

    This game dives into how we interact with systems and processes, as well as estimates, and enables us to think differently about how we act within the governing frameworks our workplaces provide us.

  • Liked Craig Brown
    keyboard_arrow_down

    Craig Brown - Collaboration Deep Dive

    Craig Brown
    Craig Brown
    CEO
    Everest Engineering
    schedule 7 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    For the last few years, I have been diving into what Collaboration really means. I have been collecting stories and examples and discovering patterns across our industry.

    In this session, I walk the room through a Collaboration workbook where participants think about Collaboration via a series of different lenses. We will ask ourselves what collaboration means to us, and share our stories of great collaborations we have been a part of.

    I will also share aggregated data from my research and share my own insights.

  • Liked Devdas Bhagat
    keyboard_arrow_down

    Devdas Bhagat - Testing in Production

    Devdas Bhagat
    Devdas Bhagat
    System Architect
    Spil Games
    schedule 7 months ago
    Sold Out!
    45 Mins
    Case Study
    Intermediate

    Modern software keeps getting more complex, and we struggle to keep up with the results. Large scale systems involve significant changes to the way in which we operate software.

    Often, software is not even the final deliverable, it is a market research tool. At any sort of scale, building test systems which mimic production is impossible. Any production system is in a constant state of failure.

    Given those constraints, we must be able to learn from production and respond. This talk will attempt to explain why functional and business-oriented monitoring is just as or even more important than traditional blackbox monitoring. We will see why the traditional DTAP environment/process/culture isn't a good idea for most systems.

  • Liked Tony Morris
    keyboard_arrow_down

    Tony Morris - Functional Programming Deep-Dive with Types and Property-Based Testing

    Tony Morris
    Tony Morris
    Software Engineer
    Simple Machines
    schedule 7 months ago
    Sold Out!
    480 Mins
    Workshop
    Beginner

    This workshop will first introduce Functional Programming concepts using the Haskell programming language syntax and tools.

    We will then present a series of exercises that utilise the static type system of Haskell and with some guidance, solve the exercises. Subsequent exercises will introduce property-based testing using the hedgehog library. Finally, we will tackle some exercises where a trade-off must be considered, and solve those using both types and property-based tests.

    The focus of this workshop will be on introducing the tools for achieving software resiliency and robustness. The techniques learned here may be applied in other programming language environments.

  • Liked Jeff Patton
    keyboard_arrow_down

    Jeff Patton - Passionate Product Ownership: A Certified Scrum Product Ownership Workshop

    Jeff Patton
    Jeff Patton
    Author
    User Story Mapping
    schedule 7 months ago
    Sold Out!
    960 Mins
    Workshop
    Advanced

    Product Ownership is hard! If you're working as a product owner in an Agile team, you already know this is the toughest and most critical role in a successful product organization. If you're a UX practitioner, senior engineer, or marketing professional in your organization, it may seem like adopting Scrum or Agile development has stripped away your ability to contribute as a product decision-maker.

    If you're adopting an Agile approach, your organization may be struggling with bloated backlogs that aren't well understood, stressful planning meetings that last too long and fail to get at details needed to deliver predictably, a nagging feeling that you're building the wrong thing, a lack of time to work with customers and users, chronically late delivery, and frustrated business stakeholders...There's hope!

    The Passionate Product Ownership workshop takes on the bad assumptions and bad practices that often emerge from overly simplistic approaches to agile development and Scrum. Jeff Patton will leverage his past product leadership experience, and years of coaching product teams to teach an effective product ownership strategy.

  • Liked Jacob Singh
    keyboard_arrow_down

    Jacob Singh - Agile Data Governance: Balancing Freedom-to-measure-anything with Consistency and Reliability

    Jacob Singh
    Jacob Singh
    CTO
    Grofers
    schedule 8 months ago
    Sold Out!
    45 Mins
    Case Study
    Intermediate

    How do you allow teams the freedom to pollute the data lake, and protect the security, privacy, sanity and usability of data?

    Giving teams the power to choose what they measure means giving them the power to drive org-wide changes.

    Gatekeeping through Data engineering is too slow and centralized.

    Totally DIY, you can't control costs, privacy or integrity.

    This talk will cover both the organizational and technical structures we use at Grofers to enable agile data governance and analytics in a team of over 300 in tech and analytics.

  • Liked Prima Virani
    keyboard_arrow_down

    Prima Virani - Security Practices for Developers

    Prima Virani
    Prima Virani
    Sr. Security Engineer
    Opendoor Labs
    schedule 9 months ago
    Sold Out!
    45 Mins
    Tutorial
    Intermediate

    Effective organizational security is a shared responsibility and yet, a big number of organizations suffer from testing security issues at the last minute or not at all. In this talk, we discuss secure best coding practices for developers to improve an organization’s security posture.

  • Liked Prima Virani
    keyboard_arrow_down

    Prima Virani - Building Resilient Security Log Pipelines with Chaos

    Prima Virani
    Prima Virani
    Sr. Security Engineer
    Opendoor Labs
    schedule 9 months ago
    Sold Out!
    45 Mins
    Case Study
    Intermediate

    Chaos Engineering is an up and coming method used by SREs for autonomously introducing random failures into a system and measuring whether the service degrades or fails. This talk discusses how security teams can use Chaos Engineering principles to develop, test, and maintain resilient log pipelines.

  • Liked AVINASH SHRIMALI
    keyboard_arrow_down

    AVINASH SHRIMALI - Mangle - Systematically introducing Chaos into your Applications

    90 Mins
    Workshop
    Beginner

    Mangle is an open-source project that enables you to run chaos engineering experiments seamlessly against applications and infrastructure components to assess resiliency and fault tolerance. It is designed to introduce faults with very little pre-configuration and can support any infrastructure that you might have including K8S, Docker, vCenter or any Remote Machine with ssh enabled. With its powerful plugin model, you can define a custom fault of your choice based on a template and run it without building your code from scratch.

    In this hands-on workshop, you will learn how to inject faults on infrastructure and on a running Java application.

  • Liked Ravi Hari
    keyboard_arrow_down

    Ravi Hari - Chaos Engineering in Kubernetes

    Ravi Hari
    Ravi Hari
    Staff Software Engineer
    Intuit
    schedule 5 months ago
    Sold Out!
    20 Mins
    Experience Report
    Beginner

    Chaos Engineering is the discipline of experimenting in a distributed system to identify the weakness in the Architecture and Design of a system which helps in building the resiliency to attain High Availability. Kubernetes being a de facto standard for container deployments and orchestration the applications running on Kubernetes platform should be highly available and resilient to failures.

    In this talk will walk through a real-time use case of how we encountered an issue with Kubernetes platform that impacted applications running on it and we built resiliency for it. With Nodes and Pods being ephemeral in Kubernetes there are high chances for application users/clients to get network connection errors, such as 5xx in case of HTTP requests, when a node restarts or a pod gets terminated and how we resolved it.

    There are many tools available that create chaos in Kubernetes. This talk covers about the need to do chaos engineering in Kubernetes based on the use case discussed and how it can be done.

  • Liked Karen Ferris
    keyboard_arrow_down

    Karen Ferris - Creating a Culture for Innovation

    45 Mins
    Talk
    Intermediate

    This presentation is about building a culture for innovation that enables the design and delivery of great products and experiences to customers.

    Innovation needs to be part of the entire organisational culture – not concentrated in a single person or hidden away in a dedicated office.

    Innovation needs to be everyone’s business.

    This happens when leadership gets out of the way and provides employees autonomy to do something different.

    This happens when failure whilst innovating is not subject to punishment or humiliation because there is an environment of psychological safety.

    Failure is celebrated as an opportunity to learning. Every failure is seen as a step closer to success.

    A culture for innovation is one in which there is recognition that constant change is the norm and embraced as the only way to remain relevant in the era of continual disruption.