Name: Ram Gundelli, CSM
I have over 15 years of software development experience. Starting my career as C++ programmer and moved on to Java development for last 12 years. Worked on various kinds of software projects in different industries and finally ended up in developing software for financial services. Mostly used Water Fall methodology moving on to RUP etc, but once started doing Scrum/Agile, I really fell in love with it and I can't think off me working something other than Agile in my future projects. Now I completely understand that software development is an art not a production line kind of work and Agile suits perfectly for this work producing very high rate of success.
I am very inspired by Agile manifesto for software development guidelines when I first learned. I started reading more and more about this methodology and start discussing with my people I worked with and discussion groups to gain more knowledge in this area. Having worked in Agile for over five years and doing lot of reading on this subject made to think get certified in this methodology, which lead me to sign-up for Certified Scrum Master program and get certified.
Going to this two day course, getting my doubts cleared and doing more reading for test made me very clear on what I have been doing for the last five years and makes me think, why I hadn't been doing this other parts of my career. Taking Certified Scrum Master class changed my thinking and inspired me to explore more in this area.
Below is a short description how scrum is implemented at my current company:
Our sprints are of two weeks in length and we shoot for at least 20 production releases in a year on an actively developed project, which consists of 26 sprints in an year. We have Business Analysts (BAs) as proxies to our Product Owner help the team with business needs, story writing and maintaining product backlog. Our manager takes Scrum Master role and makes sure the development team is going at a sustainable pace and adjust the team velocity accordingly.
When a story is picked up from sprint backlog by a developer, we start with story kick off meeting with Business Analyst (BA) and Quality Assurance (QA) person to go through story and be everyone on same page.
As a developer, as soon as a story is picked up, I start with Test Driven Development approach and start writing unit tests around the functionality to be implemented. Write all appropriate tests following story's acceptance criteria and keep them in failed state before starting actual code. Once implementation is completed and all unit tests pass, code is checked-in and a new build is sent to QA for testing. This is how we achieve continuous integration and it works great.
As a part of development team, we do practice pair programming, code re-factoring, Test Driven Development, code reviews and Scrum related meetings. Various ongoing projects are owned by team rather than having experts for each project.
At the end of sprint, when team is met with sprint commitment and still some time remains, we do pick up code refactoring and code clean up tasks. Daily stand-up meetings last 10 to 15 minutes everyday and help us get to know what others are working on, and if any dependencies that need to be addressed. Finally we finish a sprint with retrospective meeting and go over what went well and what not, which is very good tool to learn and help us improve up coming sprints and improving velocity. This completes a typical sprint and we move on to next sprint on following Monday.
Breif Work Experience:
State Street Bank (from April 2008 - Present): Java Developer using Scrum/Agile implementing financial projects for Hedge Fund Administration for various financial clients. Equities, Fixed Income, Options, Futures and Swaps trade processing development using core Java, Spring Framework and Sybase. Test Driven Development using Junit, Jmock and Mockito. Small two week iterations, pair programming, daily stand-up meetings, code reviews etc.
Consultant (from April 2002 - March 2008): Consulting for various Java projects. Worked as team/technical lead implementing core Java, Java Swing UI and web projects. Worked on various versions of JDK, client and server side technologies, web technologies and different application servers.
Portal Software (Acquired by Oracle Corp) (from March 2000 - March 2002): Java Developer implementing Billing Software for Telecom and Internet Service Providers. Worked on parsing data usage files from clients and storing the data in database for further use of pricing application.
C++ Developer in India (1996 - 1999): Various Visual C++ application development projects. Developed hospital management and accounting application development. Went to customer sites for project deployment and integration support.