讀了著名部落客Mr. Saturday 最近所發表的《你的老闆讓你「在家工作」?》一文後,也讓我又聯想到一些關於程式設計者工作模式的事情。

之前,我已經發表過對「程式設計者為何偏好在夜間工作」,以及「責任制 vs. 打卡制」的看法。而「在家工作」這個主題,事實上和這兩大議題也是息息相關。

當工作績效無法用工時來衡量時
「在家工作」指的正如字面上的意義,讓員工選擇工作的場所是在自己的家中,或者是不特定他自己的偏好的場所來工作,而非傳統上我們所習慣、認知的在辦公室中工作。當然,正如Mr. Saturday在該文中提到的,一般公司不會採用這種工作模式的原因之一,是因為這樣不容易衡量員工在工作上的產出。傳統上,以「工時」做為衡量員工是否履行對公司應盡的工作責任,是一個容易計算、而且符合常識的方式。

不過,對於勞力密集的工作來說,這樣衡量或許一方面容易、另一方面也相當合情合理。但對於腦力密集的工作來說,工時很多時候沒有辦法提供任何保證,它頂多只能讓雇主更為心安。而軟體開發、尤其是程式設計,更是這種類型工作的代表。在 Mr. Saturday 的文章中,以及過去相關主題的文章中,其實都探討過這樣的情況。

對程式設計來說,你其實沒有辦法依據工時來評估程式設計者的績效,所以,事實上,你還是會發展出其他的方法來評估程式設計者的績效。假設,你已經發展出一套不錯的方法,能夠評估程式設計者的績效,你就可以不用倚靠工時這個不牢靠的方式,那麼,事實上,無論程式設計者究竟在何處工作,你都能夠評估他的工作績效。這麼一來,是否「在家工作」根本就不是重點了。

在前一陣子傳出了一則消息(真偽待證實),就是美國一家軟體公司的程式設計師,將自己的工作外包給中國瀋陽的承包商,而且只付出自己薪水的五分之一,就可以完成公司交代給他的工作。而且,在公司人力資源部門的績效評估報告中,還有著非常優良的記錄。

而這位設計師,除了他自身的正職工作之外,還承包了一些其他公司的工作,同樣也是將這些工作轉包到中國去。而這位程式設計師,到公司上班時就是專心的上網看影片、拍賣、社群網站、寫寫Email。

若不是這家公司的VPN記錄出現來自中國的連線位址,引發調查,這才使他東窗事發,這位程式設計師,恐怕至今還是公司所認知的優良員工。即使這故事不是真的,我也相信這可能在真實世界中發生。

當然,故事中的主角的確是完成了他的工作,而且他也真的展示出他在外包商管理的才能。對公司而言,也覺得得到了應有的績效。不過,這個故事告訴我們,即使你的程式設計師天天都到公司準時上班,你也不見得能掌握他究竟在做些什麼事,畢竟你不會整天盯著他的電腦螢幕看。

不是每位程式設計者都像這個故事中主角那樣,有能力管理來自中國的外包商,不可否認地,這展現了不錯的管理能力。所以,你真正的核心問題,還是如何評估績效,而不是計較他的工時長短。「在家工作」的實際工時你無法掌握,對於可以信任的程式設計師,「在家工作」有機會提供更好的「有效工時」。

不在同一個地方工作要考量的問題︰如何協同合作?

如果說工時的管控不是個問題的話,那麼其實剩下的核心問題,有一個很關鍵的,就是怎麼讓遠距工作的程式設計師之間,彼此能夠順暢的協同合作。

本文閱讀至此,或許會給讀者一個錯覺,覺得好像是在主張不要在辦公室工作。事實上不然,很多人需要一個辦公室做為工作的場域,是因為辦公室提供更多工作的便利性。辦公室可以提供免費的工作設施,像是空調、網路、列印設備、快速對工作用伺服器的存取、等等。而且,最重要的是,辦公室讓你和你工作相關的團隊成員,能夠面對面的一起溝通。撇開辦公室做為管制員工出席的作用,讓團隊成員得以面對面的溝通,可以說是辦公室很重要的作用了。

有些人喜歡公私分明,在私人的住所就盡量不工作,這挺不賴的。對我來說,我喜歡在辦公室工作,是因為辦公室提供的機能比較好,而且辦公室離家裡的距離很近,不會耗去太多往返交通的時間。在我認識的朋友中,也有人完全沒有固定辦公室的開發團隊,他們大多在家或甚至在自己喜歡的咖啡店工作,一樣有很好的工作產出。

我們的開發團隊分散在多個辦公室,但成員可能在一起合作同一個工作,所以我們需要建立好一點的協同工作模式。允許在家工作,其實就和遠距一起協同合作的意思差不多。而像團隊分散在多處,必須遠距協同合作的情況,除了管控工時之外,其實也和在家工作的意思沒有什麼兩樣。所面對的核心議題,就是如何讓遠距的程式設計師之間,彼此能夠良好地協同合作。

作好溝通是重點
在辦公室工作,提供的就是最好的溝通機制,因為人和人之間可以面對面討論。一來,直接說話是最快的,二來,需要馬上在白板上畫圖示意,也很方便。無論是任何遠距溝通軟體發展得再好,終究和面對面溝通有些差距,尤其是人的表情、情緒。不過,吊詭的是,有些開發團隊的成員,即使位在同一間辦公室裡,也鮮少在面對面溝通。

溝通是個好議題。對程式設計者的「溝通」,不意謂著,你可以隨時打斷程式設計者的工作,然後硬要跟他說些什麼。這當然是一種嚴重的干擾,而且中斷對工作效率會帶來很大的傷害。不論是在家工作、遠距工作、或甚至是同一間辦公室裡工作,開發團隊都需要建立起好的溝通文化及方法。

溝通的文化很重要,即使都身在同一間辦公室內工作,也有人是不把溝通做好的,這種情況比遠距工作或在家工作還要糟糕。鼓勵大家做良性溝通,選擇在適當的時間點、用適當的方式、溝通適當的議題。

程式設計者除了埋頭在自身的設計工作之外,其實無時無刻都有做溝通的需要。你會通過電子郵件、即時傳訊軟體、通話軟體或電話來和你的同事溝通。除此之外,你也會利用一些像是議題追蹤的系統,做特定目的、特定形式的溝通。

每種溝通的方式,強度不同,對其他人造成的干擾也不同。像電子郵件,你沒有辦法確定對方何時會讀完,也無法確定對方何時會回覆。而像電話就很具強迫性了,桌上的電話鈴鈴作響時,絕大多數人都會被強迫的拿起話筒與對方通話。而像開會,時間固定、地點固定,所有人必須在同一時間移動到同一地點,所以強迫性質更高。降低對其他人的干擾當然很重要,因此,才需要依據真實的需求慎選溝通的方式。

可以使用電子郵件的事情,就不需要打電話。可以打電話解決的,就不要硬安排個會議。但是, 利用電話來討論會更有效率時,也就不要只是使用電子郵件,因為這樣反而會失去時效。有時面對面開會更有效率,就應該約個會議來討論。

對軟體開發工作來說,工作地點不是最大的問題,工時也不是。

為了得到更多的有效工時,在工作地點上保留一點彈性是會得到好處的。不過,也因此團隊的成員可能會同時在多個地點、甚至不完全在同一時段工作。因此,建立良性有效率的溝通文化及方式反而成為重點所在。事實上,即使都在同一個工作地點,這也一樣是重點。

專欄作者

熱門新聞

Advertisement