核心要點
無論我們是否樂意承認,除非是純粹為了娛樂的業餘項目,即使是最資深的程序員,實際上也是能夠編寫代碼的項目經理。而作為項目經理,我們都可能經歷項目失敗的痛苦。項目失敗的原因多種多樣:錯過截止日期、預算超支、結果不符合預期等等。但它也可能在情感上失敗;項目可能成功了,但人們的期望沒有得到滿足,沒有成就感或“工作完成”的滿足感。那麼,作為技術項目經理,你能做些什麼來最大限度地減少在簡歷上添加“失敗項目領導者”的可能性呢?答案是:與非技術項目領導者所做的大致相同。
預期管理
現實固然重要,但在商界,人們認為發生了什麼總是比實際發生的事情更重要,項目也是如此。即使是最成功的項目,也可能因為期望的失敗而蒙上陰影,掩蓋了所做的出色工作和獲得的益處。如果期望的失敗足夠嚴重,甚至可能破壞其他原本進展順利的項目。那麼,如何管理期望呢?首先,確保每個人都非常清楚項目的目標、預期收益、用戶需求、所需資源、項目間的依賴關係以及項目將要實現的功能。我知道我重複了最後一點,但這確實很重要!很多時候,用戶聽到他們想听到的,而不僅僅是一份備忘錄或簡短的談話就能解決這個問題。尤其要注意高層管理人員對項目的評價,無論是項目啟動之初還是項目後期,都要迅速糾正任何不實之詞,以免它們成為被普遍接受的觀點和“從一開始就屬於項目範圍”的一部分。同時,也要迅速而禮貌地處理你聽到的任何關於項目的負面言論。這樣做並非要壓制叛逆言論(儘管記下名字也不失為一個好主意,你知道的,以備後用),而是要弄清楚這是否是一種誤解、事實陳述錯誤,或者這是否可能成為以後的問題,應該立即處理,方法是修改項目規格或重新審視基本假設。
摒棄傳統,採用迭代式方法
在傳統的瀑布式項目中,你制定一個從開始到結束的項目計劃,並給出總時間和預算估計。不要這樣做。相反,使用迭代式敏捷項目模型,每個步驟都以一個易於測試、高度可見的產品結束,人們可以根據它來衡量他們的期望。儘管兩者有相似之處,但技術項目與建造橋樑不同。建造橋樑的主要未知因素是地基的土壤特性。一旦評估了這一點,很多不確定性就消除了。技術項目可能變量更多,但它們分散在項目的整個生命週期中,你永遠不會真正到達(也許)所有這些變量都已知曉的點。瀑布模型基於這樣一個事實,即未知因素將在實施過程中得到評估和彌補。由於各種原因,技術項目似乎並不總是這樣運作,因此瀑布模型是一個糟糕的模型。然而,瀑布模型的主要問題是它致力於關注某個幾乎最終的“測試”階段。它並非旨在支持從第一天起就開始測試的情況。因此,問題,甚至是重大問題,直到項目幾乎完成時才會被發現。另一方面,敏捷方法的核心是迭代:工作兩週,產生一些真實的東西,讓用戶測試它,然後重複。沒有PowerPoint演示文稿或馬拉松式的團隊會議,只有人們可以登錄並試用的東西。這就是吸引他們注意力的東西,你知道的。在使用敏捷方法的同時,我還建議使用Scrum。它們不必同時使用,但我認為這是一個好主意。你知道人們喜歡什麼嗎?他們喜歡簡短的東西;它開始,它發生,它結束。就是這樣。這就是Scrum的本質——頻繁的、非常簡短的、沒有時間放鬆或推脫的項目團隊會議,我們直截了當地快速討論。它可以防止任何人忘記項目及其進展,並且不會佔用他們一天中過多的時間。所有這些對你有什麼好處呢?敏捷和Scrum使你能夠更清晰地了解你在整體項目估計方面的工作進度。通過定期進行嚴格的用戶測試,你可以提前了解可能需要添加到應用程序中的內容以及可以刪除的內容。如果存在重大問題,你可以在流程的早期階段開始重新設計。這使你能夠積極主動,這就像擁有漂亮的髮型一樣;它總是會帶來好處,並將項目置於積極的方面。
範圍蔓延的危害
大多數項目都因範圍蔓延而失敗。範圍蔓延導致項目延期、預算超支以及未能滿足目標用戶的期望。因此,不要讓這種情況發生。雖然這說起來容易做起來難。範圍蔓延最常見的形式是,有人提出一個觀點,並以“但從一開始我們就想要這樣”開頭。他們可能是誠實的;他們可能真的認為功能X將執行功能Y,事實上,這才是項目存在的主要原因。因此,因為它應該從一開始就在應用程序中,所以你把它添加進去。有時,這種影響微不足道,但大多數時候並非如此。這不僅可能發生在項目生命週期的某一時刻,而且可能反復發生。那麼你該怎麼辦呢?首先,無論如何,你必須保持外交手腕。你可能想跳過桌子抓住某人的喉嚨,但你必須保持冷靜,並保持權力平衡在你這邊。回到你的初始項目聲明,並表明該請求從未被討論過,更不用說被確定為應用程序的組成部分(這就是為什麼需要非常清晰和詳細的項目聲明至關重要)。其次,為了限制範圍蔓延的次數,你應該確保你的用戶正在很好地進行迭代測試。範圍蔓延在開發後期最具破壞性,因為必須進行大量的用戶幾乎看不到的改造工作。迭代測試,而不是僅僅談論項目的進展,是讓用戶了解系統功能的更好方法。最終,問題是雙重的。首先,你可能在應用程序將做什麼和不做什麼方面不夠詳細或具體;兩方面都需要詳細說明。其次,你必須記住,你的用戶在你說話或閱讀你寫的東西時可能不會百分之百地註意(即使他們在會議中是為了專門討論應用程序應該做什麼)。不要期望因為你明確地說明了事情,人們就會知道。一個好方法是製定你的計劃,然後讓他們告訴你他們認為系統會做什麼以及他們可以期待什麼。記錄會議——你可以在審判中使用它。遺憾的是,沒有辦法預防範圍蔓延。你所能做的最好的就是嘗試預防它,當它出現時,盡最大努力阻止它。最終,你很可能不得不做用戶想要的事情,但不要只是去做;把它作為你項目的補充。詳細說明執行所需步驟、所需時間以及對其他所有內容的影響,然後獲得用戶群的批准,以確認他們確實希望這樣做。
注意奇怪的事情
注意奇怪的事情。我指的不是奇怪的需求,而是對你的團隊或你的環境來說可能比較新的事情。例如,如果你正在構建一個接受信用卡數據的應用程序,你真的了解PCI嗎?或者,也許你將從CodeIgniter切換到Laravel。你將需要一些額外的時間(甚至超過正常的範圍)。注意那些可能讓你絆倒的事情。
總結
最重要的是:項目管理是一場你無法贏得的比賽。如果你遠低於預算和時間,每個人都會認為你是一個沙包,以後不會再相信你的估算了。關注重要的事情。要具體,要友好,要敏捷,並期待最好的結果。 圖片來自Fotolia
關於PHP項目管理的常見問題
選擇PHP項目管理工具時,應考慮任務管理、時間跟踪、文件共享和協作工具等功能。該工具還應該具有用戶友好的界面,並且可以根據您的特定項目需求進行定制。此外,請考慮該工具是否與您使用的其他軟件(例如電子郵件客戶端或日曆應用程序)集成。最後,考慮該工具的安全功能,以確保您的項目數據得到保護。
PHP項目管理工具可以通過提供一個中心平台,讓團隊成員可以溝通、共享文件和跟踪項目進度,從而顯著增強團隊協作。這些工具通常包括任務分配、截止日期跟踪和實時更新等功能,這有助於讓每個人都步調一致,並確保任務按時完成。
是的,有幾個可用的開源PHP項目管理工具。如果您預算緊張或想要自定義工具以滿足您的特定項目需求,這些工具可能是一個不錯的選擇。一些流行的開源PHP項目管理工具包括Rukovoditel、ProjectLibre和Taiga。
使用PHP從頭開始構建項目管理應用程序涉及多個步驟。首先,您需要設計應用程序的架構,包括其數據庫結構和用戶界面。接下來,您需要編寫PHP代碼來實現應用程序的功能。這可能包括任務管理、文件共享和團隊協作等功能。最後,您需要測試應用程序以確保其按預期工作。
使用PHP項目管理工具的一些最佳實踐包括設定明確的項目目標、定期更新項目狀態和鼓勵團隊協作。充分利用工具的功能也很重要。例如,使用任務管理功能將任務分配給團隊成員並跟踪他們的進度。使用文件共享功能確保每個人都能訪問最新的項目文檔。
是的,PHP項目管理工具非常適合遠程團隊。這些工具提供了一個中心平台,讓團隊成員可以溝通、共享文件和跟踪項目進度,而不管他們的實際位置如何。許多這些工具還提供移動應用程序,允許團隊成員隨時隨地訪問項目信息。
PHP項目管理工具的安全性能因工具本身和已實施的安全措施而異。但是,大多數信譽良好的工具都非常重視安全,並提供數據加密、用戶身份驗證和定期安全更新等功能。
是的,許多PHP項目管理工具都與其他軟件集成。這可以通過允許您在一個地方訪問所有項目信息來幫助簡化您的工作流程。常見的集成包括電子郵件客戶端、日曆應用程序和文件存儲服務。
使用PHP項目管理工具可以提供多種好處,包括改進團隊協作、更好的項目組織和提高生產力。這些工具還可以幫助您跟踪項目進度並確保任務按時完成。
選擇PHP項目管理工具時,請考慮您的特定項目需求和工具的功能。尋找一個提供您所需功能的工具,例如任務管理、文件共享和團隊協作。還要考慮工具的用戶界面、安全功能和集成選項。最後,考慮您的預算和工具的定價結構。
以上是PHP主| PHP項目管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!