Joy還是一個很低調的人,他繼續做他本分的事情,只不過這次的本分就是統籌負責所有的開發問題。
接下去就是項目的問題一個接一個的被快速解決掉,其他程序員也得到強有力的幫助,快速處理到自己手頭中的bug。
項目進展很快趕上了原來的計劃。
你真的很好的發揮了你組員的潛力了嗎?
#人人看到全盤
項目經理能夠很好的分配好任務,讓各個組員可以較獨立的工作,這是不錯,但也不見得就是好事。因為軟件開發是一個團體的工作,各個人做的事情之間都有交叉。我做的功能,接下去就要調用你的接口。你做的頁面,接下去就要跳轉到我的。
Bruce做一個功能,是要顯示公司人員信息的列表。里面有個操作,選擇一個人員計算出勤率。這個操作不是Bruce完成了,他只要直接調用Lisa的頁面,Lisa的頁面會直接計算出勤率并顯示出來。Bruce認識,他只要簡單傳一個人員的ID過去就可以了。
Lisa做這個出勤率的頁面,因為這個人員是屬于業務人員,經常要在分公司跑,所以只能計算他在某一個分公司的出勤情況。她以為大家都知道。
等大家都完成了,QA在測試的時候,發現在人員信息列表里面點進去,顯示不了出勤頁面。整個流程都走不通了。
后來才發現有2個問題沒解決好,一個人員信息跳轉到出勤頁面前要傳遞當前的分公司信息,一個是出勤頁面還要增加選擇分公司的功能。
這2個問題一個是QA測出Bug,一個是需求還有不足。而這本來是應該在開發周期內就可以發現并解決的問題。
根源就在于,Bruce跟Lisa在做手頭任務的時候,都沒有去考慮跟其他人的關聯。而他們2個人都沒有去考慮的話,其他人更不會去考慮了。
如果Bruce或者Lida在做任務的時候,去想想他們彼此怎么串聯起來,這問題本身就很簡單了。
項目組的每個人,可以重點在自己手頭的任務,但是思路必須是在全盤,大家腦子里面都要經常去想想,整個系統是什么樣子的,我的功能前后的依賴是什么樣的。項目經理平常要引導大家這樣想。
#一定要分成每一個小迭代
步伐邁得太大了,你就不知道你邁得對不對,邁得夠不夠快。項目是不可能一步到位的。把一個大目標分解成每一個小目標,整個項目工期分成若干個短迭代,一個一個的完成。每一個完成的小目標都能幫助你理清整個項目的進度,方向,幫助你審核一下目前的思路是對的還是錯的,出錯了,也能夠及時的調整。
#不做一半的功能
如果我們做了2個功能,但是我們每個功能都做了一半沒全部完成,那目前為止我們總計完成了多少個功能?1個?
不是的,完成了0個。一個功能除非真正完成并且通過產品經理的檢查,不然你永遠不能確定這個功能是不是還有一些遺漏的地方。
100個完成度為90%的功能合起來,完成的功能還是0個。你很興奮你的程序里面有很多功能,但是你試了一個又一個,結果發現每個功能都是半成品,沒有一個功能可以正確解決你的問題。
對于半成品的功能:
1. 你其實并不知道你還剩多少工作量,因為已經“完成“的工作不能驗證說是真正完成的。
2. 你沒法給業務部門或者客戶做演示,因為這些功能沒做完。
3. 如果業務部門讓你暫停一下,就先按照目前已有的功能去讓客戶測試一下,你會啞巴吃黃蓮,有苦說不出。
所以我們做功能的時候,要確保我們在做的功能已經是真正完成了,我們再去接著做下一個功能。
#不讓細節影響你的目標
項目組的人很容易沉浸在功能的細節當中,為一些友好美觀的顯示,炫麗的功能或者很酷的設計浪費大把的時間,忘記了這個項目的最終目標是什么。其他人可以投入,但是項目經理一定要能夠抽身事外,專注在項目的全局。沉浸在細節當中很容易讓人忘記工期,忘記項目的最終目標。
我這個提示信息的顏色會不會太淡了?要不要再調深一些?
我這個按鈕是不是可以往左邊移10像素,這樣更好看?
這個地方要不要來一個自動提示,這樣會更友好一點?
我這個面板的顯示要不要使用漸變的?1秒內漸變完成會不會太快?用戶會不會還沒看夠?
你先把功能完成再說好嗎?以后有的是大把的時間美化這些。
#正確的里程碑要點
我們碰過一個項目,項目經理的報告說,目前的狀態是開發完成。結果一看,這樣說的依據是分配到所有開發人員的任務,開發人員都認定為完成了。于是大家就認為目前是開發完成,進入QA測試的階段。
結果QA報怨測試不下去,流程都走不通。產品經理進去看了一下,也說很多地方功能缺失。根本不能認定為開發完成。
1. 一個項目,或者一個短迭代,應該先列出一個所有人都認同的里程碑列表。
比如,分為框架設計完成;分解出來的需求已經可用于開發;子任務劃分完成;子任務已經分配并預估完成;各子任務完成;開發人員整合測試完成;產品經理檢查通過;QA測試通過。
2. 每個里程碑的完成要有大家都認同的驗證方式
比如如何判斷開發人員整合測試完成,是不是開發人員坐在一起或者開發組長把所有流程都走過一遍,然后發現沒有什么大的問題?
#自我管理
前面講了這么多,弄得好像項目經理很重要,缺了這個項目經理整個項目就不轉了。如果項目經理的手下是固定的,只不過做的項目不一樣,那我建議項目經理在完成項目的基礎上,一定要考慮這樣一個目標:
建立一套流程,一套大家都熟悉并且會遵守的流程。這個流程可以保證整個項目組在項目經理不在的情形下,也可以運轉得很好。
目前項目處在什么階段,這個階段大家要做什么,下一個階段是什么;這個階段有什么任務要做;每個階段碰到問題要怎么處理;每種任務或者問題由誰來處理。這些并不是很難學會的東西。項目的成員經歷過幾次,很容易就可以理解要怎么做。項目經理除了推進項目以外,還要在項目的過程中把流程的思路,解決各種問題的思路教給大家,同時明確每個人的職責,達到項目組可以自我管理的程度。