跳到主要內容

什麼是一位好的 PM ?對工程師來說

什麼是一位好的 PM ?對工程師來說

enter image description here
經過許多專案的洗禮,以及經過許多不同的程式開發流程,很多人都會對於 pm 這個角色既熟悉又害怕。熟悉的是許多事情都可以順利幫你處理好,讓開發的工程師沒有後顧之憂。害怕的是不知道什麼時候會被盯上。這種微妙又有趣的張力,每次在不同專案裏面都有不同展現。

也許對於工程師本身來說,放手讓自己可以好好展開身手就是一個發展的好平臺,對於有領取固定月薪工程師來說,最棒的工作,應該就是每天都可以摸到新的技術,以及每次都可以把新技術直接引用在開發當中。

而在當中最不想管得主要就是兩件事情。
  1. 回報開發時間
  2. 細節的糾正與調整
這兩件事情對於開發程式本身並沒有任何幫助,也不會讓自己長知識,更比不上使用 php 換成 go 改寫後端程式來的這麼有趣,這麼有爽度。
但是,人生一直以來就是這個『但是』。

你老闆在你背後,現在很火

給你薪水的人,現在很火,很火的事情是,他壓根不知道工程師每天辛苦改寫程式,他所能感受到的事情只有幾個,
  1. 你每天都在看 blog
  2. 你每天都在開 facebook
  3. 你每天都在看 youtube
  4. 你每天 … etc
老闆無法知道的是,API 從 2ms 變成 0.5 ms 需要付出的辛苦有多大,但是你每次開 youtube 就是會被看到,人生就是這麼剛好,也都這麼不巧 … WTF
這一切的一切,真的都需要靠一位 PM. 就是這一位 PM 大大 (指的爲  Project Manager)。

聯絡窗口及溝通橋樑

在整個開發流程中,PM 正是擔任此要角,很多人以爲 PM 的工作在於,
  • 幫忙整理文件
  • 畫押日期,與永遠改不完的干(肝)特圖
  • 每天逼問工程師進度
  • 脅迫工程師一日內完成世界奇觀
事實上 PM 能做的比想象的多很多,也因爲經歷過許多專案,以及開發流程,能夠瞭解一個好的 PM 能夠讓工程師省下許多事情。最大最大最大的好處,就是『讓大家知道我們在做什麼』。

讓大家知道我們在做什麼?

這件事情聽起來似乎非常容易,也是稀鬆平常不過的事情。但這其中至少牽扯到對上及對下之間的方式,首先對上來說,PM 可以讓事情的安排有一個節奏。

在與工程師正常回報進度的狀況下,所有的時程,以及進度狀況就 PM 能夠最清楚的全盤瞭解,也是因爲如此,更能夠抓出整個專案『實際開發時間』,才能真正對上交付實際狀況,以及預報接下來可以發展的時程。

對於某些時候,彙報狀況並不會雙方都如預期所見,始終會有落差,可是因爲透過 PM 能夠更清楚交代整個流程以及層層環節,至少算是讓老闆知悉實際面對的問題,以及共同承擔的風險。(一個共業的概念)

對下而言,經過 PM 對於事情進展更爲清楚之後,抓到實際開發時間,當有新的開發流程,需要請工程師評估時間的時候,就能夠更瞭解每個人實際開發需要時間,以及每個人樂觀程度,甚至提早避免讓開發狀況變成要一碗粥,給一鍋米的狀況出現。

辛苦了,PM 大大

PM 是一個可強勢,可幕後的工作,最強事實上就已經變成一個團隊的核心領導成員,最小也可以退居到幕後成爲幕僚成員,讓團隊無後顧之憂。

就如同前面所提到,實際開發流程上,『開發』只是所有環節的基礎,但僅止於是基礎而已,當中有許多與人溝通的環節,書面資料的交付這都是身爲工程師所厭煩的,實際上還是有人需要去做這些事情,很多時候 PM 要達到這樣的資源調配,打通層層環節,跨部門進行溝通,就是爲了讓『工程師安心』。

對於 PM 來說,最難得就是在於『溝通』

以前不覺得工程師是一個奇特的生物,而事實上工程師事實上是真的比較奇特的生物(沒錯),喜歡以剖析方式來進行事情的分解,喜歡用理性的角度去看待事情的原則,喜歡用最小成本達成最大效益,這是一群很聰明的人才有辦法做到的思維。

而大部分的人是無法如此理性,理想化,因此工程師還是一個怪人(蓋章)

而 PM 最辛苦的部分就是要忍著耐心聽著工程師的笑話,聽不懂的語言一直耐著性子與工程師溝通著,而且不能太笨,也不能太聰明來與工程師溝通。更不用說對上及對下,還有跨部門的溝通聯繫,這都是需要有某些『特質』以及耐心才有辦法達到。

工程師最希望什麼?

身爲工程師最希望的就是一個很單純的環境,有一臺電腦,良好的網路,再加上一杯咖啡,給與一個安靜的空間,就可以讓工程師專心待上一整天,提供彈性且自由的環境架構,讓工程師可以自我主張,徜徉在程式碼海裡完成一件史詩鉅作。

想要達到這件事情,當然也需要做到『工程師的本分』,
  • 適當的回報
  • 問題的發現,處理同時並回報說明
  • 信任合作的夥伴
  • 限定時間內完整交付
而想要達到這些必須要仰賴真正的 PM,能夠溝通,協調,資源調配。

工程師真正要得是一位 PM,而不是一個 Deadline Proxy 。

地方的工程師需要專業 PM。

別讓工程師不開心

在專案裏面很多人最不重視的就是 PM ,而當中最被保護的就是工程師,正所謂『別讓工程師不開心』,萬一不開心,兩手就開始不穩,可能 cookie 就會變成 chocolate ,甚至 user login 都可能變成 admin 的權限(咦,這麼會有這個 feature ???)

嘖嘖,別讓工程師不開心。

留言

這個網誌中的熱門文章

面試者如何挑戰大工程師時代來臨?

面試者如何挑戰大工程師時代來臨? 全世界都在倡導轉職成為工程師,似乎轉職成為工程師就成為職場的救贖,真的是如此嗎?讓老衲來杠給各位聽。 最近有位好久不見的小朋友,是 2000 年出生的小蔡,對於即將面臨到面對職場的挑戰開始關心起技術,他開始尋找比較適合自己的領域,同時也開始在思考到底為了接下來的就職小蔡該如何準備。 詢問我說是不是可以考慮軟體開發工程師這條路線 對於他的詢問,反而引起我的注意, 這讓我開始思考並映射於最近招募的經驗,軟體開發此領域是不是對於每個人都是可以擔任的職啀,這邊分享一些自己的看法希望對各位有所幫助。 全民工程師這件事情 在全球景氣低迷的狀況下,的確特別在這一年大家會很有感覺萬物齊漲,薪水不漲,薪資就是一直停滯不前。 很多時候,在不同的領域中,會發現整個薪資就算是擔任了管理職務主管你也會面臨到薪資的強大屏障在自己面前。 這個時候, 軟體工程師年薪百萬口號 似乎就成了一種救贖。 好像成為了工程師就可以達到年薪百萬,在家輕鬆工作,不用打卡也不用受到風吹雨淋,隨時想工作就可以工作,每個月又有固定薪水入帳,感受到類財富自由,人生的美好。 如果能夠爭取到跨國公司的職位,這份薪水有可能還可以上看每個月十多萬以上,甚至是往上也是極度有可能的事情,人生美好層次又再度提高了起來。 但這件事情是真的每個人都可以達到嗎? 還是這就是另外一種性存者偏差呢? 亦或者這些人其實是金字塔頂端的小眾? 每份履歷都像是同一種履歷 最近在最近幾年在面試工程師的時候特別會看到許多轉職者,一開始履歷裡面看到相關的作品一開始會覺得十分的驚艷, Wow, 現在的新手就可以做到如此精美的畫面,這些畫面是我當初用 Bootstrap 也做不出來的東西,許多的互動體驗好的一個不行,做出來的頁面配色和對齊也是極致。 但是隨著時間推移,多看了幾封履歷之後,就會發現在各大技術養成學院出來的學生履歷成果內容如出一轍,在面試的過程中也會詢問許多關於框架的底層概念,和比較技術觀念的時候,甚至是許多框架的核心概念,就很容易露出馬腳。 很多面試者會 一問三不知 ,透過許多引導,但殘酷的是連關鍵字是什麼都也無法推敲出來,更不用說在小組裡面到底怎麼樣合作,許多不同線上產品的比較,使用者流程,使用者後面的互動邏輯等,幾乎是風吹一片倒,只能

jQuery, animate function with css exlapenation.

Today, I want to use jQuery making a animation for webpage, First I check animate fuction on ref book. I clearly know how use it, there are two main function for animate. 1. $().animate({ "style1":"value1" , "style2":"value2" }, Time); Time: it can be three type, String => "slow", "fast", "normal". Integer=>10000 2. $().stop(); it can immedaitely stop animation. Let's do some experieces, I bulit a simple page. You can hover UP and DOWN for a article sliding UP or DOWN. Les't do it. HTML CODE: <div id="all"> <div id="up">往上</div> <div id="showTab"> <div id="data"> About This script is intended for forms where the user needs to upload an image to a Web site. The image is displayed on the page for previewing before uploading. The display will be resized if needed so as not to break the page layout. Valid file types are set in the scri

初探 LangChain:語言模型應用程式開發的強大框架

LangChain 是一個強大的框架,致力於幫助開發人員利用語言模型構建端到端的應用程式。它提供了一整套工具、組件和接口,大大簡化了創建由大型語言模型(LLM)和聊天模型支持的應用程式的過程。LangChain 可以輕鬆地管理與語言模型的互動,將多個組件連接在一起,並集成額外的資源,例如 API 和資料庫。 LangChain https://python.langchain.com/en/latest/index.html 不說廢話,直接開始試著安裝, pip install langchain pip install openai export OPENAI_API_KEY="..." 以下是一些 LangChain 的簡單程式碼: import os os.environ["OPENAI_API_KEY"] = "..." from langchain.llms import OpenAI from langchain import OpenAI, ConversationChain from langchain.agents import initialize_agent from langchain.agents import load_tools from langchain.chains import LLMChain from langchain.prompts import PromptTemplate prompt = PromptTemplate( input_variables=["product"], template="What is a good name for a company that makes {product}?", ) print(prompt.format(product="colorful socks")) # What is a good name for a company that makes colorful socks? 在 LangChain 中,開發人員可以使用 LLM、Chat Model、Agents、Chains、Memory