Aug 28 2011
Recently, a blog post by Maurits called “Why Scrum will never work” broke the quite village of scrum and agile community in China. One of the popular technical blog called Coolshell translated the original post and also appended it with some translator Chen Hao’s thoughts who is a tech geek, one of my good friends.
As majority of the software development teams have already understood what agile is and how a team could benefit from agile adoption. It is regardless of other people’s view. It was my view too until I saw a question from Zhihu, the Chinese version of “Quora” that has been under development by Innovation Works (Chuangxin in Chinese) a company founded by Kai-Fu Lee.
Let me put my own view on Maurits’ 9 reasons of Why Scrum will never work.
Firstly, I personally do not believe that great methodologies or engineering practices are mandatory for creating successful products, especially small and simple products. Secondly I do not reckon that Scrum could go a long way without adopting widely-used engineering practices, such as continuous integration, automation tests, simple design, code review and etc.
In my mind, agile does not only mean the combination of scrum and Extreme programing but also a set of methodologies that could create goal driven, self motivated, self-organized and learning teams that is guided by lean principles. It is the reason that I chose helping many product teams to be better and better as my career.
Reason 1: I certainly agree that there are people out there who find that it is hard to trust someone at first place. I had experience that some of the team members did not want me to help them although the majority of the team members did desperately. Why? There are trust discrimination. You can read one of my blog posts about it (In Chinese). However it does not mean that this group of people would never to trust or intended to doubt you. If you had already read my blog, you would find out that they would trust someone else because “someone else” is either authorities, friends, family or engineers who share the same value, love the same culture. No one would disagree that un-trusted teams were virus, inefficient and one of the top reasons that project failed. So everyone dream or plan or is creating a trusted team. I am doing it now. It is not easy but you got to do it if you really do want to create great products, not waste your life. When you have a trusted team, you are half way to success.
Reason 2: Most of the software engineers are underpaid, really? Good software engineers got paid very well in companies like Huawei, Tencent, Chuangxin, Google, Facebook, Twitter, Amazon. You could give me a longer list if you spend more than 30 seconds. If you are good engineers, you even could create your own business, Mark Zuckerberg, Larry Page, Bill gates, those lads who own billions of dollars used to be engineers. Thousands and thousands of engineers created the miracle in Silicon Valley. BTW, they are still doing it. Yes! There are engineers who are underpaid unfortunately. If they have potential they would get better paid. If they believe they do but are still short of money, there are chances that they are not good engineers. They could be really good at architecting products but might not be good at engineering; good at programming but might not be good at communication. Being successful requires lots of skills and experience. You have to learn it as soon as you are free. BTW, everyone in the world believe that they are underpaid and it does not matter what you do for living. The only one that I heard did claim that they were overpaid was Warren Buffett
Reason 3: As the above reasons could not be proved itself, some teams need managers, some team could be self-organized. However, the best managers that I knew do not only do assigning tasks, managing developers. They create clear goals, coach inexperienced team mates. They certainly do not micromanage and they care about the results and leave enough space for mature teams to manage by themselves.
Reason 4: Scrum is not only a process, if you really read the book, practice it in more than 3 projects, you would certainly understand that scrum could help a team learn faster, get mature faster, make mistakes earlier, correct mistakes earlier even fail earlier. Experience people would create better teams. Intelligent people might not. I am not very clear about the definition of “Good people”. I guess that it means nice and experienced guys.
Reason 5: There are two types of projects roughly speaking, customized and public. Majority of the public products such as social network, search engine, online games have their product owners(managers). They care about their users’ feedback, they look their products like their own kids. On the other hand, customized software owners normally business manager in client organization might not care the products at all. But the ones who do, they delivered better results, they got better chance of promotion.
Reason 6: I watched a great presentation on TED a while ago. The speaker is a professor who did research of how to motivate knowledge workers. As the result, normally knowledge workers (e.g. software engineers) keen to improve themselves because they want to be more experienced, learned more knowledge and become senior. Compared to being a authorities in some areas they might care a bit less than the compensation that they would deserve. This is a lot different as the rest of the world. Knowledge workers are a group of special productivity.
Reason 7: Product owners focuses on “what” and “why”. The development team decide “how” BUT they also need to know what and why. It is misunderstanding of agile principle and methodologies. The first key thing that I did in my current agile organization transition project was to bring the key teams member to finalize project goals, key strategies, and etc then broadcasted to the whole team. It has been and always should be the first step of creating a goal driven team.
Of course there will always be deadlines, which help the business and development to find the miracle balance of value and investment. The whole nation of Chinese people are doing it,
finding the balance.
Quality is part of the product feature. Why? If there are bugs in one feature it means that it does not work, or in another word, it was not accomplished or developed. So maintaining good quality of a software equal to saving feature.
Reason 8: Unfortunately most of the teams that I worked with CARE a great deal of quality. Why? It does not because that Joe Average programmer got paid between 9 and 5. It is because they did not want to suck their own balls to fix hundreds bugs, working a lot of overtime to complete their own jobs. They do care because knowledge workers want to be professional and they do not want to be shamed about their work. They care about the faces.
Reason 9: Sadly it is the only reason that I totally agree. Agile methodologies do not suit for the government projects or fix bid projects. When I was an Operations Director of an IT company, I convinced my client to convert fix bid model to time and material. What was the difference? It gave my client more freedom and increased return of investment a lot. Did they care? Of course they did. Most of the government projects were managed under Prince II in the UK and waterfall in China. Because they are not using their own money, they use ours. They use our taxes. If you do not want your money to get wasted, try your best to convince your clients switching to agile.
In the end, I do not care if a project uses agile, scrum, waterfall, CMMI. I really don’t. What I care are “building great teams”, “deliver financial objectives”, “creating elegant products”, “satisfying customers”, “improving clients’ profitability”. It happened that agile along with other effective methodologies helped me to achieve the goals. What’s more? I want to see the happiness of the users who use my products, games, and everything my team and myself create.
近来，Maurits的一篇博文“Why Scrum will never work” 一石激起千层浪。著名技术分享网站酷壳（http://coolshell.cn/articles/5044.html）翻译了这篇文章，我的好朋友，网站创始人陈浩还加入了他的一些想法。
原因2：大多数软件工程师收入不高？在华为，腾讯，创新工场，Google, Facebook, Twitter, Amazon，好的工程师薪水很高。如果你花超过30秒时间，你会列出一个更长的名单。如果你是好的工程师，你甚至可以创业，自己当老板，Mark Zuckerberg（Facebook创始人），Larry Page（Google创始人），Bill Gates（微软创始人）这些拥有百亿身家的人都曾经是工程师。在硅谷成千上万的工程师创造暴富神话。并且，这些神话还在发生着。的确有工程师的薪水不高。如果他们是有潜力的，他们的薪水可能会上涨。如果他们自认为是好工程师，但是缺钱花，那我猜有可能他们不是好工程师。他们或许擅长架构设计，但是不擅长软件工程；或许代码写得很好，但是交流能力欠缺。成功是需要经验和技能的积累。你必须无时不刻的学习。并且，每个人，无论他所在什么行业都会抱怨老板应该给我更多报酬，近来我只听说一个人说他收入太高，政府应该多收他的税。这个人就是著名投资人巴菲特。