One of the precepts of Agile Project Management is the concept of delivery through disciplined, self-organized, cross-functional teams. Somehow, “self-organized” has changed to “self-managed” in some organizations. I have often used the following analogy: If I decided to purchase and operate a restaurant, I would fund the purchase, perform the marketing research, and then decide on the atmosphere and style. I would then carefully educate the kitchen staff on what we are going to accomplish and proceed to let them decide on how they are going to go about delivering that menu. One thing that I did not say is that I would essentially let the kitchen staff “wag the dog” by dictating the hours of operation, the decor, or even perhaps the size of the menu. However, if I am a smart business owner, I would certainly seek and heavily consider their suggestions and do my best to gain their buy-in to my vision.
Now, this scenario would be easier if I started from scratch and brought in a new staff. Let’s say that I purchased a restaurant and all of its assets, including the staff. Then I went about all of the activities I mentioned above. Unfortunately, the odds are that I’m going to have some staff members that perhaps are not as talented as people thought, or we might find a person or two who do not carry the same level of work ethic. Which means, that I need to make some changes. The sooner we can find these weaknesses, the sooner I can make these changes.
Now let’s go back to Agile: we need to remember that transitioning to Agile Methodologies is in fact an paradigm shift in the corporate culture (that’s, right…the entire corporate culture). Which means that besides providing for, instituting, and supporting the technical aspects of Agile Development; and besides providing great agile leadership, the business needs to look holistically at the fit and feel of the staff, and be prepared to replace those weaknesses with stronger assets.
Now, don’t exaggerate my comments here. I am not saying that everyone needs to clean house; I merely stating that every business should want the all-star team. Think about the changes to hiring practices. We should always be hiring for fit as well as hiring for skill. This also means the aligning all the internal organizations (Marketing, IT, Sales, Professional Services, etc.) to culturally fit is crucial to meeting your business objectives, and therefore, to your success.
 More powerful language such as Python, Ruby, etc.; More flexible architecture; Acceptance Tests, Test Driven Development, Unit Tests, Refactoring, Source Control, Knowledge sharing, coding standards, collective ownership, continuous integration, et.