Aug 28 2011

How I read Maurits’ “Why Scrum will never work”

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.

Chinese translation:

近来,Maurits的一篇博文“Why Scrum will never work” 一石激起千层浪。著名技术分享网站酷壳(http://coolshell.cn/articles/5044.html)翻译了这篇文章,我的好朋友,网站创始人陈浩还加入了他的一些想法。

直到我看到在知乎(http://www.zhihu.com/question/19793669)上的一个问题之前,我也认为大多数软件开发团队已然知道敏捷是什么,可以给团队带来什么。他们可能完全不在乎别人怎么看敏捷。(注:知乎是李开复老师创新工场孵化的类似于Quora的一个中文问答网站)

说一下我对Maurits9个“Scrum永远不能成功的原因“的解读:

首先,我个人认为一个产品的成功和是不是使用什么方法论,工程实践没有必然联系,尤其是对于小而简单的产品更是如此。其次,我个人不认为在没有广泛应用的软件工程实践的支撑下Scrum可以持续不走样的保持下去。这些工程实践包括持续集成,自动化测试,简单设计,代码审查等等。

我个人理解,敏捷不单单是Scrum和极限编程的集合,而是一个以精益原则为基础,可以创造目标驱动,自我驱动和学习型的团队的一整套方法论。这也是我选择帮助很多产品团队不断完善自我作为我职业的原因。

原因1:我完全赞同,的确有些人很难在最开始相信别人。我也曾有过一个团队中的大多数人希望得到我的帮助,但是个别人非常抵制的经历。为什么会这样呢?因为“信任歧视”!你可以读我另外一篇博文有对这个话题的分析(http://blog.sina.com.cn/s/blog_626530940100mn3c.html)。但是这并不意味着,这些人永远不会或者故意不相信别人。如果您已经读过我的博客,你就知道他们其实相信某些人。这些人是领域专家,朋友,家庭成员或者和他们有共同价值观的工程师。任何人都不会否定,“团队中没有信任”是项目失败的首要原因之一,是毒药,也会造成工作效率低下。因此每个人都希望能建立一个互相信任的团队。我也在努力帮助团队互相信任。如果你想创造出牛X的产品,不想浪费你宝贵的生命,这就是一个非常有挑战但不得不做的任务。当你拥有这样一个团队,你成功一半了。

原因2:大多数软件工程师收入不高?在华为,腾讯,创新工场,Google, Facebook, Twitter, Amazon,好的工程师薪水很高。如果你花超过30秒时间,你会列出一个更长的名单。如果你是好的工程师,你甚至可以创业,自己当老板,Mark Zuckerberg(Facebook创始人),Larry Page(Google创始人),Bill Gates(微软创始人)这些拥有百亿身家的人都曾经是工程师。在硅谷成千上万的工程师创造暴富神话。并且,这些神话还在发生着。的确有工程师的薪水不高。如果他们是有潜力的,他们的薪水可能会上涨。如果他们自认为是好工程师,但是缺钱花,那我猜有可能他们不是好工程师。他们或许擅长架构设计,但是不擅长软件工程;或许代码写得很好,但是交流能力欠缺。成功是需要经验和技能的积累。你必须无时不刻的学习。并且,每个人,无论他所在什么行业都会抱怨老板应该给我更多报酬,近来我只听说一个人说他收入太高,政府应该多收他的税。这个人就是著名投资人巴菲特。

原因3:既然Maurits的原因2是悖论,一些团队需要管理者,一些可以自组织。很多我认识的非常好的管理者不单单是分任务,管理开发人员,对于他们来说更重要的是设定清晰目标,辅导缺乏经验的队员。他们的共性是不追求细节管理,但是结果考核,授权给团队去发挥。

原因4:Scrum不单单是一个流程,如果你读过这本书,并且在3个以上的项目中实践过Scrum的话,你一定会理解,Scrum可以帮助团队快速学习,快速成长,早犯错误,早改进,早失败,早总结。相对于聪明人来讲,有经验的人可以创造出更好的团队。我不太理解Maurits所说的”Good people”,我猜可能是和善,并且有经验的人吧。

原因5:项目或产品大致上分成两种,一种是定制开发,一种是面向大众的产品。大多数面向大众的产品,例如SNS,搜索引擎,电子商务,在线游戏都会有产品经理负责。他们非常关注用户反馈,他们把自己的产品当做自己的baby一样看待。大多数情况下,定制开发软件的决策者往往是客户方的业务经理,他们未必那么关心产品。我个人经验中,那些非常关注产品的业务经理往往得到更早的晋升。

原因6:我曾经在TED上看过一个演讲,演讲嘉宾是Dan Pink(http://www.ted.com/talks/dan_pink_on_motivation.html),他研究一个“如何激励知识工作者”的题目。其结论是:知识工作者通常情况下有意愿提高自己,因为他们希望成为更有经验的人,学习更多知识,变得更资深。相对于在某个领域成为专家的追求,他们对收入的诉求相对会小一点。这是一个和其他领域非常不同的群体。知识工作者是一个极为特殊的生产力。

原因7:产品经理专注与“做什么”和“为什么做”。开发团队专注于“如何做”,但是他们同样需要知道“做什么”和“为什么做”。Maurits的观点是对敏捷原则和方法论的一种片面的理解。我正在参与的一个敏捷组织转型项目中,我所作的第一件事情就是和项目核心成员共同确定项目目标,策略等,之后给团队所有成员解释。这是创建一个目标驱动团队的第一步也是必要一步。

“交付期限”是必须有的,它可以帮助业务部门和开发团队巧妙的找到投资回报的平衡点。中国人的文化就是这种“中庸”文化。

产品质量也是“功能”,为什么呢?如果某个功能有bug,这意味该功能不能使用,换句话说就是这个功能的开发没有完成。因此维护产品的质量等同于“挽救”功能。

原因8:幸运的是,大多数我曾工作过的项目“极其”在乎产品质量。为什么呢?其原因不是这些“平均水平”的工程师只朝九晚五的工作,而是因为他们并不想痛苦的加班加点的修bug。作为“知识工作者”他们希望自己更专业,更牛X,不想丢脸。

原因9:对于这条原因,我倒是不得不赞同。对于政府项目和固定预算固定范围的项目,敏捷不是一个合适的方法。当我在英国做一家IT公司的运营总监(COO)的时候,我说服了我的客户从这种固定时间固定范围的方法转换成按人天付费的方法。最大的区别是什么?这种新的方式给予我的客户更大的自由去争取更多的投资回报。他们在乎么?当然在乎!在英国,大多数的政府项目使用Prince II来管理,在中国瀑布模式还是主流。如果你不想你上缴的税收浪费掉,尽你最大的努力说服你的客户转向敏捷方式吧。

最后说几句,我真的不在乎一个项目是用敏捷,Scrum,瀑布或者CMMI,完全不在乎。我真正在乎的是“组建牛X团队”,“实现商业目标”,“创造出高品质产品”,“让客户满意”,“增强客户盈利能力”。恰好,包括敏捷在内的一些有效的方法论帮助我去实现了以上的目标。我更希望看到我们的用户在使用我们产品,玩我们的游戏的时候得到真正的开心和便捷。

//

Bookmark on del.icio.us

No responses yet

Feb 24 2011

Pair programming guideline

Last year, our team ran into a few product quality and team training problems. At that time both code review and pair programing were brought on the table in order to resolve these problems.

Background:

The team had been using Ruby on Rails to build a vertical search engine and a legal related business Web application.

Problems:

  1. Many function can not be reused or migrated or refactored.
  2. We didn’t know that somebody had wrote a public or share library(gems)
  3. Code readability problem:  variable names, function names or class names(code style) are hard to understand
  4. Different understanding of business domain knowledge
  5. Different skills set of testing a product.
  6. Team is lack of Rails experience.

Root cause/concern:

By asking five whys to ourselves, we figured out the root cause of the problems above are that the team is lack of engineering experience, practices; previous working environment did not train people to work under a good discipline , previous company culture, release schedule was too tight, and project was not well scoped.

After we figured out these root cause which you might not be able to tell from the phenomenon, we decided to take actions on below solutions.

Solution:

  • Pair programming can resolve 1,3,4,5,6, Pair programming can also help us team building. Pair programming can reduce tasking switching, and drive team to focus more on producing high quality code.
  • “Check in” code review can resolve 1, 2, 3, code review is difficult to manage, also has negative impact on team productivity and spirit.
  • Integrate tools like “Checkstyle” into CI env to resolve 3.
  • Bring back test coverage tool into CI

In order to successfully adopt Pair programming practice in our team, I designed a guideline. See below:

Process

0. Eng decide who pair with whom
1. Eng pair pick up story after stand up.
2. Eng decide one of the pair as story owner who should not move to next story until it is done.
3. Eng switch pair everyday or every story.
4. As soon as story is picked up, a pair run story kick off, break stories into tasks. They put tasks either in a sticker or trac.

Definition

Pair programming is an agile software development technique in which two programmers work together at one work station. One types in code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer (or navigator). The two programmers switch roles frequently.

While reviewing, the observer also considers the strategic direction of the work, coming up with ideas for improvements and likely future problems to address. This frees the driver to focus all of his or her attention on the “tactical” aspects of completing the current task, using the observer as a safety net and guide.

See Wikipeida:

Purpose

  • Understand the whole system over know one component well.
  • Share knowledge over being bottle neck.
  • Collaborative ownership over I am the hero.
  • Quality of the product over quantity of the code.
  • Noise over silence.

Environment Set up

Pair station: 2 monitors, 2 keyboards, one driver, one navigator, same IDE

Howto

  • How to pair programming in general:

Start from Stand Up meeting. After standup meeting, engineer need pick up one story/task and decide who will pair with who. For each story, there will be one owner who will hold the story to its finished point. The owner take 100% ownership of the story quality.

Pair starts from understanding the story. A pair should go through the story together first and ask questions to each other as well as product owner. After the pair both understand the requirement 100%, you should start a small design session (how the pair wants to design the story). After the pair reach the agreement, the pair start implementing the story. When the driver is typing the code, the navigator need either follow the code or think of the test cases to test the code. Vice Verse. The pair discuss the implementation, design, tests all the time. If there are no noise, no argument, you are not pairing.

Each checkin need have both pair’s name in the comments. E.g. Check in comments: Complete register validation and tests — Tom & Jerry

  • How to drive:

The driver need work on a task from the end to end. After the task is done, he need pass the driver seat to the navigator, then he becomes the navigator. A driver should not pass the seat to navigator unless you have both the functional code and test done of your piece.

  • How to navigate:

Never stop giving direction, thinking of test cases, design. Ask the driver seat back when you think that a small unit of work is done. Small unit of work means part of the story, including “test-function”.

Q&A

  • If I work alone, how could I pair?
    • Either ask someone to review your code before you merge into master every time you merge the code or ask someone to review it by the end of each day.
  • If I work at home late night, how could I pair?
    • Grab your pair in the next morning, ask him to review your code.
  • What task should I pair to do, what should not?
    • It would be eng’s judgment call but this is the suggestions from widely used industry practices:
      .
    • Need pair: any functional story, major technical task.
    • Do not need pair: bug fixing, spike, env set up and config.
  • If I do not like pair programming, or it shows me down what should I do?
    • It does happen sometimes. My suggestions are: 1. try it and see what you and your co-worker can benefit from. There are thousands of software develop teams are using it right now on this planet. 2. If you still do not think that it shows you down dramatically, go back to the code review approach. Whenever, you need check in code into master, you need have someone to review your code.
  • We use different IDE, how could we pair?
    • Try to pick one that you guys both like, if it is possible. If it is not, can one of you try to learn the other and switch to it. If it still does not work, try Vincent’s way.

Reading List

Extreme Programming
Interesting blog post
What Kent said
What Naresh said

//

Bookmark on del.icio.us

No responses yet

Feb 20 2011

True story – a start up agile journey

Last week, I had an opportunity to present “an A start up agile adoption story” in the mentoring session of Innovation Works, a Chinese investment company who focuses on helping young entrepreneur to found their business. It was a pleasant experience when you saw so many talented kids showed their interest in starting up an mobile internet or e-business, or online games companies. I was impressed by the passion that each teams wanted to improve themselves as well as the teams.

For details, please see the online presentation on (http://www.gensee.com/chuangxin/plus/view.php?aid=68)

//

Bookmark on del.icio.us

No responses yet

Dec 18 2010

Value Driven Organization Transition online presentation

There were audience that asked for the keynote of my presentation on Agile Tour China 2010, China SoftCon 2010 and CCSE 2010.

Please see the link below Value Driven Organization Transition

Thank InfoQ China, Agile tour organizers!

//

Bookmark on del.icio.us

No responses yet

Oct 18 2009

AAladdin.com (阿拉丁) is live

AAladdin.com is an agile organization transition framework that was created by me in order to help medium and large size company to transfer from current organization structure to an agile organization.

For details please check AAladdin.com (in Simple Chinese) and AAladdin.com/en (In English)

//

Bookmark on del.icio.us

No responses yet

Jun 15 2009

Why estimate and measure?

Estimation and measurement are two key activities in software development projects. Without them, it would be very difficult to make a project plan. Both Agile and lean use value-driven principle which means anything that are not working software would not add value to business. However if these activities are regarded waste and abandoned, obviously projects would go disaster. Why are they so important to software development projects?

  

Estimation and measurement are key information for project planning. A project plan is used for communication purpose. It puts project stakeholders on the same page so they know what might happen in the near future and what happened in the past. Estimation will give the “project plan users” an ideal time line whilst measurement gave them the real progress.

  

As both estimation and measurement are not working software so they would not add value to business how to spend as less time as possible in these two activities are apparently quite important. PLAN is also like a “product”, KISS(Keep It Simple & Stupid) principle will work here too.  Over design of this “product” will lead to waste.

  

For estimation, it depends on how accurate that business requires. Because estimation is more or less a “guessing number” and influenced by estimators’ skills and experience. So it is not easy to have a team of 20 to agree on each other of the estimation. One of the rules is not to spend more time in order to make estimates more accurate and make it “Just Good Enough”.

  

For measurement, use common unit, such as hour, day, point, profit, $ and etc. and ensure that it is easy to be understood and used.

//

Bookmark on del.icio.us

No responses yet

Apr 26 2009

Design matters – London Marathon

London marathon was held on 26th April 2009 and there were more than 35,000 people participated. Runners dressed up with all kinds of funny costumes, funny as hell. I saw at least 4 spider men, 3 super men, 2 bat men, sunflowers and etc. Of course there were professional athletes, especially women’s game. The winner of 2008, 2007 London marathon, Olympics medalists were all present. Zhou Chunxiu(from China), Olympic bronze medal Olympic 2008, campaign of London marathon 2007 was one of the strongest potential winner who ended up out of top 10. She was in the first group in the first 25km and in very good shape when she passed my front door on Westferry road. Unfortunately she fell behind right after the 25 km point.

There might be a few reasons that she lagged around that point(24 km) where I was. She was not able to pick up the energy drink that was prepared for her and put on a table under a big sign something like “Drink pick up-1″. I guess that she might have moreenergy and get much better result if she was able to pick up that small bottle of drink. I also observed that almost all Japanese athletes had no trouble to grab their drinks. If you look at these two bottle of drinks and read my analysis, you might know why the design of the drink bottle actually matter.

Chinese design drink Japanese design drink

Chinese design Explanation Japanese design Explanation
Easy to be seen Very poor No clear sign, the label was rolled up and too hard to be seen; The colour is not outstanding Very good Two clear sign and one can strongly differentiated against other bottles; Color is obvious and can be seen from at least 20 meters away
Easy to be grabbed OK There is a strap but the material is hard and sharp. It could easily hurt the athlete’s hand Very good Strong and smooth material strap with blue color which is shining. Easy and comfortable to grab
Easy to drink Very poor Has lid; the position of the strap and the bottle is awkward [see the picture below]; very difficult to drink Very good No lid; has straw; very easy to drink
Multi-function None Nothing, but a bottle please and encourage the athlete There are the athlete’s favorite cartoon character, and slogan to encourage the athlete overcome the tiredness. It makes her feel warm and encouragement

Check out the pictures below (demonstrated by my super model – Dapang ) and find out why the Japanese design is much easier to drink.

Dapang demonstrationDapang demonstration

So, you see the design of a simple bottle does matter and maybe matter a lot. Think of the design in auto-motor or IT industry, a small awful design might just ruin your potential big success which was established with millions of dollar and lots of hard work.

//

Bookmark on del.icio.us

No responses yet

Mar 12 2009

Go Time & Material Model

What is time & material model and when it applies

A simple definition of “Time & Material” Model is that the purchaser exchange “material” with a service provider’s certain quantity of “daily rate”. The material could be a bunch of document which contains advanced management process, intellectual property, a piece of software or one side of well painted wall. The daily rate could vary from £20 to £8000 depends on how precious of the service.

 

This business model applies when scope, specification and implementation plans of a project are not easy to define at the outset, Time & Material Model becomes an attractive option. Under this model, you pay as per use of the hourly development efforts, making it the most flexible of the three models. [From http://www.continuum-systems.com/price-timeandmaterial.htm]. Time & Material business model is developed for long-term projects, where the total effort cannot be estimated in advance and the scope of work can vary during the implementation. [From: http://www.qarea.com/outsourcing-services/pda-time-and-material.php].

 

If compared with Fixed price model, which is ideal for projects with a detailed technical specification, Time&Material model is the best for scalable projects. This business model is highly efficient in case the project is hard to predict in terms of time and creative effort and in case the development process needs control and improvement upon each iteration. Thus, it allows for cancellation at virtually any stage of the development project[From: http://www.qarea.com/outsourcing-services/pda-time-and-material.php].

 

Corporation old procurement process

So Fixed price model is suitable for purchasing of a physical product or something that has fixed scope or feature. While Time & material model is suitable for purchasing of service or something without explicit feature during the contract negotiation stage. If you have a look at most of the corporation procurement process it is not difficult for you to find comprehensive and decent process for fixed price procurement which is for purchasing of a physical facility, a car or PCs. The problem comes along when corporations plan to purchase service such as consulting service or customized software. As they do not have a process that specialized service purchasing, they tended to use the existing one. So things started going completely wrong.

 

They just do not fit!

Think of that you plan to spend money on something which you have no idea what it is or you only know part of it. How could you decide how much you need pay for it. Decision should only be made with necessary concrete information you require. Clearly, there is no enough information for anyone to make a correct decision. Old software procurement model aligns with the old business model.

 

Low technology –> Business not change so much –> Fix scope/feature –> Fixed price model –> Waterfall software development model

 

I believe that you know how fast and unbelievable the technology and business grow. It is almost not possible to oversee and predict how your business look like in 24 months of time. So business requires a suitable model for software development service

 

High technology –> Business change very fast –> Scope can not be fixed or predicted –> Time & material model –> Agile, adaptive software development model

 

Change is inevitable

The world is not odd. Software development industry has grown from design and development of fixed feature product into customized enterprise application in order to provide better service and survive. So it is much more than just producing a physical product. It is service now. If you disagree, I will encourage you to give me one single example that there was no change of requirement in the development of any large scale enterprise application. I bet you can not. Requirement change is inevitable because business is changing. If your business does not change but others does, it is clear that you won’t be able to survive. Also there is no way to predict or imagine the change of requirement. So you need a more flexible and adaptive business model for this kind of procurement.

 

Solution

Probably you have already figure out the solution. Let me recap
  • Upgrade your corporation procurement guideline and process with Time & material model of service purchasing in it.
  • Develop or recruit professionals to manage Time & material project. It does require special expertise.
  • The key of applying this model is risk management and contractor performance management

 

Change it!

If you still use the old procurement model for service purchasing, you will definitely experience argument, displeasure and waste of investment. So why not change it?
//

Bookmark on del.icio.us

No responses yet

Mar 12 2009

Who wants to be a product owner?

Who wants to be a product owner? The answer is “No one”! What a product owner does? In an agile software development project, product owner is responsible for maintaining the Product Backlog by representing the interests of the stakeholders. So this person need work with different project stakeholders who might be from more than one business unit to collect and prioritize the requirement. The typical challenges are  

  • Difficult to coordinate business units and software development service providers to spend time together and figure out the high priority requirement.
  • Difficult to prioritize backlog across business units.
  • Normally corporation does not give enough support to product owner.
  • Business units ALWAYS complain that why their requirement could not be done first.
  • Etc
Ideally product owners should come from business because they are supposed to know business better than IT. Completely concentrating on business value without thinking too much about IT actually leads the whole team’s attention to business value. If a project that involves quite a few business units, ideally there should be someone either in business or IT who knows the business very well and have strong coordination and facilitation ability to take this role. Sometimes, this role was pushed to software service providers, it makes the job even more harder because it is extremely difficult for someone who is not in your corporation to coordinate business units to work properly.
The biggest problem is that because this job is so challenging and not well rewarded in the industry, no one really wants to do it or not so many people have the skills and experience to do it. So, does it mean there is no way out to solve this critical problem? The answer is “NO”. There are
  • Corporate management need understand the challenging of this job and give appropriated reward and support.
  • Business owners need to understand that if you want that your investment is well spent, if you want IT to develop what you actually need, you DO need spend enough time with product owner and software service provider to help them understand your business needs, requirement and problems.
  • Take the ownership, find or recruite someone within your organization to be the chef of your IT investment.
  • Product owner deserves very much respect and appreciation from corporate management and business units because this person is the most important ring of the whole business-IT chain.
After you have done these, there should be more people who want to be product owners who can manage your IT investment much better so that you would get the most return of IT investment.
//

Bookmark on del.icio.us

One response so far

Mar 09 2009

My driving instructor knows agile

My AA driving instructor Jason actually knows agile even better some IT professionals. I started learning “driving in the UK” from him about a month ago. After several classes, I found that he was a really good instructor and always put safety in front everything else. He even surprised me with his understanding of basic lean and agile principles. Let me tell the story.    

We had a class last Saturday, I was quite tired before driving so I could not concentrate on following every instruction or make necessary changes. So he stopped me and said that   

when you drive from office to home, you don’t need think of what will happen along the whole journey. As long as you go for the right direction you only focused on from where you are to the next junction or roundabout. The reason is that there is going to be change ahead so do not think of too much about too far away. Keep watch out what is happening in front of you. Thinking of mistake that you made would not help you to drive better when you are on the road. Concentrate making it right next time rather than thinking it over.

I was surprised because what he said sounds like an agile training session rather than driving lesson. Let’s have a look at how well his thought matches basic lean and agile principles

 

Jason’s thought Lean/agile principles and practices
Drive from office to home, go for the right direction Goal oriented, see the whole system, set a clear goal and direction
Focus on where you are to the next junction or roundabout Iterative development, focus on one iteration a time
There is going to be change ahead so do not think of too much about too far away. Keep watch out Change is inevitable. Continuously communicate and collect feedback, adaptively project management
Forget the mistake that you made when you are on road, make it right next time. Continuously improve the process and plan

 

It is very interesting when you see people from other industry or lead a complete different life actually have exactly the same understanding of how to do things right. I feel that it was valuable to pay a driving instructor’s rate and also get agile consulting service although I do not really need it :-)
//

Bookmark on del.icio.us

No responses yet

Next »

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.