My Understanding of Agile Development

one of the scrum masters in Shinetech
October 2010

The word “Agile” has been discussed for more than three years in Shinetech. Till now, it is still a hot word, and a lot of people still discuss about it. This article would not give a definition to “Agile”, for similar definitions have been stated in our company comprehensively. I only hope to show a brief description about that how I understand the word “Agile” in the past three years; and some views & suggestions about current training.

It is in 2006, our General Manager held a series of project manager meetings discussing project development methods and quality assurance, and “Agile” is one of the topics. At that hard time, there were only three to four people participating in meetings (I call it “four-people meeting” for the time being), but I have learned rich knowledge and experiences from the meetings.

During the four-people meeting, we rarely discussed about theory, but more experiences and methods. At that time, I looked for methods and did experiments like crazy. For example, I ever thought if my hand kept staying on the keyboard but not to use the mouse in a day, whether my daily work efficiency would be improved. For another example, if the team given two hours for silence in a day, whether the overall efficiency would be better than live communication. When I summarized the findings, I always shared them in four-people meeting. Moreover, I learned methods from others, and then tried them, these valuable methods have changed into my practices in the days that followed. Afterwards, the idea of “Agile” took deep roots in my heart by reading some books and my own understanding. It gradually became a standard of my behavior, and I always hope to use this idea to affect developers around me. It seems that I believe a kind of creed, and hope to pass it to each developer around me.

But please let us cease this kind of preach on spiritual level, for soul food can't feed up those hungry developers. What they need are methods, knacks and usable tools for them. I hope our “Agile” staff or people with rich experiences to tell them: “Please let your hands on the keyboard for more times, don't use mouse as more as possible”; “Please adopt auto-deployment, for it can save you 80 percent of launch time”; “ NAnt is convenient to auto-deployment, and I will tell you some tips to use it”; “Please let the first iteration integrated on your customers' deployed server, if not, the last deployment may come up many problems”; “TDD is very easy to write in fact, I will teach you the method to write the first UT, and teach you how to utilize these basic UT cases to reach TTD.”; “do you use all shortcut keys in VS2010? Which have you never used?”

Only our developers use “Agile” methods and benefit from them, could they really understand “Agile”. It is a shame that I can't take part in various training in Beijing, and don't know specific contents. But I propose that never let a chance of training break down any people with yearn for “Agile”. Definitions of “Agile” are often terrifying, because it makes people work like crazy, but “agile” people are enjoying such craze.