I read a great post recently "Creating an agile environment" by Gregory S. Smith based on the book "Becoming Agile". This is a great article and well worth the read, the most important point that I took away was:
An Agile team is successful because it is honest and project status is transparent.
This is simple and easy to follow, it's how I try run kmsystems no hidden items just upfront and open. I want my clients to be truly involved in the development process, providing feedback, direction, ideas so that the solution we deliver far exceeds their original expectations. Most times getting clients engaged and involved is not as easy as you think. Not from any fault of their own they already have a million things on their plate and just want you to go away and come back with a solution. Unfortunately the hit rate of mind reading and interpretation isn't that high so more likely than not if the client doesn't get involved the outcome will not be what they are after and definitely wont exceed any expectations.
Another interesting point the article raises is around change
Many people still believe requirements change because they are poorly managed. They cannot comprehend a process that embraces change.
It's time to face it and admit perfection does not come without evolution and never stops. Change is important in software development. I used to tell my guys that they had to write super flexible code because tomorrow I'm going to ask them to change it.
I've summarised what I thought were the important points Gregory's post
Practices that foster an Agile culture. Practices such as high customer involvement, testing early, and collaborative decision making
An Agile manager will never write a line of code, never document any requirements, or test a feature. What an Agile manager will do is:
* Help the development team track true status
* Encourage the automation of redundant, repeatable tests
* Mentor the team on Agile processes and demonstrate the value.
* Help the team break the work into small chunks that can be delivered quickly.
* Ensure the work being delivered is in tune with the customers need.
Attributes of an agile environment:
* behave in a way to enhance human relations.
* “Just enough” planning
* Always ready to stop, drop, and deliver
* Unrelenting pursuit of customer value
* Ensuring technical excellence
* A great collaborator, communicator, and relationship builder
* Leading the team to ownership
* “The Scrummaster”
* An Agile team member does not fear uncertainty. They look forward to the challenge and they know they will succeed.