1. 程式人生 > >專案經理面試題

專案經理面試題

1.請你談談你自己 

2.如何安排自己的時間?會不會排斥加班? 

3.為什麼離開上一個工作? 

4.你對未來五年的規劃為何? 

5.談談你過去做過的自認為最成功一個案例。 

6.談談你過去的工作經驗中,最令你挫折的事情。 

7.專案的關鍵時期,進度非常緊張,作為專案經理的您,恨不能一個人當兩個人用,偏偏在這個時候,您得知一位重要的專案成員的家人重病,這時,您會如何處理(讓他回家探望還是堅守崗位)?為什麼? 

8、你讓工人為你工作7天,給工人的回報是一根金條。金條平分成相連的7段,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費?  
 
9、對一個一貫遲到的員工你會怎麼辦 

答:好的經理是通過結果來評價一個員工的,但還需要了解員工遲到會在公司和團隊中造成什麼影響。一個人的經常遲到,會使其他人感到領導在徇私進而會影響團隊的士氣。這個人也許可以按期完成自己的任務,但可能會影響到別人的進度。如果別人的工作進度取決於他的工作進度,那麼,他的進度對於整個團隊就很重要了。 
我會先判斷這類員工的行為模式。換句話說,看他們是偶爾為之還是一貫如此。其次,我會明確公司有關考勤方面的政策,確定遲到及其相關處理方法。我也會了解該員工的工作是否與進度相符並瞭解與他一起工作的人對他遲到的反應。最後,我必須與他們進行客觀的談話,談話的主題包括公司的規章制度,遲到對團隊和個人評價的影響,同時強調時間進度。 
 
10、如何界定專案成員工作的範圍和定義他們之間的工作介面 

答:專案主管首先需要對專案組成員非常瞭解和熟悉,知道他們的知識結構和能力水平;其次要對專案情況非常清楚,能對專案實施過程進行劃分和功能模組的細化,並結合每個人員的特點為其指派具體的任務;最後要重點注意的是,儘量讓組員之間的工作介面簡單,介面定義詳盡,以避免將來產生互相推諉和扯皮現象。 
 
11、如何評估專案執行狀況隨時掌握專案進展 

答:在專案運作過程中,僅靠員工的報告來掌握專案進展是不夠的,原因是很多員工都願意報喜不報憂。在專案初期就出現的問題苗頭,如果不能傳遞上來,在後續階段會造成很大的紕漏。我認為應專門設一個組來監督專案的執行情況,這個組不參與專案的具體實施,專門給別人“挑刺”。

12.範圍、時間,成本,這三項中哪些是可以由客戶控制的?

    範圍、時間、成本,是專案管理中常說的三角關係。任何一方改變都可能牽扯到其他兩方的變動。專案管理的本質,就是在保證質量的前提下,尋求這三者之間的最佳平衡。因為客戶是需求方和投資方,客戶有權對這三者進行控制,當然客戶主要控制範圍,即提出他們的需求——專案要實現的功能特性,其次,客戶也非常關心能交付的時間和所付出的成本。在滿足客戶的需求情況下,可以在時間、成本上和客戶進行交流、談判。從專案管理的角度看,最好固定其中一項,其他兩項可以根據實際狀況來調節保證專案質量。

13.迭代和增量的區別在哪裡?

    軟體開發不是一躇而就,其過程猶如雕琢一件工藝品,由無形到有形、由粗到細,很難一次就能開發出功能完善、強大的一個版本,而往往是分階段進行,一個版本接一個版本的釋出出去。軟體開發分階段可以通過兩種模型來描述,即增量模型和迭代模型。    增量模型描述軟體產品的不同階段是按產品所具有的功能進行劃分,先開發主要功能或使用者最需要功能,然後,隨著時間推進,不斷增加新的輔助功能或次要功能,最終開發出一個強大的、功能完善的、高質量的、穩定的產品。    迭代模型描述軟體產品的不同階段是按產品深度或細化的程度來劃分,先將產品的整個框架都建立起來,在系統的初期,已經具有使用者所需求的全部功能。然後,隨著時間推進,不斷細化已有的功能或完善已有功能,這個過程好像是一個迭代的過程。最終的目標是一致的,也是為了實現一個強大的、功能完善的、高質量的、穩定的產品。

14.如果客戶想要的東西太多,你在範圍和時間上怎樣跟他達成一致呢?

    首先要向客戶說明,如果在某個時間內去做不可能完成的工作,其結果必然是質量得不到保證,或者所化的成本過大。應該沒有客戶想做賠本的生意,每個客戶都會重視質量,而不願意損害自己的利益。   然後,和客戶一起,按需求重要性、緊急性等對需求進行分類,分為不同的等級,然後從優先順序高的需求開始,來估算不同優先順序類別的需求實現的工作量。設定幾個不同的開發週期或交付時間,從而由使用者作出選擇,例如:    (1)只做優先順序最高的那類需求,開發週期需要3個月;    (2)做優先順序最高和優先順序高的那兩類需求,開發週期需要7個月;   (3)做優先順序最高、高和中等的共3類需求,開發週期需要12個月;  (4)所有需求都實現,開發週期需要18個月

15.你認為專案中最重要的是哪些過程?

    需求分析、設計階段(也可以加上測試,但千萬別說編碼或開發階段),根據《人月神話》的觀點:1/3 計劃;1/6 編碼;1/4 構件測試和早期系統測試;1/4 系統測試,所有的構件已完成。但根據國內目前的狀況一般公司不會有很多的分析與設計時間(這取決於公司規模和時間成本),這樣在一個工期很緊張的專案中我們應該儘量分配出進度優先順序來,首先拿出客戶最希望看到的和最能證明成果的東西來,其他的留待2期甚至3期去作,你可以告訴客戶需要進一步除錯(專業人員的欺騙手段,實際上就是在進行後續的開發)。

16.如果給你一個4-6個人的Team,那麼你怎麼分配他們、管理他們?

    管理能力和經驗的綜合題,可能沒有人有相同的觀點,那你可以按照某些思路來側面解答:我會挑選一個技術過硬的人作為我的替補和專案的輕騎兵,是的團隊中必須有機動人員,否則你的專案十有八九會夭折。其他的人會被平均的分配任務。我們會在每週進行全面的任務分配,每個人獲取一週的大概工作,然後每天的工作由他自己完成並彙報。(很好,如果答出這些就差不多了,多說可能會出現漏洞)

17.簡述常用的軟體開發文件。

1)可行性研究報告(某些公司或模型沒有)
2)專案開發計劃
3)軟體需求說明書(必有)
4)資料要求說明書
5)概要設計說明書(必有)
6)詳細設計說明書(必有)
7)資料庫設計說明書(必有)
8)使用者手冊(一般會有)
9)操作手冊(必有)
10)模組開發卷宗
11)測試計劃(必有)
12)測試分析報告
13)開發進度月報
14)專案開發總結報告

18.怎樣和為什麼要在編制專案計劃時考慮依賴關係

    依賴關係可以通過將任務及其後續任務的識別符號進行關聯來表示。依賴關係說明了任務之間關聯/並列的要求。依賴關係可以是指在另一個任務能開始之前有一個任務必須完成。例如,邏輯模型必須在物理模型前完成。但測試並不是要在所有程式設計工作完成之後才開始。專案計劃加入依賴關係,就能找出專案的關鍵路徑並且能夠確定它對專案工期的影響。

19.人員管理的技能---你作為專案經理要做的第一件事情是什麼?

    除了注意公司的發展方向並從中發現自己的發展道路外,在頭腦中要建立專案經理所關注事物(商務,公司,專案,團隊,個人,技術和方法論的變化)的優先順序。因此,和部門經理開會確定優先順序,安排使用者和職員會議,得到全部成員的狀態報告和評價。重要的是能儘快處理業務,專案和個人有關的事情。

20.人員管理的技能---你的團隊主要是由新手組成的,並且進度已經落後。你將做什麼?

    需要記住一個專案很少因為在截止時間內沒有完成而被取消的。專案被取消,主要是諸如缺少資金,使用者支援或不能滿足的業務目標。因此,要做的第一件事是培訓,無論在室內還是室外,在課堂或通過錄像帶。另一種附加方法就是讓資深的僱員或高階顧問充當教師。舉辦針對個人評估和輔導的會議。幫助每個員工準確評價他們各自的優點和缺點。同時明確任務,將所有必須遵守的標準或準則闡述清楚。為每個員工提供從成功專案中得到的模板作為指南,還要允許他們發揮自己的才能。如果需要,和他們一起工作。對任何問題或完成的任務做出迅速的反饋。對於較大的任務,看看他們的計劃,有助於確定他們是否瞭解任務的範圍和目標,以便了解他們是否能完成任務。傾聽員工的觀點,也許他們會有完成任務的正確的方法和途徑。然而也要防止僱員陷入挫折和士氣低落的困境中。

21.專案經理的能力和職能?

    專案經理最重要的是協調溝通能力和組織能力,能夠安排合適的人到合適的位置,制定較完備的專案計劃方案,讓專案組成員清楚瞭解各自的職責、工作量及時間安排,遇到困難能準確找到問題的關鍵點迅速組織人員解決之。
   專案經理不一定要技術最好,但技術好的專案經理在進度推進困難的時候將起到很大的作用。

22.專案實施有哪些主要階段,每個階段應該提交什麼成果?

    這裡只是列出幾個大的階段 :  
   1.需求分析-------提交《專案需求說明書》,並得到雙方認可。
   2.系統設計-------提交《體系結構設計書》《資料庫設計書》《介面設計書》《模組設計書》,均通過審評
   3.實現和測試------專案得到成品,並按《專案需求說明書》要求測試完畢,解決了所有已知問題。
   4.結項階段-------客戶驗收通過。
   5.具體實施和維護階段--實施成功,併合同要求進行維護

23.需求變更管理的手段和與客戶溝通的手段?

    專案開發過程中,需求變更是不能迴避的問題,我們需要一個正規的變更文件來定義每一次變更,並保持各個階段文件的一致性,避免混亂。
   對於需求變更應得到客戶在開發成本和進度的認可情況下進行,而不是一未滿足客戶,導致嚴重超支延期。
   變更這對專案開發一方是很頭痛的問題,變更應該有所控制,在雙方相互協調、認識統一的前提下進行,與客戶的溝通儘量採用可見的通俗易懂的方式方法進行。
   但在必要的情況下,應該採取對客戶進行相關專業知識的培訓手段,避免不合理的要求。

24. 範圍、時間,成本,這三項中哪些是可以由客戶控制的?

  範圍、時間、成本,是專案管理中常說的三角關係。任何一方改變都可能牽扯到其他兩方的變動。專案管理的本質,就是在保證質量的前提下,尋求這三者之間的最佳平衡。因為客戶是需求方和投資方,客戶有權對這三者進行控制,當然客戶主要控制範圍,即提出他們的需求——專案要實現的功能特性,其次,客戶也非常關心能交付的時間和所付出的成本。在滿足客戶的需求情況下,可以在時間、成本上和客戶進行交流、談判。從專案管理的角度看,最好固定其中一項,其他兩項可以根據實際狀況來調節保證專案質量。

25. 誰該對專案中所要付出的一切做出估算?誰有權設定最後期限?

  專案成功是團隊協作的結果。在對專案進行估算的時候,需要由參與專案各個環節的人進行符合實際的估算,最後彙總起來進行綜合分析計算,獲得專案總的估算結果。

  專案的最後期限設定除了客戶定死最後交付時間,其他的情況都是根據專案的進度估算結果而進行符合實際的計劃得出的。

26.減少交付的次數,或是減少每個每個交付中的工作量,你喜歡哪種做法?

  根據專案的型別和專案進行中的實際情況來決定,如果專案是規模比較大,時間長的,那麼就應增加交付次數或者減少每個每個交付中的工作量,以便及時考察專案進展,保證專案進度。例如,一個專案按計劃進行到第一個里程碑發現專案進度明顯落後,而下一個檢查點(也就是交付的工作量)距離還很長管理層需要及時瞭解其進展,那麼交付的次數的就要根據現在的時間狀況來增加。反過來,如果這個專案的進度非常好,甚至超前,而下一個檢查點(也就是交付的工作量)距離還很短,我們就可以減少交付次數。

  在傳統的軟體專案中,開發週期比較長,往往減少交付的次數,更好地控制質量;而現在,有一部分公司比較傾向於敏捷方法,喜歡減少每個交付中的工作量,交付週期只有幾周時間(最短的週期,可能是一週),擁抱變化,更好地、更及時地滿足使用者的需求。而對網際網路上的 web應用軟體開發,“減少每個每個交付中的工作量”是一個比較好的策略,力求及時獲得使用者的反饋,將使用者的需求及時融入新的版本,及時釋出出去,贏得競爭市場。例如,在我新書《軟體工程導論》中專門有一節討論“永遠的Beta”的軟體工程思想。

27. 你喜歡用哪種圖來跟蹤專案進度?

  還是要根據專案的特點來決定,具體專案具體對待,當然,有時也不能由自己決定,而是取決於公司已有的工具和習慣。對於複雜、規模大的專案,可能要藉助甘特圖和網路圖來分析和跟蹤進度。簡單、規模小的專案根據進度報告百分比和表格跟蹤就可以了。

28 迭代和增量的區別在哪裡?

  軟體開發不是一躇而就,其過程猶如雕琢一件工藝品,由無形到有形、由粗到細,很難一次就能開發出功能完善、強大的一個版本,而往往是分階段進行,一個版本接一個版本的釋出出去。軟體開發分階段可以通過兩種模型來描述,即增量模型和迭代模型。

  增量模型描述軟體產品的不同階段是按產品所具有的功能進行劃分,先開發主要功能或使用者最需要功能,然後,隨著時間推進,不斷增加新的輔助功能或次要功能,最終開發出一個強大的、功能完善的、高質量的、穩定的產品。

  迭代模型描述軟體產品的不同階段是按產品深度或細化的程度來劃分,先將產品的整個框架都建立起來,在系統的初期,已經具有使用者所需求的全部功能。然後,隨著時間推進,不斷細化已有的功能或完善已有功能,這個過程好像是一個迭代的過程。最終的目標是一致的,也是為了實現一個強大的、功能完善的、高質量的、穩定的產品。

  舉一個例子:假設現在要開發ABCD四個大的業務功能,每個功能都需要開發兩週的時間.則對於增量方法而言可以將四個功能分為兩次增量來完成,第一個增量完成AB功能,第二次增量完成CD功能;而對於迭代開發來將則是分兩次迭代來開發,第一次迭代完成ABCD四個基本業務功能但不含複雜的業務邏輯,而第二個功能再逐漸細化補充完整相關的業務邏輯.在第一個月過去後採用增量開始時候AB全部開發完成而CD還一點都沒有動;而採用迭代開發的時候ABCD四個的基礎功能都已經完成.

29. 試著解釋一下風險管理中用到的實踐。風險該如何管理?

  風險管理的實踐很多,包括頭腦風暴、風險列表(checklist)等。例如,人們常採用十大風險清單:在專案進行中,不時地更新和處理專案當前風險最高的前十項風險,以保證專案不脫離主軌道。因為專案中的風險大大小小會很多。十大風險清單就是抓住重要的風險及時處理,而又關係的小風險可能也就隨之消失。從這裡可以看出,風險也是動態的,需要經常地、及時地評估當前的風險,例如每週或每兩週進行一次風險評估。

  風險管理就是通過風險的識別、預測、估算和衡量、選擇有效的方法和手段,對風險進行預防、避免、降低或者轉移的管理過程。

30. 你喜歡任務分解還是滾動式計劃?

  根據專案特點來定,一般會選用任務分解的計劃,責任清楚,可控性更強。滾動式計劃的靈活性比較強,適應性比較好,但容易引起大家對計劃不夠重視,計劃能力降低,或者可控性會差些。有時會將這兩種方法結合起來使用。

31. 你需要哪些東西幫助你判斷專案是否符合時間要求,在預算範圍內運作?

  前提是這個專案的進度計劃和成本計劃是符合專案實際情況並不斷隨著專案的時間發展而滾動更新的。

  確保收集的進度和花費的成本就真實可靠的。

  在此時專案的範圍沒有影響到時間和成本的規劃。

  那麼就可以根據專案時間與計劃的內容進行對比來判斷專案符合時間要求,在預算範圍內運作。常用的方法有基線對比法和掙值法。

32DSDMPrince2Scrum,這三者之間有哪些區別?

  動態系統開發方法(Dynamic System Development methodDSDM)是眾多敏捷開發方法中的一種,它倡導以業務為核心,快速而有效地進行系統開發。該方法的詳細內容,可以參考:DSDM業務中心框架開發方法(第二版)。這種方法主要是在英國應用比較廣泛。一般來說,敏捷方法適合於規模比較小、變化比較快(需求不夠穩定)的專案,而對大規模軟體,特別是在關鍵性、可靠性、安全性方面有很高要求的開發專案,則不適合。當然,可以在某些專案小組內實施;也是可以的。敏捷開發的方法很多,包括下面所說的 Scrum、自適應軟體開發(Adaptive Software DevelopmentASD)、Crystal方法和特性驅動開發(Feature-Driven DevelopmentFDD),可以參考《敏捷軟體開發生態系統》。

  PRINCE2PRojects IN Controlled Environments 2)為專案管理提供了一種結構化的方法,這種方法最早是在1989年由英國政府計算機和電信中心(CCTA)開發的,作為英國政府IT專案管理的標準。 PRINCE2如今日益流行,是英國專案管理的標準,它為管理專案提供清晰界定工作框架,介紹如何協調專案中的人和活動、如何設計和監督專案以及在專案發生變更的情況下如何調整的流程。每一個流程都詳細標出關鍵的輸入、輸出和具體目標及要執行的活動,這為計劃偏差提供了自發的控制。這種方法把專案劃分為多個管理階段,保證讓所有資源得到有效的控制。依靠嚴格的監控,專案在控制和組織的方式下得到執行。

  Scrum是一種迭代式增量軟體開發過程,通常用於敏捷軟體開發。Scrum在英語的意思是橄欖球裡的爭球。Scrum是一個包括了一系列實踐和預定義角色的過程骨架,其主要角色包括同項目經理類似的Scrum主管角色——負責維護過程和任務,產品負責人代表利益所有者,開發團隊包括了所有開發人員。在每一次衝刺(一般為1530天週期),開發團隊建立可用的、可隨時推出的軟體一個增量(小版本)。每一個衝刺所要實現的特性來自產品訂單(product backlog),產品訂單是按照優先順序排列的工作需求。在衝刺的過程中,沒有人能夠變更衝刺訂單(sprint backlog),這意味著在一個衝刺中需求是被凍結的。

  管理Scrum過程有很多實施方法,從白板上的即時貼到軟體包。Scrum最大的好處是它非常容易學習,而且應用Scrum不需要太多的投入。方法的應用,同樣由專案規模、業務特點(需求是否穩定)等決定,而且還受企業文化、流程和領導意識等決定。如果需求穩定、專案規模比較大或週期比較長,一般會選用 PRINCE2,相反,可能會選擇DSDMScrum,後兩者沒有本質區別,只是具有不同的最佳實踐。

  正如有人評論,國內對Scrum還比較熟悉,對DSDMPRINCE2等不夠熟悉,應用不多。而業界最熟悉的是CMMIRUPIBM Rational Unify Process 統一過程)、XP(敏捷方法的極限程式設計extreme Programming)和MSFMicrosoft Solution Framework,微軟公司軟體開發解決方案框架),可參考:軟體開發過程(CMMI/RUP/XP/MSF)是與非

33. 如果客戶想要的東西太多,你在範圍和時間上怎樣跟他達成一致呢?

  首先要向客戶說明,如果在某個時間內去做不可能完成的工作,其結果必然是質量得不到保證,或者所化的成本過大。應該沒有客戶想做賠本的生意,每個客戶都會重視質量,而不願意損害自己的利益。

  然後,和客戶一起,按需求重要性、緊急性等對需求進行分類,分為不同的等級,然後從優先順序高的需求開始,來估算不同優先順序類別的需求實現的工作量。設定幾個不同的開發週期或交付時間,從而由使用者作出選擇,例如:

  (1)只做優先順序最高的那類需求,開發週期需要3個月;

  (2)做優先順序最高和優先順序高的那兩類需求,開發週期需要7個月;

  (3)做優先順序最高、高和中等的共3類需求,開發週期需要12個月;

4)所有需求都實現,開發週期需要18個月

34、專案經理應具備的能力是什麼 

答:專案經理最重要的是協調溝通能力和組織能力,即能夠安排合適的人到合適的位置,制定較完備的專案計劃方案,讓專案組成員清楚地瞭解各自的職責、工作量及時間安排,遇到困難能準確找到問題的關鍵點並迅速組織人員解決。 
專案經理不一定要技術最好,但技術好的專案經理在進度推進困難的時候將起到很大的作用。 
 
35、專案實施有哪些主要階段 
答:(1)需求分析——提交《專案需求說明書》,並得到雙方認可。 
(2)系統設計——提交《體系結構設計書》、《資料庫設計書》、《介面設計書》、《模組設計書》,均通過審評。 
(3)實現和測試——專案得到成品,並按《專案需求說明書》要求測試完畢,解決了所有已知問題。 

(4)結項階段——客戶驗收通過。 (5)維護階段——按合同要求進行維護。  

36、工期和工作量之間的差異是什麼 
答:工期是日曆上的天數,與人數和工作量無關。工作量是與日曆天數無關的人的工作。 
 
37、怎樣和為什麼要在編制專案計劃時考慮依賴關係 
答:根據使用的軟體包,依賴關係可以通過將任務及其後續任務的識別符號進行關聯來表示。依賴關係說明了任務之間關聯或並列的要求。依賴關係可以是指在另一個任務能開始之前有一個任務必須完成。例如,邏輯模型必須在物理模型前完成。但測試並不是要在所有程式設計工作完成之後才開始,前提是沒有完成的程式對線性測試沒有影響。 
在專案計劃中加入依賴關係,就能找出專案的關鍵路徑並且能夠確定它對專案工期的影響。 
 
38、你怎樣著手製定專案計劃 
答:專案計劃是實現成功的系統的路線圖,它提供了一種手段來通知每個人專案希望他們做什麼及何時完成。它幫助專案經理使管理層、商務使用者和支援團體瞭解專案狀態並調整特殊的資源。逐項列記的“一覽表”協助對任何變動的影響進行迅速評估。當實況報告與計劃聯絡起來後,計劃為今後專案的任務劃分和估算提供了有用的資訊。 
我是這樣著手製定專案計劃的,即在適當的活動和階段中或在其他的概括標準的說明下,輸入確定的任務。將適當的可交付產品及階段目標與特定的任務聯絡起來。連線全部需要依賴關聯的任務。把資源角色或資源名字加到每個任務上。應用度量結果事先確定任務工作量,把更多的時間用於需求收集、設計和測試。考慮所有已知的節假日、培訓、休假或其他的資源停工時間。同支持團體、管理層和商務使用者一起復查計劃草案,將結果作為補充性的輸入並請求最終的批准。  
 
39、給專案加上測量標準有什麼價值 
答:如果使用得當,測量標準是一個有價值的工具。它們提供了測定開發系統的複雜性和工作量的方法。度量結果為制定專案計劃提供了資訊輸入資源,並且是確定發展方向的有價值的歷史資訊;軟體測量標準將有助於開發更好的軟體。 
 
40、作為專案經理你要做的第一件事情是什麼 
答:除了注意公司的發展方向並從中發現自己的發展道路外,在頭腦中還要明確專案經理所關注事物(商務、公司、專案、團隊、個人、技術等)的優先順序。具體內容包括和部門經理開會確定優先順序,安排使用者和職員會議,得到全部成員的狀態報告和評價,能儘快處理與業務、專案和個人有關的事情。 
 
41、在決策和工作風格方面你會給下屬多大的自由 
答:自由的大小取決於每個人的技能和專業水平。一個好的經理是“面向結果的”,並且能創造一個使團隊廣泛交流的環境。無論如何,每個員工每週須提交與專案和商業目標有關的狀態報告,經理要進行審查,這有利於加強組織建設並使每個員工緻力於他們自己應完成的工作。