现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论
0. 為啥要講人、績效、和職業(yè)道德? 學(xué)好專業(yè)不就行了么,為啥要扯這么多?
??????? 用專業(yè)知識教育人是不夠的。通過專業(yè)教育,他可以成為一種有用的機器,但是不能成為一個和諧發(fā)展的人。要使學(xué)生對價值有所理解并且產(chǎn)生熱烈的感情,那是最基本的。他必須獲得對美和道德上的善惡鮮明的辨別力。否則,他 —— 連同他的專業(yè)知識 —— 就更像一只受過很好訓(xùn)練的狗,而不像一個和諧發(fā)展的人。為了獲得對別人和對集體的適當(dāng)關(guān)系,他必須學(xué)習(xí)去了解人們的動機、他們的幻想和他們的疾苦。
??? ---- 愛因斯坦
1. 比較不同團隊的績效評估方法,提出自己團隊的績效評估計劃
用某一次《現(xiàn)代軟件工程》課上的幾個團隊的博客做例子:
第一組(seven):
我們可以按照以上的9級來分,但是對于我們而言,大家在很大程度上都是同一級的勞動者……所以我們可以進一步細分同一級的排名,比如將整個任務(wù)分為等量的小任務(wù),每個人負責(zé)其中的一個,而最終大家的排名可以通過完成這類任務(wù)的個數(shù)來決定。關(guān)于如何評價是否完成“任務(wù)”,可以通過功能性、是否準時來評價;當(dāng)整個工程完結(jié)時,我們可以做一次評定(review),包括功能、性能和代碼的評價,然后大家之間討論互評。
第二組(霸王):
對于浮動分數(shù),可以通過每個職位對團隊的貢獻來分配。隊友之間根據(jù)各自的貢獻給出排序,最后匯總得分。
第三組(銣銫):
一群學(xué)生做軟工項目(PM、開發(fā)、測試),PM:0.3(n*30)分,開發(fā):0.5(n*30)分,測試:0.2(n*30)分
第四組(take it & go):
在團隊合作中,每個成員的貢獻度不僅僅取決于其工作量,而且還取決于這份工作對團隊的意義有多大。我們認為貢獻度的計算應(yīng)遵循如下公式:
貢獻度 = 工作量×工作的影響力×工作的不可替代性
這個等式給我們的評測提供了一個方向。與直接估計貢獻度相比,分別估計三個分量顯得更易操作,準確性也更高。
//評點:如果大家都想做“不可替代的工作”,怎么辦?
第五組(banana):
關(guān)于管理體系,可以天花亂墜地說很多,但實際和理論會差得很遠,我們并不能完全按照一個專業(yè)團隊去執(zhí)行。大四是一段美好休閑的時光,很難要求大家訓(xùn)練有素地執(zhí)行進度,我們只能盡可能友情提示大家一起干一些事,但我覺得做完整個工程應(yīng)該沒有問題。
//評點:我個人覺得第五組的同學(xué)最適合去壟斷性國企。 ? ? ? ? ? ? ? ? ? ? ? ?
如何衡量兩個團隊成員的勞動生產(chǎn)率呢?或者這已經(jīng)超越了勞動生產(chǎn)率的范疇,到了知識產(chǎn)權(quán),職業(yè)道德的領(lǐng)域?
2. 在團隊中會不會出現(xiàn) “劣幣驅(qū)逐良幣” 或者 “不敢犯錯誤” 的現(xiàn)象?
例如,在大家做任務(wù)估計的時候,那些給出非常樂觀估計的成員會不會產(chǎn)生無形的壓力,讓一些實事求是的團隊成員不得不調(diào)整他們原來比較靠譜的估計,最后導(dǎo)致整個團隊的估計都是過于樂觀, 客觀(包括比較保守和悲觀)的估計都消失了?
或者,在工作中太看重失誤,懲罰失誤,導(dǎo)致無人敢冒險?
??? 請看這個例子: NBA 球星科比的投籃不中次數(shù)已經(jīng)是歷史第一,超越了大部分NBA 球員的所有投籃數(shù):
??? http://china.nba.com/news/4/2014-11-12/1048/24547.html?? link2
??? 這么多投籃不中,應(yīng)該懲罰么? 如果要嚴厲懲罰的話,科比,或者球隊會有更好的成績么?
3.?請閱讀驅(qū)動和責(zé)任[LL1]?,討論團隊如何能讓所有人都明確驅(qū)動和責(zé)任
??? 有極端的看法說任何與報酬掛鉤的績效評估都是有害的,你怎么看?
- http://www.joelonsoftware.com/articles/fog0000000070.html
4.?采訪并收集下面幾類公司對員工績效考核的做法:
- 已經(jīng)上市多年的公司
- 剛剛上市或準備上市的公司
- 國有軟件企業(yè),
- 民營軟件企業(yè)
- 初始的創(chuàng)業(yè)公司
5.?走出“自我”和“當(dāng)下”
在授課過程中,我也看到不少同學(xué)還是只關(guān)注“自我”和“當(dāng)下”,不善于跟別人合作,也不會估計別人會怎么想,或者估計“我們的團隊將來會發(fā)生什么,我要如何應(yīng)對”。造成這種現(xiàn)象的一部分原因是,不少同學(xué)從小就被灌輸“搞好自己的學(xué)習(xí)就可以了”,“把眼下的考試考好,以后就好了”,另一部分原因是,同學(xué)們從來沒有練習(xí)如何與別人合作,估計別人會想什么,估計團隊以后會發(fā)生什么。
科學(xué)家認為,人類有別于其他動物的最大特點是人類大腦里有發(fā)達的部分在處理“別人在做什么”和“未來會發(fā)生什么”(Interpersonal Awareness & Social Awareness)這些事情。能擺脫[自我/當(dāng)下]而考慮到[別人/將來],從而主動為群體和將來行動,這是人和其他動物不同的地方(來源: http://www.pbs.org/wnet/humanspark/)。
在成功的大型企業(yè)中,人際交流能力和人際覺察(Interpersonal? competence, and Interpersonal Awareness)是員工素質(zhì)培訓(xùn)的一個重要部分,它包括如何與別人建立平等而融洽的合作關(guān)系,如何處理矛盾與沖突,如何影響同事,如何給別人的工作做評價,如何能了解別人表面行動下的言外之意、隱含的動機等等。在前文提到的“黃金點游戲”這個場景中,一位參賽者需要了解一屋子的同學(xué)大概的思路?,如何影響他們,自己才能增加獲勝的希望。如果每個人獨自埋頭推導(dǎo)公式,而不管其他人在想什么,是得不出獲勝的數(shù)字的。
一個軟件團隊,如果大家都不考慮“別人”、“未來”,光是每個人獨立地搞自己眼前的一攤事,是不行的,把自己的代碼重構(gòu)出花來也不行,把SCRUM(史克朗姆)玩到極限也不行。這也是我覺得聰明的同學(xué)們欠缺較多的地方。所以《現(xiàn)代軟件工程》課包括了很多“兩人合作”、“黃金點游戲”以及估算工作量等練習(xí)[1]。
上這門課的同學(xué),你覺得這些活動和練習(xí)有價值么?
人和人不一樣, 你覺得程序員和自閉癥的患者有什么聯(lián)系么?
???? http://archive.wired.com/wired/archive/9.12/baron-cohen.html
???? 如果把人按照 empathetic (有同理心的)? --? systematic (系統(tǒng)思維的)?兩極來分類,?有人畫出了如下的分布示意圖,你怎么看?
6. 刷課軟件和刷票軟件, A/B 測試和道德,罪與罰 在大學(xué)里,網(wǎng)上選課非常講究時效——因為好的課程不多,大家都想上。大家也討論過“刷課機”、“換課機”這樣的小程序是否合乎道德和公平。春運火車票也是同樣的搶手,那么程序員寫一些瀏覽器插件/專用小軟件去搞票是好事,壞事,還是不好不壞?這些行為應(yīng)該用哪些道德/規(guī)定/法律來約束? 同學(xué)們可以結(jié)合本章講述的道德規(guī)范,從正面和反面辯論一下。參考信息1: 通常人們都在路邊招手叫出租車,只有很少的人打電話約車, 從2014年起,在很多叫車軟件出現(xiàn)后, 在路邊招手往往看到很多出租車不停車,因為它們已經(jīng)被叫車軟件訂了。很多人說這對于沒有打車軟件的弱勢群體不公平,你說呢?
選取最近IT 界發(fā)生的一些事件(例如,某員工因為個人恩怨把公司服務(wù)器上的數(shù)據(jù)全刪掉),對照軟件工程師職業(yè)道德的條款, 評價當(dāng)事人的軟件工程師職業(yè)道德如何。 案例:http://blog.jobbole.com/79450/??? 偷了『半條命2』源代碼的那小子另一個討論:阿里五人月餅事件?,?討論
技術(shù)的發(fā)展必然會波及到社會的其它方面,例如道德。 一個網(wǎng)站能用 A/B 測試來影響用戶的情緒么? 如果是為了“科學(xué)實驗” 的目的呢? 請看下面事件并討論: http://techcrunch.cn/2014/07/02/ethics-in-a-data-driven-world/? 7. 軟件團隊的發(fā)展階段 結(jié)合課本上提到的四個階段,描述一下你目前的軟件團隊處于什么階段,為什么? 8. 團隊如何做決定 軟件開發(fā)和軟件團隊的生存都面臨許多問題,需要許多睿智而果斷的決定,一個團隊如何做決定呢?? 有下面幾種方式,請評說各自的優(yōu)缺點: a) 獨裁:?? 領(lǐng)導(dǎo)說了算 b) 獨裁+顧問:? 領(lǐng)導(dǎo)和一些外部的顧問商量之后做決定 c) 民主投票:這樣就產(chǎn)生了贏家和輸家 d) 全體一致同意后再決定:皆大歡喜? 9. 測定工程師的效率 軟件工程師各自效率不同,這是客觀存在的,你們團隊中效率最高的工程師和效率最低的工程師相差多少? 能否設(shè)計一個可以量化的測試標準,統(tǒng)計一下? 10. 合作伙伴評比 在這個軟件工程課上,你有機會和5-7 名同學(xué)進行了深度的合作,那么,誰的合作精神好? 在課程的最后階段, 每個人列出一個一維的名單,你自己也在里面,從合作精神最高到最低排列,沒有并列。 小伙伴1 小伙伴2 本人 小伙伴3 ... 如何打分?? “本人” 得到0 分, 比“本人“高一個名次,則加 1 分,低一個名次,則減 1 分, 以此類推。 TA 拿到全部人的提名后,給所有人統(tǒng)計分數(shù)。 然后公布。 任課老師決定是否給得分最高的部分同學(xué)某種獎勵分。 ? 11. 團隊的職業(yè)道德,用戶的道德 人們生活,工作在一個互相影響的社會里,每個單個員工的道德,會影響團隊的道德。團隊領(lǐng)導(dǎo)的行為和決定,也會給 “道德” 做最好的說明。競爭對手的道德,會影響你自己的處境和決定。 ??每個消費者(用戶)的道德,也會對軟件行業(yè)有影響。 這是最近的例子,這個事件是由個人導(dǎo)致的,還是團隊的道德(潛規(guī)則)低下,無底線造成的,還是無奈地說 “這是行業(yè)的行規(guī),大家都這么做”,就算了? 2014年,錘子手機在天貓電器城上預(yù)約數(shù)造假 http://tech.ifeng.com/a/20141020/40841049_0.shtml http://www.chinahightech.com/html/727/2014/1020/15575128.html? 這是討論中國軟件發(fā)展困境的帖子,假設(shè)軟件用戶道德水準更高一些,使用正版軟件的比例更高一些,中國的軟件行業(yè)會有更好的發(fā)展么? http://www.zhihu.com/question/22131582 看下面的例子:? 每個涉案者應(yīng)該得到什么樣的懲罰,道義上的,或者連帶經(jīng)濟,刑事上的? 如果你是原創(chuàng),你會采取什么措施?如果你開發(fā)了一個應(yīng)用市場, 或者是市場的監(jiān)管者,你應(yīng)該怎么辦? http://www.chuapp.com/2014/10/17/88997.html 下面是一個小組織和大組織之間關(guān)于創(chuàng)意,知識產(chǎn)權(quán),契約精神,商業(yè)道德的爭論: http://weibo.com/1919387783/ByDRrqYyE?type=comment12. 成長,責(zé)任,和公司的關(guān)系
絕大部分的工程師都在某一個企業(yè)工作,工程師的成長也和企業(yè)的興衰有很大關(guān)系。企業(yè)興旺,工程師也是與有榮焉,很多人覺得是自己的功勞,理所應(yīng)當(dāng)提薪升職;企業(yè)衰落,很多工程師未必覺得是自己的問題(我的代碼很好的,都是經(jīng)理,市場,老大的問題!); 企業(yè)最后要裁員,很多人為了一些補償和企業(yè)產(chǎn)生糾紛。
幾個例子:
??? http://weibo.com/1620213837/BgSGLhdAe
??? http://www.csdn.net/article/2014-09-29/2821931?
??? http://www.csdn.net/article/2014-10-01/2821945?
那么,軟件工程師在企業(yè)中是勞動密集型的工人么,還是有獨創(chuàng)性的專業(yè)人士? 他們對軟件企業(yè)的成敗負多大的責(zé)任?
13. 工程師單打獨斗 - 接私活
? ? 和上面的討論題目相關(guān), 很多人把項目的不如意歸結(jié)于團隊,公司,等等個人之外的因素, 那么,當(dāng)工程師一個人做全棧工程師,順便把別的角色都搞定,是不是很爽呢? 當(dāng)一個工程師直接在社會上拼搏的時候,會碰到什么有意思的事情呢? 我們看看 “接私活” 這個場景。 請看完下面的幾個故事,談?wù)?“接私活的軟件工程要注意幾個方面”:
? ??http://www.cnblogs.com/geeking/p/3157744.html
? ??http://www.cnblogs.com/txw1958/archive/2012/11/06/programmer-personal-work.html
? ??http://www.cnblogs.com/yhyjy/p/4444094.html
? ??http://www.cnblogs.com/myproj/p/3402928.html
? ??http://www.cnblogs.com/toutou/archive/2013/05/06/4602685.html
? ??http://www.cnblogs.com/shenyisyn/archive/2013/01/11/2856753.html
? ??http://www.cnblogs.com/jj-fly/articles/2086838.html
? ??http://www.cnblogs.com/adylee/archive/2009/06/05/1497022.html
===== 教材知識點之外的話題 =====
16. 性別在軟件工程 最初的軟件工程師是女性居多?? https://twitter.com/Whizzpast/status/540151614242570241/photo/1 女性在計算機專業(yè)的比例變化:?http://www.npr.org/blogs/money/2014/10/21/357629765/when-women-stopped-coding 17. 3-7年后的展望和計劃 在這個課堂上的同學(xué)一般都是大學(xué)三年級的學(xué)生,很多同學(xué)都在考慮以后要走什么道路 工作/考研/科研/教書/轉(zhuǎn)行...? 市面上流行的就業(yè)指導(dǎo)大多數(shù)是功成名就的過來人 (工作或科研的大牛)在年事已高 :) 的時候提供的,但是一般的同學(xué)未必能走到那樣的高度。那么有沒有比較普通一些的人士給大家的一下短期規(guī)劃的建議呢???這個是有的: 當(dāng)一個普通教授,或者,當(dāng)一個入門級的軟件企業(yè)員工: http://pgbovine.net/academia-industry-junior-employee.htm? (博客里還有不少好內(nèi)容) 一個普通IT行業(yè)的學(xué)生在中國應(yīng)該怎么辦: http://www.cnblogs.com/bitfan/archive/2010/12/30/1921291.html 普通 IT 人士的10年回顧 http://blog.jobbole.com/12968/? 關(guān)于學(xué)術(shù)或工作,我們看看更多牛人的指點: http://www.cs.princeton.edu/~jrex/talks/research-jobs09.ppt? http://scienceblogs.com/goodmath/2009/12/23/academia-vs-industry-an-update/ http://www.cnbeta.com/articles/130884.htm ========[1] 國外還有Social awareness + emotional skills = successful kids的說法,? 據(jù)說此類教育在小孩到了高中甚至成年都有積極的影響。參見:http://www.apa.org/monitor/2010/04/classrooms.aspx
總結(jié)
以上是生活随笔為你收集整理的现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 和gdi绘图效率比较_绘图计算器测评来袭
- 下一篇: java中setDocument_Jav