This workshop is going to be facilitated by Mahendra Mavani. Mahendra is an agile software developer with 8 years of consulting experience. His consulting span accross working with esteem clients from 5 different countries (USA, South Africa, Netherlands, Singapore and UK). Mahendra initiated carrier with waterfall and RUP methodology but quickly jumped onto the track of Agile/XP. Personally Mahendra believe in designing simplest solution for the complex business process and hence strieve for architectue/design which is open for extension-close for modification with high degree of automated test coverage and one with least possible technical debt.
Mahendra has worked with combination of web and windows application development. Earlier phase of his career includes designning Use Case, IDEFØ diagram, Sequence diagram and Activity diagrams as well as honoring CMMi 5 quality standards. However his current inclination is towards user story based iterative development.
This is session, full of code drive to demonstrate refactoring techniques mostly influenced by Michael Feathers in his book, “Working Effectively with Legacy Code”. The session will be lively by mean of audience interaction while demonstrating how to approach this refactoring for practical scenarios. Session will start with discussion on the topic of dependency and will go towards the direction of how to break those dependencies and introduce testing harness for any legacy code.
**This is a technically oriented session**
We ask that you bring a laptop capable of running Microsoft Visual Studio Express 2008 or Visual Studio 2008.. (More details on where to download will follow closer to the class date, emailed to attendees.) You should also be familiar with C#, .NET or be comfortable enough with programming to work in pairs or groups with those who are familiar with .NET syntax.
Productivity plug in Resharper, although not required, is highly recommended to have. 30 day tirl version of Resharper 4.5 can be found at http://www.jetbrains.com/resharper/download/
All the Refactoring terminology, would be taken from following books:
"Refactoring: Improving the Design of Existing Code" by Martin Fowler (http://www.amazon.com/exec/obidos/ASIN/0201485672)
"Working effectively with legacy code" by Michael Feathers (http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)
An introductaring pdf about Michael work can be found athttp://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCode.pdf