Pages

Sunday, December 28, 2008

Kanban tidbits

Here are some tidbits

  • "Kanban", the Japanese word translates to "signboard"
  • Taiichi Ohno developed Kanban
  • Toyota management were looking at ways to reduce/eliminate waste. One of the ways that they discovered to eliminate waste is by reducing the inventory, and to build the product "Just in Time". They were inspired by the supermarket system because supermarkets stocks only what is needed for their customers and this is based on buying patterns.Customers can walk in with confidence that the product is available, and choose whatever they want. The items are replenished as and when the stock goes down and everything happens "Just in Time"
  • JIT manufacturing was the brain child of Kiichero Toyoda, founder of the Toyota Motor Company
  • Kanban is a means through which JIT is achieved
  • Kanban is more of an implementation process rather than a planning process

Monday, December 08, 2008

Agile means no documentation - common misconeption

Before I begin my Agile training programs, I provide an opportunity for the participants to share their understanding about Agile. Most commonly heard definition include
"Agile = No Documentation".

This is the most commonly misused and mis-communicated definition. I don't blame the newbies however it is the value

Working software over comprehensive documentation

that has been defined at a higher level of abstraction by Agile Manifesto that creates such a misunderstanding coupled with inexperienced Agile evangelists.


For most of us, as soon as we hear the word "documentation", the first thing that comes to our mind is the "Microsoft Word" document, and the ISO-CMM level prescribed requirement/design documents that we might have written in the past, isn't it ?
So, when a newbie reads the documentation related value from Agile manifesto, they generally assume that one needs to dump documents, and rely purely on running code(working software). However, Agile manifesto is trying to say that "prefer" working software over (not abandon) comprehensive documentation. What it means is, try to create working software, because this is the only thing that adds value to the customer's business and not the extensive documentation.
Next question I generally get is "if we don't do extensive documentation, then how do we retain the knowledge ?', "what is the contingency plan for attrition as this would result in loss of precious knowledge ?"
My take on this is, "do document" in whatever way you can to protect the customer/yourself/project to retain knowledge. Agile value is trying to say that, don't do documentation for the sake of doing it, however document information from the context of adding value to the customer.

In one of my past experiences working on an Airline and defense related projects, we had applied Agile methodology, and found that extensive documentation was indeed a must to conform to various standards. We wrote necessary documents as it added value to the customer, and customer was willing to pay for that.

Documentation not necessarily mean capturing information on "Microsoft word" ! one could write something on the white board or flip chart and take pictures using a digital camera. The images stored could be considered as a project document. Similarly, recorded videos, good java docs(for example), screen captured images, etc could well be considered as project documents.

Thursday, October 09, 2008

Jerry Weinberg's take on Agile

I am a big fan of Gerald Weinberg,and recently in an interview on Citerus, he has made some encouraging remarks about Agile. Thought would share the portion of the interview here

Q: You must have seen a whole bunch of ideas, about how to best do software development, grow and die over all those years. Do you see the agile movement as a pendulum swing or is it a move in a new direction?

A: How about a pendulum swing in a new direction? It's a pendulum swing because approximately every decade, there's a fresh movement to "solve the programming problem." High-level languages, structured programming, object-oriented programming, ...

But it's a new direction because it's the first movement to focus largely on social processes rather than purely intellectual ones. For that reason, I believe, it has more hope for success than the earlier movements, each of which made a little progress, then largely ran out of steam before achieving its grand promises.

Of course, agile won't achieve all its grandest promises either, given the conservative nature of human beings, but that's all right. After another dozen decades or so of incremental improvement, we'll begin to see some really fine software development. Well, I shouldn't say "we," because none of us will see them, but at least our great-great-grandchildren will be able to look back at us and laugh at our crude methods.

Gerry is also famous for using analogies to explain things and, making comments on lighter side. Here is an example...

Q: If you're the J.K Rowling of software development, who's Harry P then?

A: Well, first of all, I'm not a billionaire, so it's probably not correct to say I'm the J.K. Rowling of software development. But if I were, I suspect my Harry Potter would be a test manager, expected to do magic but discounted by software developers because "he's only a tester." As for Voldemort, I think he's any project manager who can't say "no" or hear what Harry is telling him.

Tuesday, September 16, 2008

Applicability of Decision Market technique in projects

Decision Market a.k.a prediction Market  is one of the techniques being used by many universities, governments, research institutes, finanacial companies to predict the future. These predictions have helped many organizations in avoiding obstacles, making better decisions, and in turn becoming  more profitable.  I am of the opinion that this concept can be used in various aspects of software development too.  For ex:  Iteration Planning, Release Planning, Product Planning, etc

This is how I am envisioning applying prediction market concept for release planning

1. Invite all the stakeholders (from the management team), key people from the project team who have good experience on the project

2. Allow them to go to a hall/room and cast vote on a preselected key concept like "the probability of having the release X on time".

3. Ensure that no one discusses their answers with each other until they come out of the room.  This would ensure that people don't get influenced by others decision.

4. Let each person also give the reason while casting the vote on why there could be a delay in the release. This would provide an opportunity for the stakeholders to correct the mistakes and avoid any unplanned obstacles/impediments.

5. Announce an incentive for the people who are making the accurate predictions. 

At the end of the release, identify all the issues faced during the release, and also the actual release status. Whoever has predicted the right things should be given the promised incentives.

More info about image can be found here

Even though the original prediction market talks about punishing the wrong predictors, I think it may not be a good idea in the software development senario. If  one is betting in an open market, one would not really care if the other person is winning or loosing. However in a closed environment like  a project team, punishing one person over the other, leads to animosities and things like that.  

In fact, Planning Poker based estimation technique could be considered as an avtar of prediction market.  During planning poker, the team is given an opportunity to provide their view on the effort needed in completing the task. View from the majority is taken and a consensus on the estimation is drawn. 

Agile 2008 conference had a session on estimation technique using decision markets. Since I didn't attend the conference, am not sure about the content covered during the conference. 

Even Google uses the decision market technique to make key organizational decisions. 

Sunday, August 31, 2008

Going back to basics - Incremental, Iterative, Agile, Spiral

Words like Incremental, Iterative are quite often used in an Agile environment. In most cases Incremental and Iterative are used interchangeably. However it is not true that they are one and the same.

Incremental is anything that is built in small chunks, however Iterative is much more planned even though it is also built in chunks. Most of the Agile methods we see are incremental and Iterative.

There is also a debate that the current definition of "Iteration" which specifically talks about building something incrementally but in a time boxed environment is the definition introduced by Agilists, and not the true definition.

Brad Appleton has done a lot of research about the definitions and history around usage of Incremental and iterative words. Check this link out for more details

Tuesday, August 12, 2008

Agile, Scrum and CSM

Nowadays a lot of companies/software developers wants to get Certified Scrum Master(CSM) certifications. I don't understand why they are in such a hurry. Mostly CSM courses cost anywhere between 1000 - 2000 USD.

I have heard, The Scrum Alliance and the CSTs(Certified Scrum Trainers) are making a lot of money out of it. After looking at the commercial aspect emerging out of Agile methods, and on a lighter note,
I have come up with an analogy.

Agile could be compared to any open source software developed by a bunch of geeks to solve a specific set of problem(s).

Scrum could be compared to the companies who make use of open source softwares, and build a product around it, sell it and make money.

Sunday, August 10, 2008

Importance of Scrum Meeting and Kaizen Line stoppages

Many a times Scrum meetings starts becoming boring and if you are one of them, who feel Scrum meetings look like micro management or merely a status update meeting, then this article might give you an insight into why you have such bad feelings about scrum meetings.

Scrum meetings are the backbone of any Scrum lifecycle. It is conducted on a daily basis, and the team members/product owners(as needed) and Scrum masters are expected to be part of this meeting.

I am not going to explain all the details about how to conduct the Scrum meeting but at a high level, 3 questions are answered,

  • what I did yesterday,
  • what I would be doing today and
  • the roadblocks in achieving ones goal.

image copy right

Many a times Scrum meetings are converted to a status update meeting. However the intention of adding Scrum meeting to the Scrum Lifecycle seems to be to
1. Make the people to commit their goals in public. Psychologically, this would ensure that people would try to keep their word. This is done with the first and second question used in the Scrum meeting.
2. Impediments/roadblocks are brought to the forefront on a regular basis. This is brought out by answering the 3rd question in Scrum meeting.

The 2nd intention(impediments/roadblocks) mentioned above seems to be taken from the Lean/Toyota Production systems's Line stoppage concept. The idea is that a problem should be addressed and discussed as it occurs, rather than sweeping it under the rug to be forgotten. During these line stoppages all the employees and senior management would take part to understand the problem, brainstorm on the solution and, team effort is used to address the problem.

The problems that Kaizen line stoppages seek to eliminate are extremely costly to the company and ultimately grow worse as they move down the line to your final customers. By being proactive and seeking to eliminate the problem at the source, you're avoiding a lot of costs and headaches in the future. In addition, your employees will appreciate the process, as their input is being taken into account and their opinion is being listened to.

In Scrum, the question around "roadblocks" provides an opportunity to bring the issues to the forefront providing an opportunity to tackle it proactively.

If the values behind Scrum meetings are not understood properly, it merely reduces to a status update meeting, making it boring and people resisting to attend the meetings.

Sunday, August 03, 2008

"World is Flat" and Distributed Agile development

I have been reading the book World is flat, since the last few weeks. In this book Thomas L. Friedman, argues the importance of outsourcing. I came across this wiki, in which the benefits of outsourcing is summarized as

Friedman argues that outsourcing has allowed companies to split service and manufacturing activities into components, with each component performed in most efficient, cost-effective way.

Many software and BPO companies globally have realized the above advantage of outsourcing. At the same time the global companies wants to improve the efficiency and productivity by applying efficient software development and industrial practices. One of the ways to reap the above benefits in software industry is by applying Agile methods. Currently there is a big hype in the software industry around Agile, and specifically in India, I am seeing a big wave of Agile hitting the software industries.



Even though I don't have statistics around outsourcing/distributed development, I strongly believe more than 60% of the software development happening in India is mostly in a distributed mode. Many of these developments are at different phases of implementing Agile practices.

Nowadays I have been hearing many Agile thought leaders arguing that "distributed" team is not a team and anything the distributed team calls as "Agile" is really not "Agile", like this one. Obviously if this is not called "Agile" then what are we practicing in this distributed mode ? So far the above mentioned argument is mainly coming from the developer community, thought leaders and not from business people. Business people seem to not care whether it is Agile or not, and at the end of the day, they want the application to be developed and want to make profit out of it. At the same time, developers don't care whether it is Agile or not and at the end of the day, they want to develop applications satisfying the needs of the stakeholder.

I agree that if some thing should be called as Agile, it needs to follow the values and principles mentioned in Agile Manifesto. I also agree that there is a value in following those principles. However if tomorrow, somebody comes and makes a rule saying that "Agile" word should not be used for projects in a distributed mode, then definitely one should start thinking about inventing a new methodology that can be tailored to distributed development.

I have started thinking, may be this is the right time to invent something new and that is more like "Agile" and somewhat like "lean" , that is flexible, efficient (like the "collocated Agile") and also mode free(collocated or distributed) !!! I don't know who else in the world is thinking about this, atleast I have started to do so.

Tuesday, July 29, 2008

Transitioning from Waterfall to Agile - Some tips

The day comes when suddenly somebody in the organization starts talking about Agile, and decides to implement Agile . This senior person who made this decision, would have heard somebody saying

Agile improves productivity !! and saves money Or the customer would have said, if you don't practice Agile I will not give the project to you(in an outsourced scenario)



Whatever the reason be, now the development team has to start practicing Agile. Note that moving from waterfall to Agile is not only needs the change in software development process but also the entire thought process surrounding the software development. Changing the thought process is not easy, as people practicing Waterfall would have reached some kind of comfort zone and immune to the pain and suffering from the consequences of practicing waterfall. So, it would take a lot more effort for them to unlearn the old way and learn the new way of doing software development.

In order to make the transition smooth here are some tips which could act as pain killers

1. First and foremost thing is to identify a good Agile coach.

2. Get all the team members to undergo training on Agile (XP, Scrum, etc)

3. Don't force all the Agile practices at once. Take one or two practices at a time and give sufficient time for the team to learn and practice.

- For ex: One can start with shorter iterations and scrum/daily stand up meetings.

4. Don't wait for the right day to start Agile. Start today. Go run to a shop and get hold of a Good Agile book(s).

Some good books for starters include,

  • Agile and Iterative development a manager's guide by Craig Larman,
  • Ken Schwaber's book on "Agile project management with Scrum",
  • or any Extreme Programming book.

5. Start with 4-6 weeks iteration rather than 1 week iteration. Many new comers to Agile feel suffocated with 1 week iterations. Earlier the waterfall teams would have delivered softwares once in 6 months, and suddenly asking them to deliver in a short period makes them resist to Agile.

6. Take a simple and low risk project to try Agile. Also, with the help of Agile coach ensure that this project succeeds

7. Try to make use of visible tools like Flip Charts, Burn Down charts, Post-It notes, spreadsheet and encourage more interactions among developers. Make the developers to come out of their cubicles and start designing things on boards.

8. Ensure that management provides complete support to the Agile coach.

9. Even though having indepth understanding of Agile values and principles are key to succeed in an Agile environment, the team may not be able to grasp all of them at once. As and when each practice is introduced to the team, show them the relationship to the values and principles.

10. Don't bother if you would like to start with Scrum or XP. Instead, put all the Scrum and XP practices in a big basket, take the simplest one at a time and start practicing it. Over a period of time you would understand what is best for your team.

11. Scrum and XP advocates specific team structure like having Product Owner, Team, cross functional teams, no hierarchy, a team coach, scrum master, etc. This is a very sensitive issue. Suddenly informing the team that all of you are same, might heart the ego of senior people. I have heard stories where the seniors have quit teams as they were equated to the junior members by calling all of them as team and by dismantling the hierarchies . So, don't worry about dismantling the current team structure. Let the team learn slowly the importance of the values and decide what is best for them.

12. Let the project manager's slowly transition from their current responsibilities to become scrum masters.

Monday, July 21, 2008

Agile on a fixed bid project and Dr.Agile

Here is an article by Scott Ambler who explores the ethical implications of "fixed iron triangle". The article explores why many of business users insist on defining the price, scope, and schedule early in an IT project. It then overviews the overwhelming evidence for why this is an incredibly bad decision, and then describes an ethical approach to addressing this questionable desire.
Dr.Agile, a very good Agile readiness tool. I have not tested this personally, however one of my friend who tested has given very good reviews. Dr. Agile uses over 300 different indicators to determine which agile practices an organization is ready to adopt.

Thursday, July 17, 2008

How to fail with Agile 20 Tips

Most of the time we talk about how to succeed in anything and give a lot of tips and best practices to others. How many of us do really remember those tips ?

What if somebody lists all the bad things one should do to fail ? Do you read it ?

Does this interests you ?

If so, then read this new article, How to fail with Agile, 20 Tips to avoid success by Client Keith and Mike Cohn


Wednesday, July 16, 2008

We don't have any resources available in resource pool

I am sure you would agree that we use the above statement atleast couple of times a day, especially if you are a project manager in one of the software companies. A few years ago, while I was interacting with Craig Larman, he mentioned that "human beings" are not fungible resources, they cannot be called as "resources". That was the first time I learnt that ugly side of calling programmers/software engineers as "resources".


The word resource, in the past was widely used to mean things that are "replaceable"/fungible. For ex: A broken chair can be replaced by another new chair. Another interesting feature of a resource is, you can start using it immediately. Ex: Once you buy a new chair, you can start using it from the next minute.




I don't know from where it all started. However I have been hearing the usage of the word "resources" implying mostly "people/programmers" since several years in the software industry. When we hire a new programmer, we say that the new resource is being hired in place of the old one. We are aware that two human beings cannot be same, one "developer" cannot be replaced by another cloned "developer" with exact specifications. They are two different people coming from wide range of experiences, even though they have "similar" work experiences and designation.


So, let us consciously stop calling "human beings" as "resources".


Here are some more people who think on above lines


Monday, July 14, 2008

Is it a sin to use tools in Agile software projects ?

The first value of Agile Manifesto clearly says, "Individuals and Interactions over Process and tools". Does this mean that usage of processes and tools needs to be reduced ?


Many Agile evangelists prefer using just flipcharts to write their design diagrams rather than using rational rose/any other diagramming tools. These Agile designers are proud to say that they don't use any software tools. However Kent Beck one of the Agile signatories shares in his latest white paper on "Tools for Agility", that when he and others created the manifesto they never wanted to disregard the usage of tools. However they felt that tools are ideal "If" it helps them in certain areas of work and specifically in some of the transitioning activities. Kent is not negating the usage of tools, however the tools like flipcharts, post-its and white boards have their own limitations. They cannot be shared if used in a distributed environment, it might get lost, and things like that.





In the white paper mentioned above, Kent makes some powerful statements. Some of them are as follows



  • Every quantitative change of an order of magnitude creates a qualitative change

  • A transparent team can more cheaply and effectively coordinate their efforts towards shared goals

  • It may be hard to unlearn habits and beliefs, but in a world of wide and
    free flowing information, keeping secrets is a position of weakness

  • You never know when you are going to be found out. Transparency is the new strength

I personally beleive that tools are very much needed in any software development, however tools should consciously be choosen and introduced into the project environment. Also a constant inspection and upgradation is essential to ensure that the tools are not becoming bottlenecks and hampering productivity & creativity.

Thursday, July 10, 2008

Retrospective smells

Retrospective is the heart of Scrum life cycle. Many Scrum Masters who are new in facilitating Retrospectives find it hard to handle it. Keeping the sensitive nature of this exercise and keeping the emotional aspect in mind, one needs to be really creative, courageous while managing the team doing retrospective.


More info. about the image

George Dinwiddie shares the following retrospective smells.

  1. Retrospectives that limit themselves to the three questions, "What worked? What didn't work so well? What are we going to change?"
  2. Retrospectives that don't ensure that all the participants are represented. It takes care to get the thoughts and feelings of the introverts.
  3. Retrospectives that don't establish safety, or at least acknowledge the level of safety felt by the participants.
  4. Retrospectives that are designed to lead to a particular conclusion.
  5. It's not a retrospective if you've got "the answer" before you start.
  6. It's not a retrospective if the answers come from the leader instead of the participants.

It is very clear that retrospective as a tool can fix things or break things if not done properly. Knowledge and experience of the scrum master plays a key role in facilitating retrospective. Here is a good web resource that has been created by Agilists to share their retrospective experience and in turn help others.

Sunday, July 06, 2008

Best time to do performance testing in an Agile environment

In the traditional model of software development major release/milestone dates are fixed, and performance testing is done just before such milestones, and it occurs mostly after the completion of coding, integration and system testing for a chunk of requirements. In an Agile environment too, release and milestones dates are planned, however, between the start date and the major release date, multiple iterations keeps happening and developers keep churning the code.


So, the next logical question to ask is,

In an Agile environment, is it still advisable to do
performance/scalability kind of testing before the major release date Or is there a better way to handle this ?

My personal view is, the non-functional requirements(the -ilities, scalability, availability, performance, etc) cannot be separated from the implementation of functional requirements. It is not a good idea to say that we would implement the functional requirements first and then look at non-functional requirements. According to me, one cannot write a piece of code implementing functional requirement without affecting the non-functional requirements. Even the simplest If-Else statements, for() loops we write affect the -ilities in a big way. It is always advisable to have the non-functional requirement related SLAs in mind all the time
and, after writing each piece of code, ask yourself does this line of code
meet the SLAs ?

Moral of the story is, in an Agile environment, performance, scalability, Availability testing is done all the time right from Iteration 1.

Best Practice: It is better to write unit tests to check the conformance of your code against the SLAs, and automate them. Creation of such unit tests and, automating them is the key to success in implementing non-functional requirements in an Agile environment.

Friday, June 27, 2008

Bahá'í Consultation model and decision making

We are making decisions all the time, either by ourselves or by collaborating with others. There are times where it is easier to make decisions and sometimes tough. One of the classic example is performance moderation session that all supervisors and their teams have to go through in their career, one time or the other. Have you ever attended such meetings in larger organizations ?, if not, here is a preview.
Each supervisor/manager brings the data about their team members and each of these supervisors would have come to the meeting with their own agenda i.e. to get promotions/good hikes to their team members. Most of the time, there are more candidates than the allocated budget and this is a tough situation as only a few, can be chosen for hike/promotions. In situations like this where each one is pursuing their own goal and not a common one, decision making becomes even more difficult.

Above example is an extreme one which may not happen daily, however we commonly come across group meetings where collective decision has to be taken.

How do you make decisions in such situations ?
In such situations one of the best suited techniques would be to apply the Baha'is consultation model". As you might be aware, Baha's is a religion. The goal of consultation the Bahá'í way is to discover the best course of action to take for the well-being of all.



Here are the 4 steps in Bahá'ís consultation technique:

      1. Establish the full facts;
      2. Decide on the principles to be applied;
      3. Discuss the matter;
      4. Make a decision.
In this technique, each participant would be given an opportunity to express their opinions, and everybody has to vote for all the ideas shared by the participants. This in turn results in ideas becoming "group's" property rather than individual's. People who would have come with malafide intentions cannot push their ideas as the rest of the crowd has to be in agreement. Respect for people and ideas are given highest priority in Baha'is consultation model.

Here are some good resources throwing more light on this model



This technique could be applied during Estimation and retrospective sessions in Scrum.

Wednesday, June 25, 2008

Self Organizing team and its limit

There is a limit to everything and including the limit, a self organizing team can reach.

Self Organizing teams are characterized by the following features
  • The team members share a common goal
  • They collaborate to accomplish their goals
  • Each team member shares the responsibility while managing the tasks
  • They make their own decisions to achieve the necessary goal
  • They take responsibility of both success and failure
Copyright

Self organizing teams are considered to be powerful and productive as compared to teams managed by a manager. However the question arises, can the team make decisions which could possible go against the company's goals ? if so, is it all right for self organizing teams to make such decisions ?

For example, a company might want the team to attend the CEO's biweekly presentation, however the team does not want to do so. Can such decisions be allowed ?

Even though self organizing teams can make their own decision to achieve the goal, the team cannot do whatever they want to do. There are certain limitations and framework within which they have to operate.

For example, the decisions made by self organizing teams should
  • be in line with organizational goals
  • Customers goals
  • Goals of the project
  • be Socially acceptable
If the team does not want to follow one or more of the above framework parameters, the stakeholders of the projects have all the rights to take necessary action. It is also important for the stakeholders to understand the root cause of the problem by applying Five Whys or any other techniques.

Sunday, June 15, 2008

When would you not apply Agile methods ?

I have been applying Agile methods from so many years and been interacting with many Agile experts. So far I have not seen/heard stories about the projects where it had been felt that Agile cannot be applied. Agile methods should be looked more like a risk mitigation strategy on software projects rather than a "software development process". Agile promotes continuous improvement through learn and adapt cycles.


Following are the possible characteristics of a project where Agile need not be applied:
  • The project carries no risks
  • The stakeholders are not interested in continuous improvement of project quality.
  • The stakeholders are confident that the project would go as per the project plan without any deviation. Even if it deviates, stakeholders/teams are fine with it.

Here is Ken Schwaber's take on "not" applying Scrum on projects:

I wouldn’t use Scrum if I were embarking on work in which there was absolutely no possibility of change or the unexpected. I would then confidently plan the project and await the predicted results on the day when it was due for the cost that was estimated. Wouldn’t this be a wonderful world ?

Stakeholders and management team keep coming across situations to make decisions around complex and debatable subjects, similar to the one we are discussing now(Agile - Not Agile). In such situations Ralph Stacey's Agreement & Certainty Matrix might come handy.

Saturday, May 24, 2008

Towards an evolutionary design by Venkat Subramaniam

Recently I attended Venkat's seminar on "Towards evolutionary design". Thanks to ASCI and Binary Essentials for sponsoring this event. The event was a huge success and a lot of people attended the event inspite of heavy rains.

Evolutionary Design

Image copyright

Venkat, is a proven software architect and an Agile expert. One can easily feel the passion when he speaks about the evolutionary design and architecture. Here is the summary of key points that I learnt from the seminar

1. Design can be of two types, strategic (high level design, modeling, etc) and tactical design (TDD, Refactoring, etc)

2. He recommended the audience to read the two good articles, "Who needs an architect" and "Is design dead ?" both by Martin Fowler. Another good book he recommended us to read was the Humane Interface by Jef Raskin

4. He explained Kent Beck's Triangulation concept very well. He mentioned that frameworks should be selected based on the need rather than emotions, and he wanted the development team to avoid "Resume Driven Development(RDD)" :-)

5. He encouraged the architect to apply the "Tracer bullet" concepts while architecting solutions. That is, create a prototype first and use this as the tracer to create a robust architecture.

There were many more take aways from this seminar and I would let his presentation speak about the rest.

Tuesday, May 20, 2008

The Agile Zone - Papers

I found this web site  The Agile Zone - Papers  with interesting papers, articles and presentations on (or related to) Agile Software Development.   The site lists the articles/white papers alphabetically.