Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
Teams are left pondering as to what is going wrong with their adoption of being agile and Scrum. They plan before starting the Sprint, have Stand-ups on time, have frequent communication with the customer, yet a lack of the wow factor makes one think, 'why am I doing it'. Most often these problems arise when we abide by all the Scrum practices but forget about doing programming in an agile manner. Agile is recognized as a system-software development approach used to get quick feedback to keep the customer involved at every stage, building a disciplined team and having working software at any given point in time. Extreme Programming (XP) is vital and necessary part of agile product development. These goals would never be possible to achieve if the programming part is lacking Agile. Let's see how things start falling out of place when agility on the programming side is ignored. It all starts here Cul-de-sac A way out ? If the team’s reaction to reducing their velocity was one of shame, another solution they have is to put in extra hours. Sounds promising, doesn't it. Actually they are setting themselves up for a disaster. More hours spent in the office, slogging around is usually counter-productive, even if the developers have something to show; primarily because the quality has been compromised(another objective lost). People who stay late in the office, at some stage start missing the morning stand-ups, the discipline the team so fondly used to talk about now becomes suspect. Because it now becomes obvious the discipline actually never existed. It is not just about showing up on time to meet your commitments, it’s about everything you do in your daily professional life. Programming is definitely high on that list if you are a programmer. Breaking the promise Usually people notice but don't bother about a failing build on the regression suite profile and wait for someone else to fix it. Ignoring test cases in the failing build on one's own machine, so that individual's progress is not gated, is a quick way out. This is a good excuse for me, if I am not the one who has broken the build, and gives me every reason to keep myself out of it. Well, fair enough, but a promise has been broken, one that we made when we got the deal with the customer that the team should be ready with a shippable software at any given point, which happens to be one of the key objectives of Agile. The fixes on regression suite are delayed to the last minute and the team finally hears the news from the customer about the build failure, which is disastrous. Broken promises do not help the team keep up a good rapport with the client anymore. Two is a crowd Simplicity is for faint hearted Its freezing out there This is why an architect would find the Agile way of designing awkward. Let’s talk about why a developer, coming from a waterfall background, finds it hard to be agile. In the traditional approach, the decisions about design and technology were taken from the architects, which made minimized design work for the programmer. Now suddenly the programmer is working in an environment where the developer actively participates in design. This requires the developer to come out of his/her comfort zone and start taking initiative instead of being a follower. Stepping out of one’s comfort zone and to start doing things one has not done before can be disconcerting and feel like stepping out in the cold. Talking in terms of number, almost 80% of a programmer's working hours are spent doing the coding work, the remaining 20% is spent in meetings, design discussions, etc. This clearly exhibits the impact of XP on the overall performance of a scrum team. A different programming approach for Agile teams is in step with the overall goal of being agile. It cannot be ignored under any circumstances. The whole mechanics of Agile depend [Sameer 5] on the programming techniques. If the machinery is not right, things are not going to work for the team magically. Your success with being Agile hinges on the programming techniques and practices being applied Before a team decides to be Agile, they should spend some time to learn about and get training on programming practices such as concurrent testing, continuous integration and test driven development. Focusing on the “why” factor of having these practices in place along with “how” to apply them in real life product development scenarios. One needs to understand why a certain practice is being followed in order to appreciate it. It's always good to learn early and from the experts rather than learning the hard way. This is what I learned after spending time adopting agile product development and seeing different flavors of it (with and without XP). To sum it up in a sentence, the impact of XP and other agile development practices on the success of an Agile team is huge, and it is impossible to make the mindset shift to being agile without changing the way we go about writing code. About the Author Sameer Arora is working as a Senior Consultant for Xebia IT Architects. He has close to seven years of experience in the Software Industry. He has worked on several projects for leading banks and investment firms using Java/J2ee as the primary technology. He conducted a workshop on Test Driven Development at Agile NCR 2010.
Set as favorite
Bookmark
Email this
Hits: 1572 Trackback(0)Comments (0)
|
| Last Updated on Friday, 11 March 2011 15:48 |
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


Often scrum teams fail to appreciate the effect of adopting Agile. They can't see an increase in productivity, an enhanced level of trust with the customer or improved quality of the end product, all of which happen to be key objectives of Agile. 
