XP Conference 2016 Schedule


For workshops you need to install the required software enlisted for a given workshop. Please click on the topic to read the abstract and software requirements for each workshop. We request all participants to have the required software installed. Arrive early for the session of your choice as rooms tend to fill out fast!

Download the Agenda here

  • Keynotes
    9.00 AM - 10 AM
    Hyper Agile, Well-oiled Execution of Software Development, By Ajay Srivastava, Head of Technology, OYO Rooms
    Power of Measurement to attain True Agility - By Meetu Arora Sr VP, InfoEdge
    Metrics and Measurements are mostly associated with Product Usage but very sparsely with application of Agile/XP practices to know about its true efficacy. The whole paradigm shift associated with Agile adoption is to bring boast in productivity and quality of delivery. So let us dwell deeper to understand how measurements can be applied to overhaul the process of software development. Let us talk about “How having the Right kind of measurement in place” can help attain true agility as opposed to just imposing best practices with little or no impact. The biggest pain point with measurements is the part of culling data from various sources in order to get meaningful information out of it periodically. Thus automation of measurements on basis of actual usage patterns as opposed to manual digging is the required backbone. I would like to share few insights and learnings around “how at Naukri we are using the various metrics for continuous improvement and enhancing productivity & quality
  • Workshops
    Refactoring for Concurrency - By Tim Myer
    A walk through various scenarios in a codebase that works perfectly when there are only a few users in the system, but where subtle, irreproducible or hard-to-reproduce bugs appear under load. So let's explore what makes this code concurrency-unsafe and what options we have for changing the implementation of the code without changing its expected behavior. These are the scenarios to explore: One-time component initialization Stateful singletons Undocumented third-party libraries Switching from blocking to non-blocking collections Protecting critical regions of code Distributed atomic operations Read Complete Abstract
    ganesh samarthyam
    Refactoring for Software Design Smells - By Ganesh Samarthyam
    Awareness of design smells - indicators of common design problems - helps developers or software engineers understand mistakes made while designing and apply design principles for creating high-quality designs. This talk provides insights gained from performing refactoring in real-world projects to improve refactoring and reduce the time and costs of managing software projects. The talk also presents insightful anecdotes and case studies drawn from the trenches of real-world projects. Bonus: A comprehensive listing of smell detection tools and refactoring tools (40!). Contents overview: * Why care about design principles, design quality, or design smells? * Refactoring as the primary means for repaying technical debt * Smells that violate abstraction, encapsulation, modularisation, or hierarchy * Tools and techniques for refactoring Read Complete Abstract
    The Craft of Business Friendly Design. A workshop on Domain Driven Design - By Ranjit Tharayil
    Even if we could produce completely bug-free software, that does not necessarily mean that the software design is of great quality, and if the software design does not reflect your business domain, your system might be a bit too rigid to change in alignment with your business agility, witch intern means that reaching a bug-free state in future could be a bit too challenging. This is an introductory workshop on Domain Driven Design (DDD), saying so we will be going beyond the theory of DDD and see how teams can actually embrace it by modelling software that is business friendly. Emphasis is placed on software development as a craft by embracing best practices of design in source code that works within the framework of agile processes. The event is best for senior and mid-level software developers and architects interested in software craftsmanship and anyone who wants to start learning domain modelling using the Domain-Driven Design (DDD) approach. Read Complete Abstract
    Componentize! Respond to what Your Code & Your Business are Saying - By Lance Kind
    As a consultant I get to enter a lot of codehouses. Like a formulaic horror movie, where although there are dozens of new releases it's the same cliche scares over and over: BIG methods with switch statements or their boring cousin: if else if, else if, else if, if, if. Why is this happening? When the product was new and shiny it only had a few Switch Case statements and a smattering of "if and else." But year after year, the business asked for more features and the developers respond by simply adding to that cute little function and it got bigger, and although it got harder to understand, well meaning developers still worked with that design. The code got messier and took more time to understand. And although it creaked like a rotting floor, no one did anything different and kept adding more, and more, and more. Stop being a zombie dev! Snap out of it! Let's realize that the switch is the "Go-to" of the two-thousands. Let's componetize so adding new features means adding new objects. Stop your code from becoming a house of horrors! Read Complete Abstract
    Banu Prakash
    Behavior Driven Development - By Banu Prakash
    A 2 hour Workshop on Behavior Driven Development where participants learn the different characteristics of it with group activities, understand requirement gathering, then create the requirements in Gerkhin Language. Wrap up with a demo of BDD Testing in Java. What can the participants expect out of the Workshop: 1. Basic Understanding of BDD 2. Clarity on what it is and what is not 3. Hands-on experience to gather requirement BDD way using Gerkhin Language 4. Glimpse of Testing with BDD 5. Fun in participation and Learning!Read Complete Abstract
    vinay 2
    Building a Serverless application - By Vinay Krishna
    Most of us today develop applications and deploy them on servers, whether on-premises or in the cloud. We need to figure out how much server, storage and database they need ahead of time, and deploying all of the hardware and software it takes to run the application. Is it possible to avoid this all i.e. no longer need to deal with all of that. Are we looking for a new model that can handle all of the underlying infrastructure deployment for us? In this session we would learn about serverless architecture and build a small serverless application. Participants should know Java, Node.js or Python and should have AWS account. This session will cover both Function as a Service (FaaS) and Backend as a Service (BaaS).Read Complete Abstract
    Siddharta Govindaraj
    Pitfalls of Continuous Deployment - By Siddharta Govindaraj
    Continuous deployment is a popular topic. It seems that everyone is doing it these days, but doing it right is more complicated than it seems. In this workshop we'll look at some common pitfalls that face developers when they try to implement continuous deployment, like: How do you implement manual approval steps in the CD process? What do you do if a new version of the software requires changes to the operating environment (like new versions of system libraries)? How do you rollback the deployment if there was a problem with the new version? How do you instantly provision new virtual machines with the exact same environment as the rest of the machines? We'll then look at some common solutions for getting around these pitfalls. The session will use the cookbook format, where we 1. Pick a pitfall 2. Discuss possible solutions 3. See some code samples on how to implement a solution Read Complete Abstract
    Introduction to Docker - By Aditya Patawari
    Docker is an open-source platform which provides a great way to package and deploy applications. With its lightweight resource consumption pattern, it helps in making CI/CD environments faster and predictable. In this workshop, we'll learn how to setup Docker and deploy a basic web application.
  • Expert Talks & Demos
    Feature Toggle - What Why and How - By Kalpna Prakash
    For most of the developers, using a source control has been programmed in their DNA and when working with cross geographic multi member teams, the code is ever changing. The biggest problem that we used to face in this situation should be called “Merge Hell”. Every time, when we are almost done and ready to merge it we see a huge set of changes done on the trunk by others and the merging it all with our branch…phew! It is a big time consuming job… and the bigger the team, more worse it is!!! So all this while we would wish if we could have a merge free world…..and there is something that is called “Trunk Based Development”. Though this exploration started as a way to manage the Merge Hell, we tried figuring out what to do with stories that last for a relatively longer time. And then we worked on something called Feature Toggles. This is basically a technique that allows me to “switch on” or “switch off” features of a product. So till the time the entire story is ready to be released the feature is marked as “switched off”. So though everything that is being developed is in the trunk but it is not visible and is not executed till the time it is “switched on”. There is a lot more to feature toggles and this session will allow you to think away from the conventional approach of Branching and Merging and move towards CI/CD efficiently.Read Complete Abstract
    Do DevOps like Lance Armstrong! - By Yahya Poonawala and Siddharth Kulkarni
    With the concept of Infrastructure as Code gaining momentum, along with the concept of DevOps, it's important to check the sanity of the Infrastructure as a whole. This talk aims to discuss and demo concepts of why testing your infra is important, what does it involve and how it can be done. After all, testing is the much needed "dope" for your infrastructure. Read Complete Abstract
    Pradeep Kumar NR
    Journey with XP: A Case Study in Embedded Domain - By Pradeep Kumar NR
    This journey with XP has been part of my life since 2 yrs. In 3 major accounts in my company we took up this journey, with one completing successfully, one utterly failing and the third one in the path of break through. Through this talk I want to share my learning on. 1. What we did? 2. How we did? 3. What went right with us? 4. What went wrong with us? 5. Technical challenges and people mind set issues 6. How we succeeded? 7. How we failed? 8. What we did when we failed? 9. What we did when we got success? This talk also unfolds some aspects of how to adopt XP in embedded space with multiple layers involved and there is a dependency on hardware.​Read Complete Abstract
    Building Big Architectures - By Ramit Surana
    The term Micro service Architecture has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. Over the recent years Docker containerization has been seen as a popular term used by various companies and organizations.There are many benefits with this approach such as the ability to independently deploy, scale and maintain each component and parallelize development across multiple teams. Read Complete Abstract
    Zero Bug Manager - By David Wylie
    How can a manager create and support a team that delivers no bugs in a release? Empowered XP teams don’t need micro-management, but they do need a managers support. We will create a job description for an XP Manager, and share my experiences.
    Vivek Ganesan
    Bashing Cultural Monsters in Continuous Integration - By Vivek Ganesan
    Does your organization frown upon “Build Breakers”? Does your team spend a lot of time fixing integration issues in CI? Do you see a lot of “Who broke the build now?” emails? Do your team members hesitate to commit their code for the fear of causing a build failure? If you wish to know what you can do to make the situation better, this session is for you. Continuous Integration is a powerful way to identify and eliminate certain risks, particularly when multiple teams are rallying towards a planned release. Even if you are not working on a planned release, Continuous Integration will help you to cut-out a release sooner than you would if you did not have CI. Read Complete Abstract
    Pairwise Testing in the Agile World - By Puttajunjaiah Krishnamurthy and Arun Srinivasan
    Pairwise testing has become an indispensable tool in a software tester’s toolbox. This talk pays special attention to usability of the pairwise-testing technique. In particular, it focuses on ways in which the pure pairwise-testing approach must be modified to become practically applicable, and on the features that tools must offer to support the tester who is trying to use pairwise testing in practice.Read Complete Abstract
    Gamifying Open Source - By Gautam Rege
    The sad part of open-source is that we have almost 99% developers consuming it and less than 1% actively contributing back. How do we change this and get more people to contribute back? It’s a common fact that what can be measured can be improved. Everyone knows running is a great exercise but the Fitbit has it made if measurable, fun and motivating! CodeCuriosity makes open-source contribution fun, motivating and rewarding! Using CodeCuriosity, you can set monthly goals and measure how much open-source contributions you do every month, earn points and redeem them for Amazon or Github Giftcards. You can create groups and create a healthy competition between friends and all this time, you have improved your open-source profile, learnt something and most importantly — contributed back! “CodeCuriosity is the Fitbit for Open Source”.
    Sunil Gupta
    Introducing XP Practices in Team, Vision & its challenges - A Leadership Perspective - By Sunil Gupta
    Introducing XP Practices in Team, Vision & its challenges - A Leadership Perspective
    Perspectives on Continuous Integration at Scale - By Hrishikesh Karekar and Vinaya Muralidharan
    This is an experience talk by the speakers from Amdocs. Succeeding in the continuous integration journey involves working on the triad of Technology, Process and People. Some of the problems that we were trying to solve included long build times, manual deployment to test/staging environments and full manual testing resulting in “integration hell”. Working with monolithic architectures in some of our products, home-grown source control systems, non-Maven build scripts and systems which have been in production for years were some of our challenges. Our response took a holistic approach of modernizing our infrastructure (Mavenizing our builds, moving to Perforce and Jenkins, Nexus as an artifact repository and more), coaching our people in stop-the-line thinking, writing code for testability and setting up supporting development/release management procedures. Imagine doing this transformation in enterprise projects having hundreds of people without impacting the business! We are setting out sights next on Continuous Deployment!Read Complete Abstract
    Testing until Teleportation - By Preeti Mishra and Anjali Wadhwa
    We haven't yet invented Teleportation. Atleast not for the population that isn't working for CIA or NSA. So, we need ways to perform distributed testing, where systems either appear "teleported" or they don't require teleportation. In this talk we will explain what tools and possible processes, tips, can teams follow for high quality distributed testing, until teleportation becomes mainstream."
    XP in the Full Stack - By Lance Kind
    With the explosion of front end technologies such as HTML5 and JS frameworks, it's not enough to do TDD just in your server side code. And frankly, there are likely a lot of DB procedures that are being developed without unit tests. Let's take a step back and look at a full application stack using (front) HTML, CSS, JS, (middle) java, Spring, json client/server, and (back) DB. Lance will show conceptual strategies, tools, and illustrative code examples for common unit test patterns that come up in those areas. Lance will present how to do unit testing for the following: Ajax, jquery, templating, direct DOM manipulation, cross browser testing Spring, json services Schema, stored procedure.