|
When our Editor-in-Chief mentioned that this month’s issue would focus on Agile processes I groaned and thought to my self, here we go again – another fad – another pop attempt at a process model. The last thing that I need is to waste time on a useless attempt at reinventing the wheel (or software development process). So, I took a look at Agile processes (e.g. XP and FDD) and I’d like to share some initial observations. Much of what is discussed in the literature is watered down from the original Quality Management researchers (e.g. Deming, Juran, and Lewin) whose work I have studied and follow to this day. The literature about Agile processes makes the point that we have to evaluate what will work in our organizations and what will not. Read on if you’d like to understand some of the basic skills that are essential to evaluating any process model before you decide if it is practical and will help in your organization. Agile is Hot! It wasn’t hard to find current articles discussing whether or not Agile processes are appropriate in today’s fast paced software development environment. I started with an article by Scott Ambler entitled Outsourcing Examined in “the agile edge” section of software development (April 2003, published by CMP Media LLC) and then I perused a number of Agile related internet sites. I also looked at an article about Software Development Method tailoring at Motorola in the April 2003 issue of Communications of the ACM. Scott Ambler discusses the value (and increased likelihood of success) of Agile processes as an alternative to traditional outsourcing software development efforts. "Instead of outsourcing your project, develop it in house with an agile development team, or outsource it to a local development company with it’s own agile team" (p. 54). Scott goes on to say that today there is more evidence that Agile methods work. "An Agile approach to development is a viable option. In its infancy you had to take it on faith that agile methods such as Extreme Programming (XP) and Feature Driven Development (FDD) worked. Today however, supportive evidense is trickling in" (p. 55). I’m not very familiar with FDD, but XP is a discipline that I have been following with much interest. Let’s discuss how we can go about deciding if a particular process will work within our current environment. Define the Problem to be Solved or the Goal to be Achieved The most common mistake that Software Development professionals make when they try to adopt a Software Process Improvement (SPI) initiative is that they attempt to adopt a discipline without defining what they really need to achieve. This is basically trying to fix something without knowing if it is really broken. The only place to start is with a clear definition of the goal to be achieved (or problem to be solved). In my work, we insist that all systems that are in Production have their source code (build, compile & runtime dependencies) secured and that any production release can be rebuilt if necessary (without heroic efforts). The SEI’s CMM may be a great process improvement model, but nothing will be achieved if we do not understand why it is necessary and what we want to achieve. Many corporate level initiatives fail for this and several other reasons. Will Agile Processes fit Within the Environment of my Organization? The Agile literature discusses the need for the development manager to determine if a specific process will fit into a particular organization. We must be flexible (e.g. agile) enough to select the appropriate processes and, when necessary, tailor them for our needs. In the field of organizational development (and organizational behavior) we refer to understanding the internal and external environment. We routinely examine the “inputs” and “outputs” for their effect upon the environment. For example, does the job market provide for a ready pool of qualified talent or are expert resources difficult to find. What is the rate of turnover in the company and the group (in my company employees interview with development managers within the organization to get onto projects that involve interesting technologies or business problems or both). Requirements often change continuously because of pressure within the organization (e.g. politics) and also from pressure from outside the organization (e.g. changing business environments). Many software development professionals found themselves shift from stock trading systems to fixed income systems with the sudden drop in the stock market. Overnight, I found myself scrambling to learn fixed income derivatives (e.g. currency and interest rate swaps). So you need understand the inputs and outputs that affect your organization both from the external environment and also internal to the organizational context as well. Will Agile Work Within the Culture of my Organization? Alignment is the extent to which business processes complement organizational needs versus require significant process reengineering. For example, do your recruitment processes allow for selecting (and retaining) the right candidates or does your organization have a lengthy process that makes it difficult for you to hire new talent quickly. My point is not to evaluate the HR function within your organization, rather to understand if Agile (e.g. XP) processes will complement your organization or not. Perhaps paired programming is impractical because the developers are not located on the same continent or within the same timezone. I am working on one project right now where I must consider 2 developers in one location and 12 in another and an unknown team of developers in an, as yet, unnamed location (perhaps India or Singapore). Back to Basics… W. Edwards Deming listed 14 Points as a basic framework for improving the effectiveness of any organization. Unlike Agile processes, the Deming method really does fit any organization regardless of it’s environment or culture. For example, driving out fear helps every organization improve productivity. Ace Greenberg is famous for saying that “whistle blowers will be rewarded.” This means that Bear Stearns & Co. has a long history of encouraging employees to honestly advise senior management of any problems or issues that must be addressed. Employees must know that they are safe to raise issues that will ultimately hurt the company. I have worked in places where it was best to keep problems very quiet. Sadly, from my civic service, I can tell you that this is the norm in many law enforcement environments, including the NYPD. Police officers are afraid to speak up even if they know that there is a problem. Keeping problems to oneself is a sad realty in many environments. Deming also emphasized the importance of training. My company frankly does not have a good record for supporting employee training. Some of our senior managers are so smart that they really never need training. That is tough for the rest of us mere mortals. Leadership for Quality Deming, Juran and Lewin were the great leaders of the Quality Management movement. It is now famous that American engineers did not listen to Deming, which is why I drive a Japanese made car now. How do you measure up as a leader? In my organization, training is very hard to come by. Some of our senior managers are extremely smart people who learn complex technologies on their own very quickly. I don’t – I need a class to learn Java, C++ or Unix systems administration. In order to implement effective CM solutions I took a very strong stand that training was required! To date I have trained over 300 developers in Clearcase (on both Unix and Windows). I picked training as the key point to push, despite the resistance and fact that my organization does not make training very easy to come by. It’s not a coincidence that Deming emphasized training in his 14 points. Does Agile Work for You? In order to effectively use any software process improvement method, it is essential to understand the problems to be solved (or goals to be achieved), the environment both within and outside the organization. The culture of the organization and the alignment of organizational structure and existing processes. The existing literature frankly does not give the whole picture. I believe that Agile processes contain many great ideas, but I also believe that we need to get back to basics. Instead of the debating whether or not we are working in an XP or Agile method, I would rejoice if a few people out there understood the importance of driving out fear, consistency of purpose and the real value of training developers to create quality code. Bob Aiello is a Senior Contributing Editor for Crossroads News and an Associate Director at Bear Stearns & Co. where he is engaged in Software Process Improvement on a large scale basis. He is also on the Board of Directors for the Organizational Development Network of Greater New York (ODNofGNY) and a member of the Steering Committee of CitySPIN in New York. Mr. Aiello has a Masters in Industrial Psychology and a BS in Computer Science. You can reach Mr. Aiello by email at raiello@acm.org
Set as favorite
Bookmark
Email this
Hits: 5438 Trackback(0)Comments (0)
|
| Last Updated on Wednesday, 25 January 2006 05:48 |



