Can you maintain agile engineering practices with a distributed team?

Johannes is the Oslo based Chief Scientist for the Sri Lanka based company Exilesoft. In order to promote agile engineering practices, he uses remote pair programming to connect with teams halfway across the world.

In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach. We will also cover the practical parts of remote pair programming, such as tools and setup.

After seeing this talk, the audience should be able to remotely pair with members of their distributed team. They will also get a lot of tips on how to use pair programming effectively in both local and remote settings.

 
 

Outline/structure of the Session

  • What is remote pair programming? (10 minutes)
  • Demo (20 minutes)
  • Discussion: Benefits and costs (15 minutes)

Learning Outcome

After seeing this talk, the audience should be able to remotely pair with members of their distributed team. They will also get a lot of tips on how to use pair programming effectively in both local and remote settings.

Target Audience

Developers and technical managers

Requirements

  • Reliable WLAN or preferably Ethernet with internet connectivity
  • Line out for computer
  • Line in for computer ("mix-minus") (optional)
schedule Submitted 3 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • AgileSattva Consulting LLP
    By AgileSattva Consulting LLP  ~  1 year ago
    reply Reply

    Very interesting and essential topic Johannes! Would like to understand if you would also talk about "Tools" needed for pair programming, and is it technology specific presentation? Is it revolved around "how to" pair program? Very curious to know!

    Deepak

    • Johannes Brodwall
      By Johannes Brodwall  ~  3 years ago
      reply Reply

      Yes, the talk will cover tools and also how to make the communication work better. The tools will not be specific to any one technology.

  • Prashant Sagar
    By Prashant Sagar  ~  3 years ago
    reply Reply

    Looking at the slidedeck it seems like too much of a scene setup initially on explainning "What" and "Why" specially if you are planning to use 20 minutes for a demo. Talk could have really good takeaways for attendees if the focus is on "How".  

    The third part of the process has been described as "Dscussion" - are you planning to open the session to discussion among attendees? If yes, Is it fair to assume you have tried this with large audiences? 

    Cheers

    • Johannes Brodwall
      By Johannes Brodwall  ~  3 years ago
      reply Reply

      Hi Prashant. The slides are from a 75 minutes version of the talk and will be changed for Agile India. I will cover the "how" in two ways: The technical how is surprisingly easy, but will be covered many times. The interaction "how" will be covered in the discussion with the audience. I've done this sort of discussions with audiences up to about 100 participants (40-50 for this particular talk) and don't worry about even larger ones.

  • Savita Pahuja
    By Savita Pahuja  ~  3 years ago
    reply Reply

    Curious to know more details about how to do it and suitable pairs. Is it simple desktop sharing through sharing tools or something else. Can we put it under Offshore/Distributed Agile theme.

    • Johannes Brodwall
      By Johannes Brodwall  ~  3 years ago
      reply Reply

      Yes, I guess Offshore/distributed is a better fit.

      Yes, I will cover tools etc.

      I've updated the description to reflect this. :-)

      • Savita Pahuja
        By Savita Pahuja  ~  3 years ago
        reply Reply

        Thanks Johannes.


  • Liked Archana Joshi
    keyboard_arrow_down

    Applying Agile Principles in Primary School Education: An experience

    Archana Joshi
    Archana Joshi
    schedule 3 years ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    An important issue that has plagued the Indian sub-continent is that of education and more importantly primary education. Since past few months, my weekends are usually occupied in teaching English classes to underprivileged children from 5th grade at a government primary school. As an Agile coach and a practitioner I was drawn towards unifying the concepts of Agile to help increase the quality of education.

     

    As a teacher, I was given a set of high level goal by the school administrator that needs to be accomplished every quarter. My goals for the first quarter were :

    • > Kids should be able to identify basic words
    • > Form short sentences.
    • > Converse reasonably in English

     

    I started with the traditional chalk and blackboard style of teaching focusing on the spellings, grammar, sentences, reading and so on. In initial few sessions, I quickly realized that it took too long for the kids to understand and so was not yielding the desired results. Some of the problems were like

    • > Too much focus on semantics and grammar
    • > Kids not opening up in the class room
    • > Only able to read words but not talk or frame sentences

     

    This is where I had to reflect and consider course correction in my style of teaching and Agile came to my rescue. This is a talk which highlights how Agile techniques were applied in teaching kids effectively.

     

     

  • Liked Karthik Sirasanagandla
    keyboard_arrow_down

    When Agile becomes Fr-agile..learn your lessons the fun way!

    Karthik Sirasanagandla
    Karthik Sirasanagandla
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate
    So you have heard of "Code Smells". Did you hear of "Agile Smells"? Yes or No; then this session is for you (us).
     
    In this session, Karthik intends to talk about the very many things that go wrong in companies that attempt to be or become Agile.
    But fault-finding is the easiest thing. Can Karthik provide concrete solutions? Yepp, he intends to share the solutions as well for most if not all the problems.
    And in same breadth seeks to know what others has to offer from their experience.
     
    Piquing your interest? Are you wanting to get a taste of some of the Agile smells? Below are some of them:
    * Belated Stand-ups
    * Non-participative stand-ups
    * War-zone Retrospectives 
    * Unfruitful Sprint planning meeting
    * Zero-Test development
    * Inverted Test Pyramid development
    * Gate-keeper QAs
    * Hierarchical Roles
    * Velocity Driven Development
     
  • Liked Sreerupa Sen
    keyboard_arrow_down

    Changing our Rhythm: Our Ongoing Journey towards Continuous Delivery

    Sreerupa Sen
    Sreerupa Sen
    schedule 3 years ago
    Sold Out!
    20 mins
    Experience Report
    Beginner

    Annual software release cycles cramping the agility of the team? Too many hot fixes reducing the efficiency of your organization? Customers waiting impatientlyfor  the next cool features hot off the press? These are some of the painful and common problems faced by development teams worldwide. In today's world, most things get outdated or out-of-fashion very fast - and software is no different. Users cannot afford to wait for the next cool set of features for a year. They want a steady stream of cool new features that they can adopt and use immediately.

    My team follows a development model that we like to call Open Commercial Development - where we're always connected to our stakeholders, our plans are out in the open, and we're always gathering feedback and reprioritizing. We used to have yearly releases of our product - a sort of big bang release with a host of new featres. Based on our stakeholder interactions, however, we figured that our software delivery wasn't agile enough for our customers. Users wanted new features incrementally throughout the year. They especially didn't want to wait a year for a feature that they'd requested that was critical for their business.

    So began our journey to Continuous Delivery - an interesting one for sure. It's not easy to deliver new features, manage technical debt, collaborate with users and incorporate their feedback into the new features - once every quarter. To do it consistently, with quality and on time, you need to have a framework in place - a combination of planning, process, automation and team organization - that lets teams focus on the right things to get to DONE DONE for their new features, and at the same time manage their quality and tecnical debt. Over the past year, we like to think that we've put that framework in place, and that is what I'd like to talk about in this session.

  • Liked Giovanni Asproni
    keyboard_arrow_down

    Methodology Patterns: a Different Approach to Create a Methodology for Your Project

    Giovanni Asproni
    Giovanni Asproni
    schedule 3 years ago
    Sold Out!
    90 mins
    Tutorial
    Advanced

    In the software world we have been looking for “The Methodology” to solve our software development sorrows for quite a while. We started with Waterfall, then Spiral, Evo, RUP and, more recently with XP, Scrum, Kanban, DAD, SAFe (there are many others, but, their impact, so far, has been limited).

    In this tutorial, I'll show why this search for the holy grail is bound to fail--each methodology has strenghts and weaknesses that make it suitable only in some contexts--and I'll describe a different approach based on patterns and pattern languages, that teams can use to create their own methodologies to suit their specific needs, which, in my experience, has a higher chance of success. 

    The approach is based on the observation that all the practices used in all modern methodologies--e.g., user stories, use cases, team self organization, TDD, unit testing, acceptance testing, continuous integration, iterative and incremental development, etc.--come from the same set. Different methodologies just mix and match them differently. All those practices can (and many have already been) described as patterns whose relationships with each other form a set of pattern languages.

  • Liked Colin O'Neill
    keyboard_arrow_down

    Achieving Enterprise Agility with the Scaled Agile Framework...and Have Fun Doing It!

    Colin O'Neill
    Colin O'Neill
    schedule 3 years ago
    Sold Out!
    90 mins
    Tutorial
    Intermediate

    Scrum, XP, Kanban and related methods have been proven to provide step changes in productivity and quality for software teams. However, these methods do not have the native constructs necessary to scale to the enterprise. What the industry desperately needs is a solution that moves from a set of simplistic, disparate, development-centric methods, to a scalable, unified approach that addresses the complex constructs and additional stakeholders in the organization—and enables realization of enterprise-class product or service initiatives via aligned and cooperative solution development.

  • Dipesh Pala
    Dipesh Pala
    schedule 3 years ago
    Sold Out!
    90 mins
    Talk
    Intermediate

    Breaking up User Stories can sometimes be as painful as a relationship break up - but it does not have to be like that!

    Our experience has shown us that the key to getting full benefit from introducing Agile is in how the project work is broken up. When it gets difficult to see how to write small enough user stories, teams often resort to technical story cards. While this can give the team visibility of the work that is being done, the business is not seeing potentially implementable product, or early delivery of business value.

    This talk will dig a lot deeper to expose the real reasons for splitting up user stories and not just talk about doing it as a good practice - we must BE Agile not just DO Agile!

    Using real-world examples, this talk will also offer a set of guidelines and some unconventional ways for breaking up larger chunks of work into valuable user stories that can help Agile teams become more successful.

  • Liked Naresh Jain
    keyboard_arrow_down

    Scaling XP Practices inside your organization using Train-the-Trainer Model

    Naresh Jain
    Naresh Jain
    schedule 3 years ago
    Sold Out!
    90 mins
    Workshop
    Advanced

    How do you effectively scale skill-based, quality training across your organization?

    Over the years, I've experimented with different ideas/models to scaling skill-based training across an organization. In the last 4 years, I've pretty much settled down on the following model. Its very useful when mentoring teams on skills like Test-Drive-Development (TDD), Behavior-Driven Development (BDD), Product Discovery, Writing User Stories, Evolutionary Design, Design Patterns, Problem Solving, etc. I've successfully implemented this model at some very prominent fortune 500 enterprises.

    The goal of this workshop is to explore what other successful models organized have used to scale skill-based training in their organization.

  • Liked Shashank Teotia
    keyboard_arrow_down

    TDD and CI - closing the agile loop over system programming using Go (golang)

    Shashank Teotia
    Shashank Teotia
    schedule 3 years ago
    Sold Out!
    90 mins
    Demonstration
    Advanced

    With Google Go becoming more popular and accepted, it becomes important for us to know the right framework to apply for adopting a TDD and CI approach to writing application written in Go. Especially, when we are talking in the context of writing software which interfaces with system drivers and services.


    We will also look at how we can create a build pipeline to run automated tests and continuously integrate into a packaged software.


    Other programming environments, have achieved a good level of maturity with tools for writing tests. I will present how we adapted our learnings in such environments into development in golang.

  • Liked Amoli Upadhye
    keyboard_arrow_down

    Scale up Agile - Cheers to complex, systems integration mega - projects!

    Amoli Upadhye
    Amoli Upadhye
    schedule 3 years ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Large systems integration projects form a large majority in typical corporate IT departments. With growing agile methodology adoption and its proven success rate in small / mid – sized projects there is a strong interest in case studies where teams have scaled Agile for XL size project execution

    Such large integration projects warrant natural complexities and teams rely on scaling existing agile practices to be able to up their game. As these projects are high risk / high value candidates, it is critical that project teams deliver them smoothly while rallying various stakeholders involved.

    This session would describe how agile principles can be elastic enough to help teams achieve just that!

    It describes exactly which agile principles have helped me (more than others) to influence my Product Owner-ship on my big, fat COTS application product tied to many upstream / downstream systems and even more stakeholders

  • Liked Vibhu Srinivasan
    keyboard_arrow_down

    Coding with Geeks- De Code the secrets behind TDD, BDD and ATDD

    Vibhu Srinivasan
    Vibhu Srinivasan
    schedule 3 years ago
    Sold Out!
    90 mins
    Tutorial
    Intermediate

    This session is a coding sessiont that takes a problem and shows clearly what is the difference between TDD, ATDD and BDD. Ths session uses code for the server layer as well as UI layer.

    This session is not for you if you do not code. If you do code, please bring your laptop as we delve into the details of all these styles of programming techniques.

    We will rotate between ATTD, TDD and BDD periodically and show it at use in different layers. This session will be using Java , Rails, Scala and C# together so that you can see how you can benefit do these techniques even when coding in different languages.

    We look at common pitfalls and wrong beliefs that programmers have when it comes to these concepts

    This session is purely keyboard and you will have to bring a laptop.

  • Aruni Siriwardene
    Aruni Siriwardene
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    A traditional software development project entails specifics around elements in or out of scope, tied up to deliverables, all ensconced within specified estimates and timelines, subjected to legal clauses for everything from acceptance to indemnities. For Agile contracts, the boundaries of legal intervention must stand; merely due to the marriage of parties when a project is executed; the definitions of boundaries must be established be it scope, budget or timeline and all standard deliverables from a traditional project stands; yet, the execution is as diverse as chalk and cheese.

    What are the key criteria to be aware of when we define Agile contracts; as in typical agile projects, should the client be involved in mutually drafting the contract? How much legal intervention can we allow? What happens to deliverables and expenses when delays occur and scope boundaries are reduced? Can blame be apportioned to an extent that each party will have to indemnify themselves?

    An Agile contract needs to reflect the nature of the engagement; no template contract with standard clauses can be coaxed upon a true agile project. In line with the Agile principles and values and targeted to the agile manifesto; Agile contracts should be just that – Agile!

  • Liked Daniel Zen
    keyboard_arrow_down

    Agile Engineering Javascript with Jasmine & AngularJS, Karma & Jenkins

    Daniel Zen
    Daniel Zen
    schedule 3 years ago
    Sold Out!
    90 mins
    Tutorial
    Intermediate

    Agile & Test Driven Development of frontend JavaScript User Interface code is often passed over using the excuse that the UI code is "declarative" (What you see is what you get) and therefore does not 'need' to be tested. Others, will dismiss testing frontend AJAX code as too difficult to maintain or unnecessary because it is only important in context with the server. We will show how these misconceptions are false. 

    We will cover several popular JavaScript tools and technologies that make Agile frontend web development easy. We will show how these front end technologies cannot only be functionally tested, but Unit Tested. If time is available will cover Continuous Integration, Dependency Injection, & Mock objects.  

    By including your front-end code in your automated testing process you can prevent the inclusion of bugs that are usually only caught with manual testing.

  • Sharad Julka
    Sharad Julka
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    -Open Source development depends a lot on community, their feedback,

    their suggestions, their reviews and their enthusiasm.

    -For an open source development project, the community itself is the first customer.

    -Product release for the community provides a good starting point to assess

    how the product will be accepted in the market.

    -This is very beneficial as it gives the software development team an edge over

    its competitors as it gets the pulse of the customer

    -In many ways the open source development has the culture similar to that of

    an Agile enterprise.

    -The principles guiding open source development are similar to Agile principles

    -The session presents views on above as well as how open source development projects employ agile for

    both the community development and for their own licensed version of the software.

  • Naresh Jain
    Naresh Jain
    schedule 3 years ago
    Sold Out!
    45 mins
    Demonstration
    Intermediate

    "Release Early, Release Often" is a proven mantra and many companies have taken this one step further by releasing products to real users with every commit a.k.a Continuous Deployment (CD).

    Over the years, I've built many web/infrastructure products, where we've effectively practiced CD. However at Edventure Labs, when we started building iPad games, we realized there was no easy was to practice CD, esp. given the fact that Apple review takes a few days.

    Our main question was: As mobile app developers, how should we architect/design our apps for CD?

    We were a young startup, learning new behavior about our users (kids aged 5-8) everyday. We could not afford any delay in releasing latest, greatest features to our users. To solve this problem, I believe we've built an innovative solution to enable any mobile app developer to achieve CD.

    If you are building real products, which have platform/3rd-party dependencies and you want to practice CD, this session is for you.

  • Aruna Rajapaksha
    Aruna Rajapaksha
    schedule 3 years ago
    Sold Out!
    20 mins
    Experience Report
    Intermediate

    Pair testing with onshore team members enrich the quality outcome and naturally transfer the domain knowledge to offshore teams effortlessly. This practice helps to sustain clients by providing superior quality outcome for their investments.

    Best practices of distributed testing, modern tools and technologies for communication, mitigating cultural gaps, language barriers and time zone differences are subjects itself to discuss in detail.

  • Liked Pramod Sadalage
    keyboard_arrow_down

    Ten Patterns of Database Refactoring

    Pramod Sadalage
    Pramod Sadalage
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Over the life of an application as requirements change, application usage patterns alter, load and performance changes the need to change database and database architecture is inevitable. There are patterns of these changes such as

    1. 1. Encapsulate Table with View
    2. 2. Migrate method from database
    3. 3. Replace method with views
    4. 4. Introduce Read only table
    5. 5. Split table
    6. 6. Make column non-nullable
    7. 7. Drop column
    8. 8. Add foreign key constaint
    9. 9. Merge columns
    10. 10. Replace columns

    In this talk we will discuss the above database refactoring patterns and different implementation techniques to enable blue, green deployments, allow for legacy applications to work with fast changing database and enable the teams to effectively refactor the database to fulfill the changing needs of the organization.

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Kicking off agile remote teams

    Johannes Brodwall
    Johannes Brodwall
    schedule 3 years ago
    Sold Out!
    90 mins
    Workshop
    Beginner

    So your project is just getting started. Or maybe you're just about to embark on a new release. Or new members just joined the team. What now?

    In either situation, your project will have a lot of energy and attention right now. But at the same time, there's probably a lot of uncertainty about what to do first. Many projects waste this valuable time without a clear plan or purpose. In Exilesoft, we have refined activities to deal with these problems, even with the additional constraint that the team may be distributed geographically.

    In this workshop, we share a typical plan of what activities to do every day in the first weeks together with a set of activities which yeld tangible results in terms of team building, vision, architecture and a coherent working system in a minimum of time. Participants will get a chance to practice the skills as well with several interactive exercises.

  • Liked Johannes Brodwall
    keyboard_arrow_down

    Practice agile programming with coding dojo

    Johannes Brodwall
    Johannes Brodwall
    Buddhima w.wickramasinghe.
    Buddhima w.wickramasinghe.
    schedule 3 years ago
    Sold Out!
    90 mins
    Workshop
    Beginner

    A Coding Dojo is a fun and social way to become a better programmer. Johannes is an experienced coding coach who will guide you through a few hours of programming that will transform your understand your craft and yourself as a programmer. In the workshop you get to try out pair programming, test-driven development and continuous refactoring for yourself and you get lots of recommendations on how to improve your coding and testing. You will need to bring your own computer with a development environment of your choice. Recommended for Java, Ruby, JavaScript and C# developers.

    This is what previous participants say about the workshop:

    • What did you learn? New tools, pair programming and fun exercises; Ide tricks, programming language basics, testing tools, using tests as a reasoning tool; you can comfortably pair with strangers.
    • What surprised you? Small steps work better than planning; It's easy to get started when you pair program; Pair programming is nice
    • What do you plan to do next? Using TDD every day; Listen to partner more carefully - he may already have solved the problem.
  • Liked Johannes Brodwall
    keyboard_arrow_down

    Bare-Knuckle Web Development

    Johannes Brodwall
    Johannes Brodwall
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Can you go faster with less weight?

    We have all learned the benefit of reusing application servers like JBoss, ORMs like NHibernate or dependency injection frameworks like Spring that "solve all the plumbing code for you", but how real are these benefits really? Most developers struggle using techniques like test-driven development and refactoring effectively in their day to day project. Many developers spend a majority of their day finding out which magic incantations will make your framework solve your requirement.

    Yes, frameworks probably will reduce the size of your code base. But will their reduce the time it takes to develop that code base? And perhaps even more pressingly: How certain are your estimates when you know that a the majority of your work is to find out exactly which few lines of code you need to change by debugging, reading documentation and searching for answers on stack overflow?

    When I was first learning math, my dad told me that I didn't to use a calculator before I could do the math without it. In the same tradition, this talk builds on the premise that you shouldn't use a framework that you can't do without: I will create, live, a realistic web application without generators, without frameworks and without bullshit. Instead, I will use test-driven development to ensure steady progress to a solution with no magic.

  • Liked Anuradha Gajanayaka
    keyboard_arrow_down

    Convincing Agile Estimation to a non-Agile Project board

    Anuradha Gajanayaka
    Anuradha Gajanayaka
    schedule 3 years ago
    Sold Out!
    20 mins
    Case Study
    Intermediate

    Software development estimates are considered to be evil. If you have attended Agile India 2013 you know what I’m talking about! Both we use user stories and points or Gantt chat and hours, we have never discovered that magical formula for the right estimation.

    But is it something you dare to tell your project board?

    The bad news is that the software industry may not be able to forgone Estimate for a foreseeable future. The good news is that agile estimation techniques provides some kind of balance between need for estimates and inability to predict future.

    Still, our Agile Estimates can be really challenging when the receiving partly has no clue about Agile Software Development, specially the customers, members of project control boards and senior management.

    In this case study, I would like to draw the experience on how we used certain techniques and invented some tools to convince a non-Agile, traditional project board to use Agile Estimates.