開(kāi)發(fā)者面試百問(wèn)-軟件項(xiàng)目管理部分答案 收藏【上次回答了 軟件開(kāi)發(fā)者面試百問(wèn) 中測(cè)試部分,這次,由于時(shí)間關(guān)系,簡(jiǎn)單回答一下軟件項(xiàng)目管理部分的問(wèn)題。這些問(wèn)題的答案,一般沒(méi)有正確與否,各個(gè)人回答不同,這里僅供大家參考。】
1.范圍、時(shí)間、成本,這三項(xiàng)中哪些是可以由客戶控制的? 范 圍、時(shí)間、成本,是項(xiàng)目管理中常說(shuō)的三角關(guān)系。任何一方改變都可能牽扯到其他兩方的變動(dòng)。項(xiàng)目管理的本質(zhì),就是在保證質(zhì)量的前提下,尋求這三者之間的最佳 平衡。因?yàn)榭蛻羰切枨蠓胶屯顿Y方,客戶有權(quán)對(duì)這三者進(jìn)行控制,當(dāng)然客戶主要控制范圍,即提出他們的需求——項(xiàng)目要實(shí)現(xiàn)的功能特性,其次,客戶也非常關(guān)心能 交付的時(shí)間和所付出的成本。在滿足客戶的需求情況下,可以在時(shí)間、成本上和客戶進(jìn)行交流、談判。從項(xiàng)目管理的角度看,最好固定其中一項(xiàng),其他兩項(xiàng)可以根據(jù) 實(shí)際狀況來(lái)調(diào)節(jié)保證項(xiàng)目質(zhì)量。
2.誰(shuí)該對(duì)項(xiàng)目中所要付出的一切做出估算?誰(shuí)有權(quán)設(shè)置最后期限? 項(xiàng)目成功是團(tuán)隊(duì)協(xié)作的結(jié)果。在對(duì)項(xiàng)目進(jìn)行估算的時(shí)候,需要由參與項(xiàng)目各個(gè)環(huán)節(jié)的人進(jìn)行符合實(shí)際的估算,最后匯總起來(lái)進(jìn)行綜合分析計(jì)算,獲得項(xiàng)目總的估算結(jié)果。 項(xiàng)目的最后期限設(shè)置除了客戶定死最后交付時(shí)間,其他的情況都是根據(jù)項(xiàng)目的進(jìn)度估算結(jié)果而進(jìn)行符合實(shí)際的計(jì)劃得出的。
3. 減少交付的次數(shù),或是減少每個(gè)每個(gè)交付中的工作量,你喜歡哪種做法? 根 據(jù)項(xiàng)目的類型和項(xiàng)目進(jìn)行中的實(shí)際情況來(lái)決定,如果項(xiàng)目是規(guī)模比較大,時(shí)間長(zhǎng)的,那么就應(yīng)增加交付次數(shù)或者減少每個(gè)每個(gè)交付中的工作量,以便及時(shí)考察項(xiàng)目進(jìn) 展,保證項(xiàng)目進(jìn)度。例如,一個(gè)項(xiàng)目按計(jì)劃進(jìn)行到第一個(gè)里程碑發(fā)現(xiàn)項(xiàng)目進(jìn)度明顯落后,而下一個(gè)檢查點(diǎn)(也就是交付的工作量)距離還很長(zhǎng)管理層需要及時(shí)了解其 進(jìn)展,那么交付的次數(shù)的就要根據(jù)現(xiàn)在的時(shí)間狀況來(lái)增加。反過(guò)來(lái),如果這個(gè)項(xiàng)目的進(jìn)度非常好,甚至超前,而下一個(gè)檢查點(diǎn)(也就是交付的工作量)距離還很短, 我們就可以減少交付次數(shù)。 在傳統(tǒng)的軟件項(xiàng)目中,開(kāi)發(fā)周期比較長(zhǎng),往往減少交付的次數(shù),更好地控制質(zhì)量;而現(xiàn)在,有一部分公司比較傾向于敏捷方法,喜歡減少每個(gè)交付中的工作量,交付周期只有幾周時(shí)間(最短的周期,可能是一周),擁抱變化,更好地、更及時(shí)地滿足用戶的需求。而對(duì)互聯(lián)網(wǎng)上的web應(yīng)用軟件開(kāi)發(fā),“減少每個(gè)每個(gè)交付中的工作量”是一個(gè)比較好的策略,力求及時(shí)獲得用戶的反饋,將用戶的需求及時(shí)融入新的版本,及時(shí)發(fā)布出去,贏得競(jìng)爭(zhēng)市場(chǎng)。例如,在我新書(shū)《軟件工程導(dǎo)論》中專門(mén)有一節(jié)討論“永遠(yuǎn)的Beta”的軟件工程思想。
4.你喜歡用哪種圖來(lái)跟蹤項(xiàng)目進(jìn)度? 還是要根據(jù)項(xiàng)目的特點(diǎn)來(lái)決定,具體項(xiàng)目具體對(duì)待,當(dāng)然,有時(shí)也不能由自己決定,而是取決于公司已有的工具和習(xí)慣。對(duì)于復(fù)雜、規(guī)模大的項(xiàng)目,可能要借助甘特圖和網(wǎng)絡(luò)圖來(lái)分析和跟蹤進(jìn)度。簡(jiǎn)單、規(guī)模小的項(xiàng)目根據(jù)進(jìn)度報(bào)告百分比和表格跟蹤就可以了。
5.迭代和增量的區(qū)別在哪里? 軟件開(kāi)發(fā)不是一躇而就,其過(guò)程猶如雕琢一件工藝品,由無(wú)形到有形、由粗到細(xì),很難一次就能開(kāi)發(fā)出功能完善、強(qiáng)大的一個(gè)版本,而往往是分階段進(jìn)行,一個(gè)版本接一個(gè)版本的發(fā)布出去。軟件開(kāi)發(fā)分階段可以通過(guò)兩種模型來(lái)描述,即增量模型和迭代模型。 增量模型描述軟件產(chǎn)品的不同階段是按產(chǎn)品所具有的功能進(jìn)行劃分,先開(kāi)發(fā)主要功能或用戶最需要功能,然后,隨著時(shí)間推進(jìn),不斷增加新的輔助功能或次要功能,最終開(kāi)發(fā)出一個(gè)強(qiáng)大的、功能完善的、高質(zhì)量的、穩(wěn)定的產(chǎn)品。 迭代模型描述軟件產(chǎn)品的不同階段是按產(chǎn)品深度或細(xì)化的程度來(lái)劃分,先將產(chǎn)品的整個(gè)框架都建立起來(lái),在系統(tǒng)的初期,已經(jīng)具有用戶所需求的全部功能。然后,隨著時(shí)間推進(jìn),不斷細(xì)化已有的功能或完善已有功能,這個(gè)過(guò)程好像是一個(gè)迭代的過(guò)程。最終的目標(biāo)是一致的,也是為了實(shí)現(xiàn)一個(gè)強(qiáng)大的、功能完善的、高質(zhì)量的、穩(wěn)定的產(chǎn)品。 舉 一個(gè)例子:假設(shè)現(xiàn)在要開(kāi)發(fā)A,B,C,D四個(gè)大的業(yè)務(wù)功能,每個(gè)功能都需要開(kāi)發(fā)兩周的時(shí)間.則對(duì)于增量方法而言可以將四個(gè)功能分為兩次增量來(lái)完成,第一個(gè) 增量完成A,B功能,第二次增量完成C,D功能;而對(duì)于迭代開(kāi)發(fā)來(lái)將則是分兩次迭代來(lái)開(kāi)發(fā),第一次迭代完成A,B,C,D四個(gè)基本業(yè)務(wù)功能但不含復(fù)雜的業(yè) 務(wù)邏輯,而第二個(gè)功能再逐漸細(xì)化補(bǔ)充完整相關(guān)的業(yè)務(wù)邏輯.在第一個(gè)月過(guò)去后采用增量開(kāi)始時(shí)候A,B全部開(kāi)發(fā)完成而C,D還一點(diǎn)都沒(méi)有動(dòng);而采用迭代開(kāi)發(fā)的 時(shí)候A,B,C,D四個(gè)的基礎(chǔ)功能都已經(jīng)完成.
6. 試著解釋一下風(fēng)險(xiǎn)管理中用到的實(shí)踐。風(fēng)險(xiǎn)該如何管理? 風(fēng) 險(xiǎn)管理的實(shí)踐很多,包括頭腦風(fēng)暴、風(fēng)險(xiǎn)列表(checklist)等。例如,人們常采用十大風(fēng)險(xiǎn)清單:在項(xiàng)目進(jìn)行中,不時(shí)地更新和處理項(xiàng)目當(dāng)前風(fēng)險(xiǎn)最高的 前十項(xiàng)風(fēng)險(xiǎn),以保證項(xiàng)目不脫離主軌道。因?yàn)轫?xiàng)目中的風(fēng)險(xiǎn)大大小小會(huì)很多。十大風(fēng)險(xiǎn)清單就是抓住重要的風(fēng)險(xiǎn)及時(shí)處理,而又關(guān)系的小風(fēng)險(xiǎn)可能也就隨之消失。從 這里可以看出,風(fēng)險(xiǎn)也是動(dòng)態(tài)的,需要經(jīng)常地、及時(shí)地評(píng)估當(dāng)前的風(fēng)險(xiǎn),例如每周或每?jī)芍苓M(jìn)行一次風(fēng)險(xiǎn)評(píng)估。 風(fēng)險(xiǎn)管理就是通過(guò)風(fēng)險(xiǎn)的識(shí)別、預(yù)測(cè)、估算和衡量、選擇有效的方法和手段,對(duì)風(fēng)險(xiǎn)進(jìn)行預(yù)防、避免、降低或者轉(zhuǎn)移的管理過(guò)程。
7. 你喜歡任務(wù)分解還是滾動(dòng)式計(jì)劃? 根據(jù)項(xiàng)目特點(diǎn)來(lái)定,一般會(huì)選用任務(wù)分解的計(jì)劃,責(zé)任清楚,可控性更強(qiáng)。滾動(dòng)式計(jì)劃的靈活性比較強(qiáng),適應(yīng)性比較好,但容易引起大家對(duì)計(jì)劃不夠重視,計(jì)劃能力降低,或者可控性會(huì)差些。有時(shí)會(huì)將這兩種方法結(jié)合起來(lái)使用。
8. 你需要哪些東西幫助你判斷項(xiàng)目是否符合時(shí)間要求,在預(yù)算范圍內(nèi)運(yùn)作?
那么就可以根據(jù)項(xiàng)目時(shí)間與計(jì)劃的內(nèi)容進(jìn)行對(duì)比來(lái)判斷項(xiàng)目符合時(shí)間要求,在預(yù)算范圍內(nèi)運(yùn)作。常用的方法有基線對(duì)比法和掙值法。
9. DSDM、Prince2、Scrum,這三者之間有哪些區(qū)別?
方法的應(yīng)用,同樣由項(xiàng)目規(guī)模、業(yè)務(wù)特點(diǎn)(需求是否穩(wěn)定)等決定,而且還受企業(yè)文化、流程和領(lǐng)導(dǎo)意識(shí)等決定。如果需求穩(wěn)定、項(xiàng)目規(guī)模比較大或周期比較長(zhǎng),一般會(huì)選用PRINCE2,相反,可能會(huì)選擇DSDM或Scrum,后兩者沒(méi)有本質(zhì)區(qū)別,只是具有不同的最佳實(shí)踐。 正如有人評(píng)論,國(guó)內(nèi)對(duì)Scrum還比較熟悉,對(duì)DSDM、PRINCE2等不夠熟悉,應(yīng)用不多。而業(yè)界最熟悉的還是CMMI、RUP(IBM Rational Unify Process 統(tǒng)一過(guò)程)、XP(敏捷方法的極限編程 eXtreme Programming)和MSF(Microsoft Solution Framework,微軟公司軟件開(kāi)發(fā)解決方案框架),可參考: 10.如果客戶想要的東西太多,你在范圍和時(shí)間上怎樣跟他達(dá)成一致呢? 首先要向客戶說(shuō)明,如果在某個(gè)時(shí)間內(nèi)去做不可能完成的工作,其結(jié)果必然是質(zhì)量得不到保證,或者所化的成本過(guò)大。應(yīng)該沒(méi)有客戶想做賠本的生意,每個(gè)客戶都會(huì)重視質(zhì)量,而不愿意損害自己的利益。 然后,和客戶一起,按需求重要性、緊急性等對(duì)需求進(jìn)行分類,分為不同的等級(jí),然后從優(yōu)先級(jí)高的需求開(kāi)始,來(lái)估算不同優(yōu)先級(jí)類別的需求實(shí)現(xiàn)的工作量。設(shè)定幾個(gè)不同的開(kāi)發(fā)周期或交付時(shí)間,從而由用戶作出選擇,例如: (1) 只做優(yōu)先級(jí)最高的那類需求,開(kāi)發(fā)周期需要3個(gè)月; (2) 做優(yōu)先級(jí)最高和優(yōu)先級(jí)高的那兩類需求,開(kāi)發(fā)周期需要7個(gè)月; (3) 做優(yōu)先級(jí)最高、高和中等的共3類需求,開(kāi)發(fā)周期需要12個(gè)月; (4) 所有需求都實(shí)現(xiàn),開(kāi)發(fā)周期需要18個(gè)月 用戶可能選(2), 先完成兩類需求,簽訂合同。等這合同履行很好之后,再繼續(xù)下一步的開(kāi)發(fā)。 |
|
來(lái)自: daomucun > 《電腦技術(shù)》