I am frequently amused when the same people who believe that it is not possible to get the requirements for a product correct up front, and therefore want to use Scrum for development, will in the next breath explain how they aren’t quite ready to start using Scrum because they haven’t worked out all of the details of their Scrum approach! This type of thinking is poorly aligned with fundamental Scrum principles.
When employing Scrum, you shouldn’t worry about getting things perfect up front. You can’t! And trying to be perfect up front will force you to guess at the expense of important learning that you will get only by applying Scrum and seeing what happens. In my experience, most teams’ first couple of sprints aren’t all that pretty. That’s OK. My only expectation of any Scrum team is that it be better in the next sprint than it was in the previous sprint. So, don’t delay getting started. Whatever you think you know now about your use of Scrum, imagine how much more you will really know after you start and finish the next sprint!
Also, don’t expect your Scrum adoption to be problem free. I can guarantee that at some point your organization will encounter impediments that make performing Scrum difficult. Scrum makes visible the dysfunctions and waste that prevent organizations from reaching their true potential. What it does not do is tell organizations how to solve those issues. That hard work is up to the people in the organization.
Source: Essential Scrum: A Practical Guide to the Most Popular Agile Process, Kenneth Rubin, Addison-Wesley,
This quote from Ken Rubin’s book is a good example for me of the difference between “doing agile” and “being agile”. Being Agile is accepting that things are not perfect, that there is no predefined optimum process that works for everybody to follow to develop software, that you can experiment on the software development process.
Being Agile means that the team is ready to say that you are not satisfied with a current situation and that you are trying to improve it… and not to find who’s fault it is. Being Agile means that when you try something to improve the current situation, you are ready to accept that your efforts might not be successful.
Being Agile means that the organization has to change its vision from the carving in stone the perfect best practices to a situation where you try to expose your weaknesses as the base for a continuous improvement effort. So try to be strongly Agile: think about your weaknesses and how you can improve them.