Evolutionary Architecture and Design
We applied XP and Scrum for a large, in-house software project in my organization, Pragati Software Pvt Ltd (www.pragatisoftware.com). The application was a mini-ERP, consisting of many modules, including CRM, training operations tracking, workflow management, financial accounting. We faced many initial difficulties, including resistance from various people, but eventually managed to apply the practices of agile methodologies to a fairly good extent, and reaped significant benefits in productivity, quality, team morale, customer value, etc.
A lot of real experience gained by us by adopting and adapting XP and Scrum would be valuable to other organizations as well. This being an in-house software development project, there were unique opportunities and advantages on one hand, but there were also unique challenges in terms of the end-user expectations, temptations to change the scope in the middle of an iteration, impact on organizational culture, etc.
Gradually, as the challenges and obstacles were overcome, the whole organization, not just the software team, got a lot of benefits, new ways of thinking, new ways of time management, new ways of managing the goals, etc. It has been a very enriching experience for us as an organization.
Some really noteworthy achievements / events:
* Incremental evolution of architecture and design, no up-front architecture. We implemented a few stories with the desired architectural qualities, then refactored them to create an architectural framework for the system.
* Team had no prior experience with agile methodologies. Adopted, learnt and adapted as they went along. No estimation done for the first two iterations as the concept of developer estimation and agile practices were new to them. Started estimation from the third iteration onwards.
* We follow three week long iterations.
* Real deployment at the end of each iteration. A well-established mechanism has evolved for deployment, as well as post-deployment issues.
* Very high sense of responsibility and accountability exhibited by the development team
* On-going education of the user community within the organization about Scrum practices (for example, why no changes would be accepted in the middle of a Sprint)
* Steady improvement in quality of software, productivity, accuracy of estimations, etc.
* Influence on overall organizational way of working, including strategic and operational decision-making outside the purview of the software project
* There have been some failures / errors also. Two iterations had to be terminated mid-way due to improper understanding of the requirements / underestimation / changes in priority. Some waste still gets produced (by way of stories implemented and never / rarely used). Some embarassing situations have also arisen. One example: a story implemented, later dropped as users reported not using it, and then after some time was asked to be implemented again.
* Team still struggling with test automation .
If it is a 60 minutes session, I would like to focus mainly on the Evolutionary Design and Architecture bit.
- Practical illustration of how architecture and design evolution can be achieved in a project.
Speaker's Project Background:
Played the role of Product Owner initially. Also wrote code for some stories in the initial phase. Then I played to role of ScrumMaster / Coach for the team.
I have about 25 years of experience in the IT industry, having played various roles over a period of time: programmer, designer, architect, project manager, delivery manager, business analyst, customer, coach, and now primary trainer and consultant.
I am a science graduate, and an MBA from the Indian Institute of Management, Ahmedabad (1982-84). Currently I am the CEO of Pragati Software Pvt Ltd, Mumbai, India (www.pragatisoftware.com). My organization is involved in IT training and consulting services.
I regularly conduct training programs on Scrum and XP, for various large and medium-sized IT companies in India. I have been a speaker in two Agile India Conferences (in Chennai, 2007 and Bangalore, 2006). I was also a speaker in Scrum Gathering, Chicago in 2008. I have also conducted sessions on Agile Methodologies for Goa Institute of Management to their students and faculty in 2007.