• Naresh Jain
    Naresh Jain
    schedule 11 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Over the past decade, eXtreme Programming practices like Test-Driven Development (TDD) & Behaviour Driven Developer (BDD), Refactoring, Continuous Integration and Automation have fundamentally changed software development processes and inherently how engineers work. While TDD has seen a great adoption on server side, developers still find it hard to apply TDD for developing UI components.

    In code walk-thru where Naresh will build a web commenting and discussion feature (like Disqus) in React.js, 100% test driven. He will also demonstrate how TDD will help us drive an object-functional design to strike a pragmatic balance between the Object-Oriented and Functional Programming paradigms.

  • Stefan Streichsbier
    Stefan Streichsbier
    schedule 9 months ago
    Sold Out!
    45 mins
    Experience Report
    Beginner

    More and more companies are switching to Agile and DevOps methodologies to enable continuous delivery.

    And while development is becoming faster and faster and new features are released on a daily basis, application security is struggling to keep up.

    For the most part application security seems to be stuck in the dark ages of waterfall.

    In this talk Stefan will discuss a new approach to application security that enables Agile development teams to ship software at DevOps speed. 

  • Liked Fred George
    keyboard_arrow_down

    Go Faster: Remove the Inhibitors to Innovation

    Fred George
    Fred George
    schedule 11 months 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 Justin Searls
    keyboard_arrow_down

    How to Stop Hating your Tests

    Justin Searls
    Justin Searls
    schedule 11 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    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.

  • Gerard Meszaros
    Gerard Meszaros
    schedule 8 months ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    Automated unit testing is commonly considered an essential part of writing reliable, bug-free software. But writing automated tests introduces a number of challenges of its own. Naively-written tests are complex, brittle and hard to understand. This increases their cost-of-ownership and reduces the value they provide.

    In this talk, Gerard Meszaros examines some of the key pitfalls and shows us how to improve the quality of our automated tests. He shows us how we can make our tests shorter, clearer and cheaper to prepare by refactoring a long, complex test into a short easy-to-understand test. Then he goes on to show how we can apply the same concepts to writing new tests quickly and cheaply.

  • Liked Arlo Belshee
    keyboard_arrow_down

    Agile Engineering Fluency

    Arlo Belshee
    Arlo Belshee
    schedule 8 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Every team is different. But there are patterns.

    Do you want to ship your product 50 times per day? What about zero-bug development at low cost? Or live without technical debt? Or learn development skills 25 times faster than industry average? Or base product decisions on real customer data and run low-cost experiments?

    Each of these capabilities is delivered by a well-known technique. However, people doing these techniques often fail to get the desired result. There's a reason: each practice can be done in many different ways, each of which requires different supporting practices. People sloppily lump these very different practices under the same name. For example, I've identified 9 completely different practices that people all call "TDD," and 14 meanings of refactoring.

    In this session, we will explore an engineering practices dependency graph. While each team has a different context, this graph shows their common patterns. Using it, you can identify your team's actual current state, set goals, and chart out a roadmap to get there.

  • Mary Poppendieck
    Mary Poppendieck
    schedule 11 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    You have great software engineers. They work on autonomous product teams that deliver frequently. The products are doing well. But -- there is always a But. Things could be better. Something is frustrating team members or disappointing customers or slowing things down. What is it?

    Friction. No matter how well things are going, there will always be friction. Consumers experience friction when using your product. Friction delays a team's response to a product request. Friction makes the code difficult to change. Differing expectations create friction among team members. Competing goals create friction between teams.

    This talk looks at the most common sources of friction in software systems, and present patterns for reducing friction that can be used again -- and again -- to identify and address points of friction on an on-going basis.

  • Liked Fred George
    keyboard_arrow_down

    Challenges in Implementing MicroServices

    Fred George
    Fred George
    schedule 11 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    MicroService Architectures has debuted on the ThoughtWorks Technology Radar as the first technology they address, and with strong recommendations to immediately experiment. In this talk, we discuss the challenges we have faced at three different companies in implementing MicroServices (successfully!), and the different ways we addressed the challenges.

  • Arlo Belshee
    Arlo Belshee
    schedule 9 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Most people see bugs as a fact of life in software development. Just like city-wide fires used to be taken as a fact of life in urban living. The key to no longer burning cities to the ground was fire prevention, not improved fire fighting. I've applied similar thinking with dozens of teams and shifted to a world in which bugs occur at the same frequency as city-wide fires.
    Let's imagine this world for a moment. These teams don't have:

    • a bug database. They just use a section of the whiteboard.
    • lots of testers.
    • large suites of automated tests. Lots of their code is untested and known bug-free (yes, that is possible).
    • bug triage meetings.
    • large customer support teams or devs handling escalations.
    • problems in operations or large ops teams.
    • story "done-done" criteria or delays in shipping.
    • complex trade-offs in prioritizing stories against each other.
    • lost revenue due to market embarrassment.

    It turns out that most software development activities arise from one source: bugs. They are failure demand, and thus 100% waste. Teams that stop writing bugs get to stop doing these rituals. They spend a lot more time on value delivery and reduce costs across the organization.
    In this talk, I'll show how these teams have stopped writing bugs. We'll discuss the source of bugs and I'll show you how to code differently so that bugs just...don't happen.

  • Joshua Kerievsky
    Joshua Kerievsky
    schedule 11 months 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

    Software Design in the 21st Century

    Martin Fowler
    Martin Fowler
    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 Woody Zuill
    keyboard_arrow_down

    Continuous Discovery: The Power of Pure Agile

    Woody Zuill
    Woody Zuill
    schedule 8 months ago
    Sold Out!
    45 mins
    Talk
    Beginner

    The strength of Agile lies in the simplicity and clarity of the Values and Principles expressed in the Agile Manifesto. It can empower the people doing software development in any organization, and enable us to make rapid strides to the "land of better".

    Software development is an activity of discovery. We must take action to reveal the reality of the problem at hand, the elements of the solution, and to reveal the work that is needed to design and create the software required. This is the process of discovery.

    As leaders, activators, and influencers of change in the companies we work with, it's up to us to understand the philosophy of Agile and how it embraces and empowers the process of discovery.

    I'll share my thinking about "Pure Agile", and how I use it in my daily work to enhance Continuous Discovery, Learning, and Growth in the teams and companies I work with. Let's explore together and discover the path to the future we want to create.

  • Nayan Hajratwala
    Nayan Hajratwala
    schedule 9 months ago
    Sold Out!
    45 mins
    Demonstration
    Beginner

    Are you frustrated by the many trivial examples that show up when you google "refactor legacy code"? How do you translate these examples to your real-world code base? Sometimes it's just easier to give up on the refactoring and increased test coverage, reserving these techniques for the ever elusive greenfield project. To help you with this dilemma, Nayan will walk through a real legacy Java code base, and perform some safe refactorings required to bring the code under test. All of this will be done under the guidance of the Four Rules of Simple Design (Pass the tests, DRY, Reveal intent, Minimize moving parts).

  • Michael Feathers
    Michael Feathers
    schedule 11 months ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    In most systems, code lives forever. Occasionally, we can delete it if we are sure it is not used; however, static path analysis and production monitoring of code usage are often expensive and present inconclusive results. In this talk, Michael Feathers will describe techniques that allow us to generate more certainty around our assessments of feature liveness, and strategies that can be used to remove code that does not have high value.

Sorry, no proposals found under this section.