PM 幫程式設計師提高效率需要做的 5 件事

2015-11-13    分類:程式設計師人生、首頁精華2人評論發表於2015-11-13

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

作為一個軟體開發人員,只有卓越的技術是不夠的。更重要的是應該專注一些作為一個專業人士應該瞭解的內容。在我的排序中,與參與專案的其他人的交往能力是名列前茅的。無論專案是什麼性質的,你都需要與其他人互動:

  • 作為一個開源貢獻者,你必須合作審查補丁或讓別人來審查你的補丁,你必須解決使用者提出的問題,你需要與其他提交者或共同維護者一起規劃好如何同新使用者交流功能
  • 作為一個自由職業者,你必須與現有的和潛在的客戶互動。你還需要和參與專案的其他開發人員、設計師和測試人員互動,你需要清楚明白地傳達誰負責什麼
  • 當在一家公司工作時,你需要與團隊中或其他團隊中的開發人員進行協調,需要與你的經理進行溝通——最重要的就是關於如何與專案經理的互動

程式設計師和專案經理……並不總是一見鍾情

我們與專案經理的關係並不總是那麼和諧:我們作為開發人員非常容易抱怨他們。畢竟是他們的吹毛求疵導致了我們一再需要改動程式碼,甚至到週五晚上六點還得趕去公司加班。又或者,他們要求持續地釋出一些對我們毫無意義的功能。

不過,我認為專案經理在一支成功的團隊中有著基礎性的作用。作為一個開發者,只有當團隊成功了,我才能成功。出於這個原因,我認為與專案經理打好關係是交付成果的關鍵。我很幸運我碰到了很多助我良多的專案經理。當我在TripAdvisor的時候,尤其如此:在那裡我遇見了一位堪稱絕對偉大的專案經理。但這並不意味著我沒有和我的開發同事對他們時不時地抱怨。

然而一個好的專案經理意味著,我們正朝著正確的方向前進,我們能快速釋出功能,我們能和公司其他部門協調我們的專案。

所以我非常確信,專案經理可以扭轉乾坤。但是,這種影響既可以是殘酷消極的,也可以是精彩積極的。我不敢說我理解PM的所有責任,而且,我相信有很多的事情,他們是不用和像我這樣的開發人員互動的。我只是在想,專案經理如何與開發人員互動,以及我作為一個開發人員能夠從專案經理那裡學到什麼。

從我的角度來看,通過這5件事,專案經理可以讓開發人員的工作生活變得更容易。

1)交流業務重點,考慮技術重點

我們都超額工作過,我們每個人都有過要在一週內完成一大堆瘋狂任務的經歷。作為開發人員,我得能夠評估完成每個任務以及任務間關係所需的努力。也許一定程度的重構可以簡化開發某個功能,所以相應地排序這些任務是有意義的。如果某個任務可能需要兩個星期,而實施三個其他功能可能只需要僅僅半天的時間,那麼,我會先去完成後者。

但是技術方面不過是一半而已:順序任務要求我們要知道業務的優先順序。客戶對什麼最看重?哪些功能對我們的收入有著直接的影響?這些都是非常重要的,因為我們能從中知道應該往哪裡花精力,先交付什麼。我認為,專案經理需要經常與開發人員討論優先次序,並同時需要加以考慮業務重點和技術重點,然後才能決定我們接下來的工作。

有時專案技術重點也很重要:我們不能總是忽略技術重點,只考慮業務重點,因為這最終會影響我們提供的軟體,影響該業務。

2)讓開發人員提前明確知道最後期限

你有沒有遇到過開始不需要後來又需要去做的事情?或者說,客戶昨天應允接受一個新構建,今天卻表示不需要了?這些都不是令人愉快的“驚喜”。明確這一點:工作生活中總會有各種需要我們去處理的意外發生。應用程式出現故障,導致公司每分鐘都在虧損:於是,你只能先停下你手頭的工作,去解決故障。發現新bug,需要儘快解決存在的安全問題……,等等,現實生活中總有一些事情是我們無法預料的,是在我們計劃之外的。我們只能被動地作出回應。

然而,這並非是一定的,因此我們不能總是預備著應急驅動開發。這只是意外情況。截止期限必須經過溝通討論後得到一致的同意,這樣才能得到很好的規劃。作為開發人員,我們常常無法總覽全域性,但這句話同樣適用於專案經理:他們經常忽略技術方面的問題,以致於最後無法在最後期限內完成任務。所以,親愛的專案經理:請儘可能早地讓我們知道截止日期。

說明:我所說的“讓開發人員知道最後期限”指的是真正的最後期限。關於專案經理,最糟糕的事情之一就是提供一些虛假的,強加的最後期限。有些專案經理為了能有一個時間緩衝,會告訴開發人員客戶想要在1號釋出,但事實是,客戶同意的時間是15號。也許,他們是因為覺得我們常常釋出得比較晚才這樣說,但……你猜最後結果會怎樣?就像狼來了一樣,早晚開發人員不會再相信你,會無視你給出的壓力和時間限制。

3)管理溝通

我知道這可能聽起來有點不合理的,但開發人員確實有一些缺陷。其中一個缺陷就是,開發人員的溝通…與眾不同。他們更趨向是用直接而生硬的方式。這在機器上面很好使,但對於客戶則不。因此,最好讓專案經理幫我們去傳達意思。

而且專案經理能夠厚臉皮地追著客戶問一些我們開發人員需要他做決定的問題。或和其他團隊的專案經理交談,說服他們來回答我們團隊提出的要求。是的,我們確實需要一個答案,一個過去幾周我們轉發了三次卻一直被忽略的答案。

一個了不起的專案經理能為我們提供我們工作中所需要的所有資訊,保證與有關部門和有關人員的通訊順暢。不過,我們可能甚至都不會意識他們付出的這些努力。

4)保護開發人員

在一家公司工作是有壓力的。壓力有不同的來源,而且需要人為管理。作為軟體開發人員,我們需要處理來自於技術挑戰的很多壓力:難以重現的bug,取決於執行緒同步的間歇性問題,默默打破一切的框架新版本,不可靠的會導致一些整合測試失敗的基礎設施。各種各種的壓力讓我們不堪重負。

專案經理也有他們的壓力:他們要處理更多的內部政治問題,他們要參與討論應該開發什麼功能,他們得為團隊爭奪資源。他們要和其他團隊競爭,他們要面臨客戶的咆哮。但是,如果專案經理因此而將所有的壓力轉嫁給開發人員,那麼,我們,開發人員,就會成為落入風箱的老鼠,兩頭受氣,腹背受敵:既受制於技術困難,又被客戶和政治虐得一塌糊塗。所以,我誠摯地希望我們能夠達成一個約定:技術我們來解決,而剩下的,則是你們專案經理的責任。

5)確保我們工作於相關專案

我們在工作中會碰到這樣的情況,非常非常努力構建的東西,卻對公司產品只有非常有限的影響。可能這對那些喜歡構建一些超酷的玩意兒的傢伙來說,是一件令人愉快的事情,但從長遠來看,這將不利於你的職業發展。它不會有助於你的升職加薪,如果你一直努力工作在這些無關緊要的東西上的話。致力於那些可以給業務帶來重要影響的事情,有下面這幾個優勢:給你額外的動力,讓別人注意到你,有可能獲得來自於企業的更多資源和更多支援。

工作於不相關的功能還不是最糟糕的事情。剛完成功能,專案就被放棄了,是不是更糟糕?感覺就像一腔熱血付諸東流,問君能有幾多愁,恰似一群太監上青樓?因此,最好和那些不會置你於此種境地的專案經理工作。

寫在最後

我承認專案經理幫我們攔截了很多問題,有些我們甚至都不知道。他們是我們與客戶,與企業其他部門之間的介面。他們確保我們正在做的事情是能夠提供價值給使用者的。因為他們掌控了全域性,所以我們才能奢侈地只需要專注於接下來要實現的功能,測試它,釋出它。

很多時候,開發人員認為這都是專案經理理所應當做的,因此常常低估了專案經理。這是因為我們不能理解他們的職責。但是請相信我,如果你和一個偉大的專案經理工作以及一個……沒有那麼偉大的,你就會發現其中的差異。

我希望我們開發人員和專案經理雙方都能從一種更好的關係中受益,達到雙贏的狀態。別說不可能,我就是一個事實:我的專案經理恰好就是我的女朋友哦:  )

譯文連結:http://www.codeceo.com/article/5-things-pm-programmer-productive.html
英文原文:how a Project Manager can help developers becoming much more productive
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章