開發軟體怎麼樣比較容易成功?
這篇文章先不講scrum了,先講一下我自己看軟體開發的一些經驗,而這些經驗應該是可以增加軟體專案在時間內deliever的機會。
專案一開始還在cook的時候,就可以先做一點事情了,就可以先做一點prototype了,千千萬萬不要等到spec出來了,才開始施工。要用盡全力避免BDUF(Big Design Up Front)。
除非你的專案是很大超級大無敵大的那種,比如說太空梭專案、高鐵專案或是核能電廠的專案,一開始沒想好就可能會死人的那種。我是說真的,人會過世或是造成整個國家社會動盪不安的軟體專案那種。你手上的網站、 App、遊戲或是device的軟韌體的Spec更改了,是會死人的嗎?
還有...
恩,不解釋,這好像是廢話。
恩,不解釋,這好像是廢話。
但是第二點跟第三點好像是衝突的喔?測試越多品質越好,但也會找到很多bug,要修這些bug,就必須要在原本的code上面加上一點code,那就跟第二點衝突了。所以這是很有深度的。
解決方法是使用TDD。但TDD真的不容易啊。
工期給它們估計,進度給他們自己掌握。你需要一個自動自發的團隊來做這件事,如果沒有的話,一個有經驗的scrum master或是,至少,有經驗有熱血的資深工程師都可以幫助塑造這種自我管理的氣氛。
不要再找PM來管理團隊了,團隊真的可以自己管理自己。
這是正常的,目標是持續的做出老闆或是客戶不要的東西,才能知道甚麼是老闆跟客戶要的東西;而以這些不要的東西作為基礎,打造出正確的東西會更快更舒服。
所以要擁抱改變阿!
以上,一點小小個人意見。
1. 越早開始越好
專案一開始還在cook的時候,就可以先做一點事情了,就可以先做一點prototype了,千千萬萬不要等到spec出來了,才開始施工。要用盡全力避免BDUF(Big Design Up Front)。
除非你的專案是很大超級大無敵大的那種,比如說太空梭專案、高鐵專案或是核能電廠的專案,一開始沒想好就可能會死人的那種。我是說真的,人會過世或是造成整個國家社會動盪不安的軟體專案那種。你手上的網站、 App、遊戲或是device的軟韌體的Spec更改了,是會死人的嗎?
還有...
到底是誰說有了spec才可以開始動工的?
2. 寫越少的code越好
恩,不解釋,這好像是廢話。
3. 做越多的測試越好
恩,不解釋,這好像是廢話。
但是第二點跟第三點好像是衝突的喔?測試越多品質越好,但也會找到很多bug,要修這些bug,就必須要在原本的code上面加上一點code,那就跟第二點衝突了。所以這是很有深度的。
解決方法是使用TDD。但TDD真的不容易啊。
4.把權力下放給團隊
工期給它們估計,進度給他們自己掌握。你需要一個自動自發的團隊來做這件事,如果沒有的話,一個有經驗的scrum master或是,至少,有經驗有熱血的資深工程師都可以幫助塑造這種自我管理的氣氛。
不要再找PM來管理團隊了,團隊真的可以自己管理自己。
5. 擁抱改變
所有團隊成員都要知道,這樣做軟體的話,會有很多白工,也很多re-work。某一天,大家會士氣低落,因為覺得:e04,又要改了。這是正常的,目標是持續的做出老闆或是客戶不要的東西,才能知道甚麼是老闆跟客戶要的東西;而以這些不要的東西作為基礎,打造出正確的東西會更快更舒服。
所以要擁抱改變阿!
以上,一點小小個人意見。
留言
張貼留言