• Português
  • 简体中文
  • English
  • Français
  • Deutsch
  • 日本語
  • Lietuvių
  • Español

Submitted Conference Content

Full name

Raja Bavani

JobTechnical Director
emailbsraja [at] yahoo [dot] com
Phone number+919850049239
City (Country)Pune, india
Time 45'
Type of ConferenceConference > 100 attendees

The Most Common Bad Smells in Distributed Agile


Raja Bavani is Technical Director of MindTree’s Product Engineering Services (PES) group and plays the role of Product Engineering Evangelist and Agile Coach. He has more than 20 years of experience in the IT industry and has published papers at international conferences on topics related to Code Quality, Distributed Agile, Customer Value Management and Software Estimation. His PES experience started during the early 90s, when he was involved in porting a leading ERP product across various UNIX platforms. Later he moved onto products that involved data mining and master data management. During early 2000, he worked with some of the niche independent software vendors in the hospitality and finance domains. At MindTree, he has worked with some of the top vendors of virtualization platforms, business service management solutions and health care products. His areas of interests include Global Delivery Model, Agile Software Development, Requirement Engineering, Software Architecture, Software Reuse, Customer Value Management, Knowledge Management, and IT Outsourcing. He is a member of IEEE and IEEE Computer Society. He regularly interfaces with educational institutions to offer guest lectures and writes for technical conferences. His Product Engineering blog is available at http://www.mindtree.com/blogs/category/software-product-engineering. His articles and white papers on Agile Software Development are available at: http://mindtree.com/category/tags/agile. He can be reached at raja_bavani@mindtree.com.


This session presents a list of early symptoms and issues that we encountered in Agile Software Development in the distributed model and describes our experience in responding to such” bad smells” by applying corrective actions through process improvements. In the programming world, the term ‘bad smell’ refers to negative characteristics of code that could adversely impact design and code quality. Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. In a broader context, software development and testing life cycles do signal bad smells or negative characteristics from time to time, and from project to project. Recognizing such bad smells and responding to them at the right time is essential to keeping projects on track. In our experience, Distributed Agile Software Development projects involve many nuances that could result in tricky situations that impact the satisfaction levels of stakeholders. Refactoring of life-cycle processes is necessary to tune the delivery engine towards delivering quality products. This is not a one-time activity. It needs to happen continuously at regular intervals, and the way it is done can differ from project to project. Risks are uncertainties that could affect project performance adversely. For example, a risk could impact project costs (because of slipping schedules or effort variance) or affect the quality of deliverables and reduce customer satisfaction. In most cases risks are identified before they occur. On the other hand, bad smells are felt or experienced in real-time. They are an indication of project risks or greater probability of producing mediocre results. Mediocre results attributed to average quality gradually become an unexpected bottleneck during the product life cycle. For instance, mediocre results could impact a business critical situation related to product release or migration. This can be avoided if we recognize and fine-tune the corresponding processes and also apply corrective actions. Any causative process that relates to a bad smell is a candidate for refactoring. Recognizing and responding to bad smells facilitates the timely refactoring of processes.


Awareness of Software Development Methodologies and Agile. Work experience in implementing Scrum or similar agile methodologies and agile best practices. Experience in working in onsite-offshore model or distributed teams.

Benefits for the attendees

By attending this session, participants will understand 1) Bad smells or process smells that are common in distributed agile projects 2) Ways to identify and manage such bad smells 3) How to focus on continuous improvement in distrubuted agile projects
Go to the submission page!