location_city Bengaluru schedule Mar 6th 10:00 AM - 06:00 PM place Plumeria people 33 Interested add_circle_outline Notify

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.

 
 

Outline/Structure of the Workshop

Full Day Hands-On Workshop

Learning Outcome

  • Learn to refactor safely
  • Improve designs via refactoring
  • Practice using refactoring tools effectively
  • Spot typical coding hazards & transform them into safer designs
  • Understand when refactoring to, towards or away from a pattern makes sense
  • Experience refactoring hazardous code & refactoring to patterns
  • Study refactoring strategies and tactics

Target Audience

Programmers with experience in Java, C# or C++. Code exercises will be in Java. Bring Eclipse or IntelliJ IDE.

schedule Submitted 3 years ago

Public Feedback


    • Liked Joshua Kerievsky
      keyboard_arrow_down

      Joshua Kerievsky - Modern Agile

      Joshua Kerievsky
      Joshua Kerievsky
      CEO
      Industrial Logic Inc.
      schedule 3 years ago
      Sold Out!
      45 Mins
      Keynote
      Executive

      Genuine agility is enormously effective in helping us achieve our dreams. The trouble is, Agile has grown into a complex tangle of roles and rituals, frameworks and tools, processes and certifications. We need a return to simplicity. Modern Agile is here to help.

      Designed for people in many domains (not just IT), Modern Agile is defined by four guiding principles:

      • Make People Awesome,
      • Make Safety a Prerequisite,
      • Experiment & Learn Rapidly and
      • Deliver Value Continuously.

      Understanding and deeply practicing these four principles will help you get better results faster.

      In this talk I’ll share how these four principles power world-famous companies and how they can help you work with greater speed, simplicity, safety and success.

    • Liked Joshua Kerievsky
      keyboard_arrow_down

      Joshua Kerievsky - Modern Agile Workshop

      Joshua Kerievsky
      Joshua Kerievsky
      CEO
      Industrial Logic Inc.
      schedule 3 years ago
      Sold Out!
      480 Mins
      Workshop
      Intermediate

      Much has changed since the publishing of the Agile Manifesto in 2001.

      Pioneers and practitioners of lean and agile methods have examined weaknesses and friction points, experimented with simpler approaches, and produced agile processes that are safer, simpler and far more capital efficient. The result is modern agile. It’s values-driven, non-prescriptive and an easier starting point than antiquated agile processes. Modern agile amplifies the values and practices of organizations that have discovered better ways to get awesome results. Are you still cramming low-quality work in the end of each sprint, struggling with growing technical debt, arguing about “definition of done” or frustrated that “management/product never gives us time to do it right?”

      In this 1-day workshop, you will learn to deliver awesome results by

      • experiencing how the four principles of modern agile guide decisions,
      • increasing safety in your culture, code and products,
      • identifying friction points and simplify your process,
      • engage the entire team to continually uncover better ways of working.
    • Alexandra West
      Alexandra West
      Creative Director
      Nerd/Noir
      schedule 3 years ago
      Sold Out!
      90 Mins
      Workshop
      Beginner

      Do strong personalities dominate your development team? Are code reviews painful? Are you blindly following orders from a backlog, or are you learning from observation?

      Visual Thinking Strategies, or VTS, is a cross-disciplinary technique applicable to anyone working in a collaborative setting where observation is key. VTS develops critical thinking skills by viewing and discussing works of art in a group. It is backed by over 30 years of field research showing its effectiveness and accessibility. By allowing individuals to talk about art - without needing a background in the field - VTS advances skills you can use to create more relevant products and stronger teams: Observing, Brainstorming, Speculating, Reasoning with Evidence, Cultivating a Point of View, and Revision & Elaboration.

      During this interactive exercise, we’ll discuss selected works of art as a group. There are no right answers or group consensus being sought. We’re creating an environment and process for looking, thinking, reasoning and revision - skills that are mission-critical to anyone working in a software design or development role. After our group discussion, participants will learn the basics of image selection and facilitating VTS sessions within their own organizations. In addition to the above, we'll cover how VTS can help you and your team with the following: Comfort with Ambiguity, Openness to the Unfamiliar, Civil Debate, and Willingness to Participate in Group Thinking.

    • Liked Vishweshwar Hegde
      keyboard_arrow_down

      Vishweshwar Hegde - Mindfulness: Cultivating Agile Minds

      20 Mins
      Talk
      Intermediate

      Agility starts with Mind. It’s about open, curious, energetic mind constantly looking for doing better things and in better ways. Such Agile Minds manifest in proactively sensing market/customer opportunities/needs early, quickly adopting to changes  to create new value in the changing contexts, continuously learning, exploring & experimenting new things. It requires courage, self-drive and taking people along. If we notice, all these characteristics are distilled in Agile Values & Principles.

      But how to develop Agile Minds? Typically our education system and corporate trainings  are predominantly IQ oriented; whereas Agile Mind is about Emotional Intelligence (EQ) – self awareness, self regulation, self motivation and empathy. EQ is an essential ingredient for a culture of self-organizing, collaboration and servant leadership – which are the tenets of good Agile culture. Mindfulness is a practical & effective toolset to cultivate EQ and create Agile Minds. 

      Being a Mindfulness practitioner, this talk will cover my experiences of consulting & coaching on Mindfulness in organizations driving Enterprise Agility.

    • Liked Woody Zuill
      keyboard_arrow_down

      Woody Zuill - Mob Programming: A Whole Team Approach

      45 Mins
      Talk
      Intermediate

      Mob Programming is a development practice where the whole team works on the same thing, at the same time, in the same space, and on the same computer. It is a whole-team approach to doing all the work the team does including designing, coding, testing, and working with the customers, users and other stakeholders. This is an evolutionary step beyond pair programming and accentuates face-to-face communication, team alignment, collaboration, and self-organizing team concepts of the Agile approach to software development.

      Mob Programming can be a highly effective approach to software development. There are numerous teams doing Mob Programming all over the world, including distributed teams, and there has been a great deal of positive reports of success. Please join me as I share how the concept got started, the benefits, techniques we use, and some of the problems we've faced.

    • Liked George Dinwiddie
      keyboard_arrow_down

      George Dinwiddie - Evolutionary Anatomy of Test Automation Code

      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

      David Laribee - Testing Strategy: New Model, Better Outcome

      David Laribee
      David Laribee
      CEO
      Nerd/Noir
      schedule 3 years 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.

    • Liked David Laribee
      keyboard_arrow_down

      David Laribee - Container-driven Continuous Deployment with Docker, Git, and Jenkins

      David Laribee
      David Laribee
      CEO
      Nerd/Noir
      schedule 3 years 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 David Laribee
      keyboard_arrow_down

      David Laribee - Full Stack, Hands-on TDD with JavaScript

      David Laribee
      David Laribee
      CEO
      Nerd/Noir
      schedule 3 years ago
      Sold Out!
      960 Mins
      Workshop
      Intermediate

      This workshop readies developers for success with Test-Driven Development. Together we’ll take small steps toward working a full, double loop TDD workflow. Over the course of two days attendees gain comfort with the TDD workflow, integrating it with other important practices such as pair programming, source control, emergent design, domain-driven design and lightweight modeling.

      It’s two solid days of intense work — over 60% hands-on, iterative exercises. The rest of the time is a mix of fast, dense lightning talks, case study reviews, chalk-talks and facilitated group discussions.

    • Liked David Laribee
      keyboard_arrow_down

      David Laribee - Effecting Change as a Developer

      David Laribee
      David Laribee
      CEO
      Nerd/Noir
      schedule 3 years ago
      Sold Out!
      45 Mins
      Talk
      Beginner

      As an independent agile coach, I encounter a lot of developers frustrated by their home team culture. The same questions come up time and again: "how do I get my team to adopt XYZ?" This question assumes a solution instead of framing a problem and involving a group in conceiving and developing an answer. With a little conscious work, we can hone our skills as influencers and stop operating from unconscious, unexamined motivations. When we reframe effecting change in this way, our efficacy improves dramatically.

      In this talk, I'll share a mindset for improving effecting change through ethical influence and group involvement. I'll end by sharing a toolbox of simple change tools you can apply to your teams the very next day.