《軟件隨想錄(上)》讀書筆記

一 、喬爾測(cè)試

1.你們用源代碼管理系統(tǒng)嗎?

git 神器

2.你們能一鍵編譯嗎?

這個(gè)要去研究一下

3.你們做每日編譯嗎?

這個(gè)要去研究一下

4.你們有bug數(shù)據(jù)庫嗎?

5.你們?cè)趯懶麓a前修改以前的代碼嗎?

在做開發(fā)規(guī)劃的時(shí)候,要預(yù)留修改以前代碼的時(shí)間,而不能只是考慮到不斷疊加新功能。

6.你們的進(jìn)度表是最新的嗎?

每周的進(jìn)度更新是必要的,這樣才能知道每月的計(jì)劃能否順利完成。我們有最新的每周進(jìn)度。

7.你們有軟件規(guī)格書嗎?

就是我們的產(chǎn)品設(shè)計(jì)文檔。產(chǎn)品設(shè)計(jì)文檔,原型修改5遍,也好過代碼開發(fā)出來了再推到重來。
沒想清楚產(chǎn)品細(xì)節(jié)之前,不要開始開發(fā)!

  1. 程序員的工作環(huán)境安靜嗎?

遠(yuǎn)程工作者可以選擇自己的工作環(huán)境

9.你們使用了能買到的最好的工具嗎?

可以有

10.你們有測(cè)試人員嗎?

3.1以前都是產(chǎn)品經(jīng)理同時(shí)負(fù)責(zé)測(cè)試,3.2以后要引入專業(yè)的測(cè)試人才,提升測(cè)試完整度。

11.你們面試時(shí)會(huì)要求應(yīng)聘人員寫代碼嗎?

可以有。

12.你們做過走廊可用性測(cè)試嗎?

在做,且必須做。每次要提供不同版本讓用戶來比較體驗(yàn),并給出反饋。

感覺上,喬爾十多年前提到的這些,已經(jīng)逐步成為開發(fā)團(tuán)隊(duì)的標(biāo)配。

二、軟件功能規(guī)格書

  1. 為什么要寫:
  • 提高研發(fā)效率:能夠在開始研發(fā)之前設(shè)計(jì)好軟件,在設(shè)計(jì)的時(shí)候就暴露所有可能的邏輯問題可用性問題從而調(diào)整,而不是在研發(fā)的時(shí)候,從而大幅度提高效率,降低研發(fā)損耗。
  • 提高對(duì)合作伙伴的溝通效率: 便于設(shè)計(jì),測(cè)試,運(yùn)維,客服,運(yùn)營(yíng)等等合作伙伴來學(xué)習(xí)和了解軟件,而不用把所有內(nèi)容都用一遍同時(shí)還要打擾程序員不斷追問,才知道這是什么,該怎么用,有什么效果。而合作伙伴會(huì)面向用戶,告訴用戶這個(gè)軟件該怎么用。
  • 沒有規(guī)格書,就無法制定進(jìn)度表。
  1. 什么是規(guī)格書?
    • 概述: 這個(gè)軟件是做什么用的
    • 使用場(chǎng)景:產(chǎn)生需求的經(jīng)典用戶場(chǎng)景是什么,軟件如何幫助用戶解決問題。
場(chǎng)景

書摘:
從你產(chǎn)品的使用者中,選取積累代表性的目標(biāo)用戶群,為每一類虛構(gòu)一個(gè)想象中的、但完全典型的用戶。場(chǎng)景越生動(dòng),逼真,你設(shè)計(jì)出的產(chǎn)品就越適合用戶使用。(http://www.joelonsoftware.com/uibook/chapters/fog0000000065.html)

思考:
這于我而言是新穎的部分。以后可以考慮在產(chǎn)品文檔里面也加上場(chǎng)景說明部分。

有用戶場(chǎng)景的需求才應(yīng)該被重視和開發(fā)。
如果一個(gè)需求僅僅是個(gè)人臆想出來,找不到現(xiàn)實(shí)場(chǎng)景,那么不應(yīng)該投入開發(fā)計(jì)劃。

比如說嘗試給ping這個(gè)功能寫一下用戶場(chǎng)景:

開發(fā)者Jack經(jīng)歷了3個(gè)月的緊張工作,總算如期交付了公司要求的新產(chǎn)品。接下來是測(cè)試,運(yùn)營(yíng)推廣的事情了。預(yù)計(jì)會(huì)有差不多2周到1個(gè)月的相對(duì)空閑的時(shí)間,于是他到了客棧上,想看看最近能不能接到一些不錯(cuò)的兼職。
他會(huì)嘗試去聯(lián)系客棧的客服,標(biāo)明自己現(xiàn)在比較有空,想要接單。
同時(shí),由于團(tuán)隊(duì)是按周來規(guī)劃任務(wù)的,他對(duì)于一周后會(huì)不會(huì)有新的開發(fā)任務(wù)并不是特別有信心,因此他希望這個(gè)最好是本周內(nèi)可以接到比較短期快速的小任務(wù)。
因此,他可以使用Ping這個(gè)功能。
點(diǎn)擊Ping, 他可以登上當(dāng)天程序員列表的首頁,讓潛在的雇傭方有更多機(jī)會(huì)看到他;第二天他如果依然有空,可以繼續(xù)Ping;如果沒空了,可以不再操作,甚至點(diǎn)擊“接單”按鈕,切換到不接單狀態(tài)。
另外,Ping也會(huì)影響自動(dòng)對(duì)接排序,他的排序馬上會(huì)靠前,而這個(gè)影響因子會(huì)在未來七天衰減,到第8天衰減為0.

Ping功能
  • 非目標(biāo):本軟件本次不計(jì)劃做什么

這個(gè)我們目前也沒寫過。目前只寫了要做的內(nèi)容,不做的內(nèi)容不寫,放到待規(guī)劃不分區(qū),留待以后規(guī)劃。

  • 流程圖
  • 每個(gè)頁面的功能規(guī)格說明(概述,細(xì)節(jié))
  • 本次不解決的問題:這些一般都是基于已經(jīng)考慮到,但降低了優(yōu)先級(jí)的問題。
  • 多角度注解:技術(shù)注解,營(yíng)銷注解等。

這個(gè)也很新鮮。目前我的產(chǎn)品文檔里面,只有產(chǎn)品注解。
技術(shù)注解,營(yíng)銷注解都沒有做過。

7.如何招到靠譜的項(xiàng)目經(jīng)理

  • 不把程序員提拔為項(xiàng)目經(jīng)理:優(yōu)秀的項(xiàng)目經(jīng)理需要具備的素質(zhì):文筆清晰,外交手腕,市場(chǎng)嗅覺,用戶視角,以及優(yōu)秀的界面設(shè)計(jì)能力。和優(yōu)秀程序員的能力發(fā)展路徑不一致。

從描述來看,這個(gè)其實(shí)是產(chǎn)品經(jīng)理和項(xiàng)目經(jīng)理職責(zé)的融合職位。不僅僅是目前我們理解的項(xiàng)目經(jīng)理而已。

  • 不要讓營(yíng)銷人員做項(xiàng)目經(jīng)理

不讓程序員聽命于項(xiàng)目經(jīng)理:項(xiàng)目經(jīng)理應(yīng)該通過證明項(xiàng)目本身值得去做而贏得程序員的支持,而不是靠地位優(yōu)勢(shì),行政命令。

8.輕松掌握項(xiàng)目進(jìn)度

  • 只有最終寫代碼的人能夠預(yù)估需要多少時(shí)間
  • 適當(dāng)細(xì)分任務(wù),保持合適的顆粒度(小時(shí)):通常的規(guī)則,任務(wù)的顆粒度應(yīng)該在2小時(shí)-16小時(shí)之間
  • 如何提升項(xiàng)目預(yù)估精準(zhǔn)度:只做開發(fā)人員的預(yù)估/實(shí)際開發(fā)時(shí)間對(duì)照表,斜率越小,誤差率越高。最好是斜率為1.把節(jié)假日,調(diào)試代碼的時(shí)間,集成的時(shí)間,緩沖的時(shí)間都考慮在里面
  • 永遠(yuǎn)不要讓開發(fā)經(jīng)理壓縮程序員的時(shí)間
  • 開發(fā)Excel5時(shí),為了保證上線時(shí)間不得不把一些功能暫時(shí)延后到了以后版本。然而之后回顧,發(fā)現(xiàn)暫緩的那些功能在之后的幾個(gè)版本也都沒有精力去實(shí)現(xiàn),被證明是看起來重要但實(shí)際上對(duì)核心流程沒有關(guān)鍵影響的功能。 所以,每次當(dāng)時(shí)間和任務(wù)量沖突時(shí),保證時(shí)間,刪繁就簡(jiǎn),反而能確保你一直專注于關(guān)鍵事務(wù)上。

三、bug

  1. 修復(fù)bug這件事情,只有當(dāng)收入大于付出的時(shí)候,才值得去做。
    三明治廠超頻小bug的故事,是讓機(jī)器帶著bug運(yùn)轉(zhuǎn)3天,按照正常速度修復(fù)- 72個(gè)漢堡損失,還是加急現(xiàn)在修復(fù)但是機(jī)器要停機(jī)三天-4.5萬美金的損失?

2)大部分時(shí)候,bug還帶來隱形損失:公司和產(chǎn)品的名聲。因此,還是值得去修復(fù)的。

3)修復(fù)bug的步驟:

1-盡可能地收集bug相關(guān)的所有信息
2-衡量修改bug的成本和收益
3-算出修復(fù)所有bug的價(jià)值
4-不要斷章取義

4)忽略只出現(xiàn)一次的bug

四、干擾射擊

1)步兵戰(zhàn)中只要記住一條:干擾射擊。不斷一邊前進(jìn)一邊射擊,開火迫使對(duì)手多筆,這樣他就不能向你射擊;同時(shí)你不斷越來越靠近,來離敵人越近,就越能打中目標(biāo)。

2)如果你不斷進(jìn)取,不斷寫代碼改代碼,時(shí)間就會(huì)站在你這邊。
3)當(dāng)競(jìng)爭(zhēng)者朝你開火的時(shí)候要留神,他們是不是在干擾射擊,希望借此來降低你的速度?

所以,要關(guān)注的,永遠(yuǎn)是用戶價(jià)值。不要被市場(chǎng)競(jìng)爭(zhēng)或者媒體宣傳,資本要求等等迷亂了視線。
產(chǎn)品經(jīng)理,要做的事情便是掌握人性,帶著善意去成就它。

4)對(duì)于我們這樣的小公司,干擾射擊意味著兩件事情:一是一定要抓緊時(shí)間,把開發(fā)的主動(dòng)權(quán)掌握在自己手里;二是必須每天進(jìn)步。這樣遲早會(huì)勝出。

五、針對(duì)開發(fā)者的非正式面試指南

1)簡(jiǎn)歷上有語法錯(cuò)誤的不接受
2)給候選人打電話,就某個(gè)編程問題聊上半小時(shí) (想起培根的那句話,討論使人敏銳)
3)現(xiàn)場(chǎng)真人面試:6人中,5人應(yīng)該是他未來的同事。6人中有2人不同意,那么就不該過。
4)在面試中要避免將那些可能適合的程序員招進(jìn)來,只能招“程序員中的巨星”。

這個(gè)會(huì)成為技術(shù)為核心的團(tuán)隊(duì)的要求,對(duì)于大部分企業(yè)而言,這個(gè)比較難。
軟件行業(yè)瞬息萬變,你需要的是有超強(qiáng)學(xué)習(xí)能力,什么開發(fā)任務(wù)都能勝任的人。

5)如何在面試中發(fā)現(xiàn)一個(gè)人是否聰明?你不需要向面試者重復(fù)解釋一件事情,溝通進(jìn)行得十分順暢,候選者經(jīng)常會(huì)妙語連珠,顯露出獨(dú)到的見解,深刻的思維或敏銳的直覺。面試官的作用是問開放式的問題,創(chuàng)造環(huán)境,讓被面試者能夠充分發(fā)揮。

問哪些問題:
1- 介紹
2-最近做過的項(xiàng)目
過程中,要關(guān)注:1.是否有激情;2.是否能將復(fù)雜的問題講得深入淺出;3.在團(tuán)隊(duì)項(xiàng)目中努力尋找領(lǐng)導(dǎo)潛質(zhì)
3-不可能問題 :比如,紐約有多少調(diào)琴師,重點(diǎn)考思路。
4-編程問題 面試的大部分時(shí)間都應(yīng)該花在這個(gè)環(huán)節(jié)
5-你對(duì)自己的表現(xiàn)滿意嗎
6-你有什么問題嗎?

不要問哪些問題:
1-違法
2-帶有歧視/偏見的問題
3-腦筋急轉(zhuǎn)彎問題

六、獎(jiǎng)勵(lì)有害論
1-成員對(duì)于盡責(zé),自我成就,價(jià)值認(rèn)同等方面的需求,會(huì)被誤導(dǎo)量化為簡(jiǎn)單的獎(jiǎng)勵(lì)。
而物質(zhì)獎(jiǎng)勵(lì),是最沒有忠誠度且邊際效應(yīng)遞減的刺激。

七、揭開冰山之謎

  1. 用戶界面只占開發(fā)工作的5%,而用戶能感受到的,只有這5%。

一定要平衡好 這5%和剩余95%的進(jìn)度關(guān)系,讓用戶能看到的,和實(shí)際開發(fā)完成的進(jìn)度匹配。

  1. 把展示在用戶面前的部分做的漂亮非常重要。有了漂亮易用的界面部分,用戶才有可能來使用。

  2. 做產(chǎn)品演示的時(shí)候,唯一起作用的就是產(chǎn)品截圖。一定要讓截圖100%完美,而不是讓用戶去想象產(chǎn)品。

4.掌控人們對(duì)于開發(fā)的預(yù)期:每周更新進(jìn)度

八、吃自己做的狗糧

  1. 作為用戶來使用自己的產(chǎn)品,找到不足,然后改變

九、凡是沒有看上去那么簡(jiǎn)單,一定要先做好設(shè)計(jì),再開始開發(fā)。

十、企業(yè)發(fā)展戰(zhàn)略:

1)小而美,還是靠資本快速推動(dòng)壯大至市場(chǎng)領(lǐng)導(dǎo)地位?

1.小而美:競(jìng)爭(zhēng)對(duì)手多,沒有網(wǎng)絡(luò)效應(yīng),較低的用戶粘度,用時(shí)間慢慢累積金錢,如本杰瑞
2.靠資本快速推動(dòng)壯大至市場(chǎng)領(lǐng)導(dǎo)地位:競(jìng)爭(zhēng)對(duì)手少,有網(wǎng)絡(luò)效應(yīng),強(qiáng)用戶粘度,用金錢換時(shí)間,如亞馬遜

互聯(lián)網(wǎng)企業(yè)的價(jià)值,和其用戶的平方成正比。

所以第2類型公司,時(shí)間是關(guān)鍵。盡早覆蓋盡量多用戶并黏住,才能獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。

最不可取的發(fā)展模式,就是在兩者中搖擺。

2)先有雞還是先有蛋:提供某種向后兼容的模式,要不提供很多雞,要不提供很多蛋,先專注于做大一端,通過這一端來吸引另外一端。

3)轉(zhuǎn)化競(jìng)爭(zhēng)對(duì)手的用戶成為自己的用戶:找到所有轉(zhuǎn)化障礙,并解決。

4)膨件和二八法則:

一般用戶只會(huì)使用到20%的功能,可是每個(gè)人的20%都是不一樣的。

5)開源軟件:從微觀經(jīng)濟(jì)學(xué)的角度來看,開源軟件的發(fā)展并不是來自于企業(yè)的善心,而是降低配套產(chǎn)品成本,從而提升本身產(chǎn)品的銷售量。

比如:對(duì)旅游景點(diǎn)的機(jī)票降價(jià),刺激更多人到旅游景點(diǎn)消費(fèi),促進(jìn)了景區(qū)經(jīng)濟(jì)增長(zhǎng)。

6)微軟是如何輸?shù)鬉PI戰(zhàn)爭(zhēng)的:
雷蒙德。陳,舊聞新知博客( https://blogs.msdn.microsoft.com/oldnewthing/),披露了很多微軟對(duì)于向后兼容(兼容更低級(jí)的版本,以及為這些版本操作系統(tǒng)所 開發(fā)的第三方軟件)而做出的努力。

而MSDN派推出的longhorn,以及之后的版本,因?yàn)閱适Я诉@種信仰。導(dǎo)致用戶不愿意再來升級(jí)產(chǎn)品,開發(fā)者也漸漸不愿意再基于不斷變化的windows來開發(fā)。
?
網(wǎng)絡(luò)應(yīng)用成為新的潮流,而不是windows 操作系統(tǒng)。網(wǎng)絡(luò)成為了新的API。

十一:?jiǎn)柎?br> 1)強(qiáng)大的競(jìng)爭(zhēng)對(duì)手推出了和自己一樣的功能怎么辦?

答:不用管競(jìng)爭(zhēng)對(duì)手,只用關(guān)心用戶的想法。

  • 一定有用戶不知道競(jìng)爭(zhēng)對(duì)手的
  • 盡快上線,通過用戶的反饋來不斷修正提升自己的產(chǎn)品,讓用戶愿意買單。(實(shí)際上,用戶如果已經(jīng)買了你的單,是不愿意再轉(zhuǎn)移到其他產(chǎn)品上去的。)
  • 在產(chǎn)品上提供盡可能多的反饋途徑,讓用戶很容易能反饋意見。(比如,在每個(gè)地方都能看到反饋入口)

2)關(guān)注“我不用是因?yàn)槟銈儾荒躼xx“的問題,而不是我希望你們能夠xxx。前者說明了使用障礙,后者可能只是一些與決策無關(guān)的想象。

3)預(yù)留緩沖時(shí)間時(shí),需要考慮的幾種情況。

  • 臨時(shí)想到的新需求
  • 競(jìng)爭(zhēng)對(duì)手帶來的新影響
  • 把不同開發(fā)者的代碼集成起來
  • 在測(cè)試中尋找并修復(fù)bug.
  • 雇員必須履行的與開發(fā)無關(guān)的行動(dòng)
  • 由于時(shí)間預(yù)估不足而引起的緩沖
  • 某些任務(wù)沒有提供預(yù)計(jì)的時(shí)間,所以需要緩沖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,387評(píng)論 2 126
  • 在冬末春初我遇見了你 靜靜的開在山野之中 不卑不亢 不婀娜 開了一半的花 沒有綠葉反而更自由 像那年的初遇 也像曾...
    野衣姑娘閱讀 189評(píng)論 0 2
  • 細(xì)數(shù)光陰 我出生在山東省一個(gè)落后的小農(nóng)村里,整個(gè)的童年少年都蝸居在那里,沒有見過一點(diǎn)兒世面。后來我定居在這個(gè)西北的...
    李蘅閱讀 437評(píng)論 1 1

友情鏈接更多精彩內(nèi)容