開發軟體怎麼樣比較容易成功?

這篇文章先不講scrum了,先講一下我自己看軟體開發的一些經驗,而這些經驗應該是可以增加軟體專案在時間內deliever的機會。

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,又要改了。

這是正常的,目標是持續的做出老闆或是客戶不要的東西,才能知道甚麼是老闆跟客戶要的東西;而以這些不要的東西作為基礎,打造出正確的東西會更快更舒服。

所以要擁抱改變阿!


 以上,一點小小個人意見。

留言