10/27/2015

委外(outsourcing)軟體開發的三個要點



委外開發outsourcing行之有年,它只是另一種形式的分工方式。

然而,委外的軟體開發,卻是困難異常。即便是簡單的網站設計,不複雜的智慧手機程式(app),在缺乏正確的溝通認知情況下,還是有可能以意想不到的結果。如果你的專案經理,或者是負責與外包商溝通的人,以下是你最少需要知道的要點。對於不了解的事情,有些時候可以用嘗試的方式學習經驗,但很多時候最好還是參考一下過來人的經驗。

這三個要點,是在已經透過正確的方法選到正確的廠商的前提下。如果還不知道怎麼選擇正確廠商,可參見這裡。


(1) 知道這次外包想要的結果是要什麼


作為專案負責人,你需要知道期待的外包的結果。

假設所有的軟體開發,都是外包商進行,那表示你必須期待外包商有負責管理整件事情

所謂的整件事情,是從設計,細部設計,定義管理的方法(例如Scrum, agile),程式碼版本管理(例如github),測試,檢查驗收。換言之,雖然你不負責整件事情,但是你卻要比外包商更了解,這整件事情要怎麼處理。這樣你才能有效控制外包結果。

當然如果外包的範圍很小,例如繪製android logo,那麼你只要確定外包廠商知道android logo有哪些尺寸與標準,約定好時間,就可以等著看結果。

如果外包的範圍中等,例如處理前端網頁javascript以及html部分,但是需要存取後端的API,而後端API是核心任務,因此是內部自行開發。那麼就要界定清楚範圍,你需要能完整提供API文件,不然至少要有API簡單的訓練課程,以及範例程式。由於開發活動必須有一致性,因此還得提供廠商版本控制系統的權限(例如gitbucket),另外還需要控制開發週期,以及哪些使用者功能(user story)需要先完成,哪些後完成。換言之,如果外包範圍是軟體開發的一部分,那有可能關鍵的結果在於某段程式的正確產出。

(2) 清楚說明規格


在台灣對規格書(spec)其實不那麼重視。尤其是所謂的系統整合商的IT專案。因為有太多情況,規格和最後實際的結果已經截然不同,而規格書很有可能是一邊開發,一邊才跟著寫。根本不切實際,最後都淪為最菜的SA所負責最無聊的工作。

清楚說明規格並不代表要有250頁這麼厚的規格書。而是要有在做重要的事情上,有不可否定的結果。舉例來說,google.com的搜尋畫面,其實也有很多功能,但是必有一個規格是:一個讓人輸入資訊的欄位,並且按下enter之後會直接進行搜尋。某些SA/PM在撰寫規格時會無窮盡的增列細節,例如欄位是要多寬,最多輸入多少字元,反斜線要不要處理,諸如此類。當然重要的規格細節要詳述,但是不能無止盡的窮數之。

對於規格書沒有基本認知的話,可以先參考這裏

已經有很多撰寫規格書的經驗,但自覺從來沒寫對的話,可以參考這裏。這個spec只有短短20頁,去頭去尾真正的spec可能只有17頁,他沒有很多細節,也沒有用很複雜的UML圖。而且spec徹底與實作方式無關。

(3) 確定對方理解什麼


這點聽起來很不可思議。但是在現實,實在常常發生。那就是即便語言上沒有問題,在溝通認知上,還是有極大的差距。有些幫助有效會議的技巧,通常會提到,會議結束的時候,請最重要的幾個人,用很短的時間,簡單說明會議之後他要去做的事情。如果在一個常常進行無聊會議的組織裡面,可能會有很戲劇性,很荒謬的效果。(請參見"開會開到死")

對委外開發而言,很多時候不是面對面的會議,再加上語言的不同,更容易產生誤會。執行者(就是外包商負責人)必須要有創意的使用結構性合理的方式,來讓彼此理解工作內容。

首先,使用文件是最合理的。尤其是對跨國廠商而言。而文件的長短與格式並不是重點,重點在於有沒有表達你要傳達的資訊。

更有甚者,文件常常有先後次序,你需要知道外包商到底有沒有看那份最重要的文件。

一個簡單的作法是:在最重要的文件(例如規格書Spec)的莫約3/4處,夾一段文字,說如果你看到這份文字,要立即email給某人,並且夾帶一段簡單的"口令",因為這可以證明他有認真看過,如果在X月X日前,沒有回覆給某人,你會假設他無法完成第一個milestone。

這個作法不管在第一次有沒有達到目的,接下來外包商自然就自動被訓練為,你的重要文件,他一定會看。

管理委外廠商有很多創意的作法。可惜的是,這些作法必須根據靠經驗和實際情況而改變與適應。很難光是用教學的方式就體會。





參考:

* 虛擬助理




10/26/2015

務實專案管理(FLA)的三個重點...(從team leader的角度)

軟體工程與專案管理的方法論以及參考書籍非常多,無論是最傳統的PMP,到近幾年強調的Agile, Extreme programming,以及創新公司最常用的Scrum,這些方法都不外乎希望能盡可能圓滿達成專案目標。

而越後面產生的方法論,似乎都盡量想要化繁為簡,貼近事實,以便彈性的因應改變。例如Scrum就是將需求變更控制在sprint開始或結束,並且讓每個短暫的sprint(3-5週)可以專心於現在的計劃,改變於是乎就受到控制。

專案經理的角色和技術領導相輔相成,只是目的截然不同。專案經理最終的目的其實是”管理利害關係人的期望” (Manage stakeholder expectations)。實務上,這個目的甚至比專案在時間成本內達成來的重要。

技術領導雖然不是專案經理,但實務上,技術領導的小團隊是專案執行的最適切單位,因而技術團隊領導者也是反映真實狀況的適切人選。

技術領導當然不見得一定需要知道專案管理的細節,然而在軟體專案的執行中,技術領導者瞭解得越多,越能讓專案有機會成功。瞭解得越少,越容易受困於專案管理的本身。

(參考案例一)

專案經理(PM)在專案一開始就召集所有分析師(兼為小組長)進行傳統的WBS製作,完成了一份洋洋灑灑專案管理文件。在缺乏專案管理的知識下,三個月後在專案中期,某小組長發現有很多事情其實未列在WBS中,他就很掙扎要照常繼續回報列出來的項目?還是要重新修改WBS?

(1) 萬事起頭難:起初,專案計劃


作計劃這件事很重要,相關的名言也很多:
  • 廟算者勝,得算多也;未戰而廟算不勝者,得算少也;多算勝,少算不勝,而況於無算乎。
  • A goal without a plan is just a wish
  • Fail to plan, plan to fail
  • Plans are of little importance, but planning is essential.
  • You can't predict the future, but you can plan for it
  • The general who loses a battle makes but few calculations beforehand
  • Planning is everything. Plans are nothing!


任何專案管理方法論都會涵蓋”做計畫”(planning)這件事情,原因也很簡單因為這實在太重要。可是也太容易被忽略誤解或輕視

無論任務範圍大小,多寡,範圍,一個適切的”文字化計劃”對於軟體專案絕對重要!特別是有任務是整個團隊曾經執行過類似的,”原則上”只要根據以前的經驗”照著作”就可以達成,這種特別容易被資深員工忽略的任務特別容易出錯,更何況”照著作”等於是打算重覆過去的經驗,而不是打一開始就意圖要精進。

忽略:"現在時間很急迫,不趕快做來不急,就不先搞計劃了"

越是急迫的事情越不能出錯,減少出錯的最基本方式就是先行計劃。更重要的是簡單的思考整件事情,並且寫下來,適事情大小,不但不花太多時間,而且最能降低的風險以及未來避免浪費時間來修正錯誤。

誤解:"作計劃要花很多時間"

一個複雜的任務絕對需要花時間計劃。但是一個簡單的任務,可能只需要花15分鐘把心裡想做的事情簡單地寫下來。這個過程就可能會讓團隊避免發生前述案例中無聊的錯誤和不必要的問題。

輕視:"作計劃是給老闆看的,反正事情都不是照計劃進行,計劃對我們沒有用"

這種想法跟不打算作計劃完全一樣。等同於靠運氣跟個人當時心情來決定最後任務的好壞。

做計畫並非僵化,計劃的本身形式也不拘,一個簡單的心智圖(mindmap)就可以整理思緒 揭露許多未來的可能性。

下圖是本文撰寫的第一個計畫,可以和最後的結果比較看看,雖然粗糙,而且之後順序以及結構也有很大的改變,但是計劃的本身卻是很簡單可以引領思考。


 

(參考案例二):

有個售前支援團隊,與各國業務長久一起合作習慣了,常常四處進行軟體產品展示任務。有一天得到通知要去東南亞某國家進行安裝測試,大家都以為當地業務會大致把前置作業搞定,因此就迅速訂機票出發。到現場才發現,客戶負責的技術人員當天根本就沒來上班!整個作業只好延宕一天。



任務分配

團隊合作必然涵蓋工作分配。在資訊科技領域中,分配的方式也有很多種。而對於一個團隊的技術領導者而言。當已經對自己以及團隊的能力有基礎認知之後,有效的工作分配是一開始就要先計劃的事情之一。

技術領導者必然是已經瞭解自己也大致瞭解團隊能力,同時也瞭解任務內容之後,才能進行計畫任務分配。任務分配可以是團隊所有人一起討論,也可以技術領導者自行決定,但無論如何一定要先考慮團隊成員能力彼此之間的比較利益。

比較利益法則最早出現在經濟學鼻祖大作國富論的第一章(亞當斯密,1776)。衍生的,基本概念很簡單,只要有效分配,任何情況下都可以達到1+1>2的效果,即便專案成員某些人明顯地比其他人能力還差。

(2) 專案專案執行中面臨的問題

專案執行面臨的問題 - 人的偏誤


人類判斷事情會先採用快速直覺,這乃是上百萬年來的演化,無論是視覺上還是意識上皆是如此。以下簡單列出常見的人類認知偏誤:


歸因謬誤(Attribution Biases): 

解釋別人的事情時,會傾向別人的內在因素,解釋自己的事情時,會傾向外在因素。例如:會議有別人遲到,心裡會想這是這個人紀律問題,沒志力起床。自己遲到,會解釋是因為交通問題,昨天事情太多太晚睡。


錨定效應(Anchoring):

有參考點或第一次接受的訊息時,會過度偏重參考點。例如某地區最近賣出的房價是一坪100萬,則臨近的房子無論好壞,預售價格為一坪50萬時就會被認為"很便宜",即便一坪50萬對絕大部分的受薪階級來說還是貴得要命。


沈沒成本(Sunk Cost):

過去已經付出去的,不管未來的選項如何,其成本都不會變。也就是說不同的選項無關過去的成本,只關係未來。例如當已經花錢買了張電影票,但是臨時聽說同一時間有某明星簽名活動。這時候有兩個選項,一個是繼續看電影,另一個是去參加喜歡的明星的簽名活動。無論是哪個選項,其該電影院票價成本都是存在,因為錢已經花下去。換言之,要考慮的只是,現在看這個電影是不是比得到喜歡明星的簽名重要,而不是考慮如果去參加簽名活動會損失電影票的錢。


過度自信(Over confidence):

人類對於評估自己的能力時都會過度自信。例如,在一個50個人班級裡面,所有人自我評估考試成績的"名次平均"在技術上說應該是25,但是通常自評估的平均值都會遠小於25。也就是大部分的人都會高估自己的能力。


羊群效應(Herding Effect):

在團體中,個別成員會不自覺跟著團體中心行動。例如,股票市場中,市場最常發生一直買或者一直賣的情況。而如果是在競爭市場,有特別突出的公司時,其他公司會學習特別突出的公司的行動。




專案執行面臨的問題 - 進度(時間進程 vs 距離進程)

在專案或者任務執行之中,技術領導者多少需要有效評估跟瞭解現況。而目前進度是最重要的"現況"。在比較嚴謹的專案管理領域裡面,有許多評量進展的指標,例如已投入成本和預計完成所需的成本比例(一般PMP常用方式)然而,在資訊科技領域中,比較適當的衡量應該還是以時間進度能準確反應事實。

所謂時間進度指的是,還有多少時間可以達到目的。舉例來說假設某人要去日本玩,從家裡到機場需要一小時,而飛行時間為兩小時,抵達機場之後到旅館需要一小時。因此當我們詢問他的進度時,當他的飛機抵達日本的當下,他會回報進度完成75%,尚有25%未完成。

然而,如果是距離進程,也就是以還有多少距離可抵達就有很大的不同。舉例來說,家裡到機場僅有50km,飛機實際飛行距離為1000km,機場到旅館假設有50km,所以當他的飛機抵達日本的當下,他會回報進度完成96%!只有2%未完成。





單以事實來看,這兩者都是事實,可是呈現於資訊科技控制進度與瞭解現況來說,恐怕是以時間進度比較能夠掌握。畢竟,當一個團隊成員說有件事情只剩5%完成,而且你知道他在這事情上做了3小時的時候,在沒特別問清楚的情況下,你大概直覺上認為只需要幾分鐘完成,而非剩下的5%距離,需要在1小時完成。


不過專案進程的事實搜集,有太多太多慘痛的例子是在混用時間進程和距離進程的估計。事實上,由於人類天生的偏誤,在距離很短的時候,會不自覺採用距離進程來回報狀態。這時候技術領導有意識的取得"時間事實"才最重要。

專案執行面臨的問題 - 技術問題

技術問題層出不窮,不過大部份專案的技術問題,通常可以解決。然而,技術問題通常也很難概化討論之,他和專案的特性以及屬性有關。

不過就軟體專案而言,有個兩個看似有些衝突的基本概念一定要知道:


(1) 每個人的技術能力與技術方面的產出差距可以達到10倍以上。而每個組織的能力與技術產出,也有近十倍以上的差距 


(2) Scrum的方法論裡面,假定短時間每個人的績效不會成長,也不會改變

我們以後會再來討論這兩點。不過建議先對agile, scrum有初步研究。


(3) 專案的結束:好的結尾比好的開始更難

第三個重點,專案的結束。很多大公司,無疾而終的專案很多,軟體專案通常無論如何都還是會結束,只是結束的方式好不好而已。

礙於篇幅,我們在日後的文章再來討論專案的結束


沈思:

* 為什麼這次有些項目會在日後再討論,沒辦法先提示一些重點嗎?

* 對於務實的專案管理方式的諮詢服務,請與我們聯繫


10/24/2015

使用虛擬助理的三個要點



僱用兼職的國外虛擬助理(Virtual Assistant),可以大幅節省許多庶務時間。再往下看之前,請先參考關於這篇虛擬助理如何幫助創新公司

如果你對虛擬助理已有基本認識,想要開始利用虛擬助理節省你的時間,這裡有幾個要點請務必留意。畢竟金錢損失是小,浪費寶貴時間事大。



(1) 明確定義工作範圍


假如你打算把虛擬助理當秘書用,要請記得他不是5x8的工作小時,也無法幫你泡咖啡,影印東西。

你必須要明確的定義工作範圍,如果一開始你無法定義明確的工作範圍,可以先與虛擬助理討論先試著僱用10小時看看(大約40-80美金),而第一個小時就請他列出,他最能做的事情。在最下方的"沈思"有我的印度虛擬助理所列的事項。

當然如果採用虛擬助理公司,那該公司本身就有可以明確定義的工作範圍與事項。

而接下來的重點就是交代工作也要簡單,清楚。老實說,其實你越能簡單清楚的交代工作,表示你對自己或自己的公司情況越清楚。

一個不好的範例:Please do some study on how can I buy things from taobao。 - 如果你只email給助理這句話,然後他就埋頭開始工作,那麼可以100%肯定,絕對不會達到你要的結果。

這個任務有太多基本事情沒交代清楚:沒說明什麼時候要完成,沒說明要完成什麼(是一份投影片?還是找到一個help文件?)。沒說明可以花多少時間,請要記得助理是算時薪。

另外,即便基本事情交代清楚,如果他不知道什麼是taobao掏寶,他還是得先花一點時間研究一件其實你講1分鐘他就會了解的事情。

所以基本上至少要做到這樣:

Please do some study on how can I buy things from taobao。Instructions:
(a) The delivery should be a 3-4 page slides。
(b) should deliver before Oct/25 10am GMT+8
(c) estimation of utilised time should be 1 hour. If spend more than 1.5 hours just stop and send me whatever you have on hand
(d) taobao is a chinese online shop, pretty similar with amazon in US but for some political reason, it is not easy for a taiwanese to buy things on taobao. However, it is still possible. I want to simple know how.


(2) 慎選

虛擬助理種類大致分成:虛擬助理公司,個體戶兩種。要選擇虛擬助理,先要了解這者的差別。然後,在選擇區域。這在虛擬助理如何幫助創新公司都有詳細的說明。

然而,在還沒開始之前,沒人可以確定你找到一個好助理,所以試用是非常重要。大部份的公司都可以提供一小段試用期間(可能要付費,可能不用付費),然而個體戶大概就沒辦法,所以可以先與個體戶討論一個5-10小時的試用,不管5-10小時結果如何,你一定會付給他15-30美金,根據5-10小時之後的結果,再來談合作。這樣的模式通常比較能選到不意外的結果。

試用的時候也有很多祕訣。礙於篇幅,有興趣的可以email與我們聯繫取得免費咨詢。對了,email需要寫英文,因為是我們公司的虛擬助理協助處理email:)

(3) 檢視成果

檢視成果的本身,必須要是簡單的,如果一份工作你自己可以花2小時做完,結果你讓助理幫你進行,之後你卻需要花2小時來檢查或修正結果,那其實也沒啥太大意義。

根據我們實際的經驗,兩個每週工作10小時的助理,似乎比一個每週工作20小時的助理來得有效。主要的原因在於,可以讓他們互相監督,互相備份,互相檢查對方的內容。舉例來說,如果其中一個助理負責每週定期blog文章,那他完成的條件就是請另一個助理來檢查,當檢查通過就算完成,理論上,你就少了很多檢閱的工作。




沈思:

  •   網路上有不少虛擬助理的建議,然而或許因為語言的距離,導致台灣使用的人很少。這一點有機會被打破嗎?
  •  我的印度助理所列出的她可以工作事項:


1. Email Management/Filtering
2. Setting up Autoresponders (Aweber, Mailchimp)
3. Booking appointments with clients
4. Following up with clients/customers (sending thank you and other reminder emails)
5. Receptionist duties (answering occasional calls)
6. Calendar Management
7. File Management (organizing files using Dropbox etc)
8. Database building (eg. updating email or contact lists on your CRM)
9. Research on certain topics for blogposts, newsletters or others
10. Personal errands (purchasing gifts for loved ones / family members online)
11. Hotel and Flight Booking
12. Transcription (transcribing voicemail, video or audio, podcasts etc.)
13. Taking down minutes of meetings
14. Creating basic reports (reports on weekly tasks, deliverables, sales)
15. Preparing Slideshows (Powerpoint Presentations)
16. Liaison between you and other team members
17. Recruitment (source for other team members like writers or graphic artists) 18. Set-up Social Media Accounts (Facebook, Twitter, LinkedIn, Youtube)
19. Manage and update Social Media Accounts
20. Manage your Blog (Basic WordPress Skills)
21. Publish posts on your Blog (content you provided)
22. Filter and reply to comments on your blog
23. Answering support tickets (with the use of Zendesk)
24. Blog commenting (to increase links to your site)


25. Participating in discussion forums or message boards (more promotion!)

10/23/2015

職業生涯的突破(基於務實的三步驟)


大部分技術人員,除了運氣很好之外,工作了幾年之後,幾乎都一定會遇到某個的瓶頸。

瓶頸可能是:無聊,無法升遷,無法勝任,人際關係,受外界誘惑,想要創業,太忙碌沒有自己的生活。

人總是有太多可以不滿的地方。但是光是在嘴巴抱怨,在心理咬牙,其實一點也沒用。

若真覺得有瓶頸,總是要有方式來突破。而我可以保證,任何技術專長的人,一定可以靠以下三個作法找出突破點。

(1) 了解事實


第一步驟,先取得自己的事實。這裡的事實是關於你的背景,你現在的工作的所有事實。不多不少的事實。Nothing more。

你要先了解事實,而不是你的想法。因為事實短時間不會改變,而想法常常變來變去。

例如:你是研究所畢業,現在約有800K存款,你現在月薪70K是事實,每天9am上班7pm下班是事實,你在公司目前做的事情是事實,這個公司目前年均毛利約15%,你過去6個月不曾去其他公司面試是事實,你有4個工作經驗是事實,你最後待的公司已經做了2年是事實,你沒有管理經驗是事實,你最後一次英文toeic成績是550分是事實,你老闆最後一次給你考績為B是事實,你的團隊有8個人是事實,你是其中第3資深也是事實,創業失敗率很高是事實。...諸如此類請列出重要的事實。

你想要東西和你的想法,不是不重要,而是你「暫且」不考慮。這點很難,但是很重要。記住,你的想法很重要,但是現在暫時先不要理會你自己的想法

你的想法,例如:外面有更多好機會,每天上班很累,這公司很爛,薪水太少,履歷表足夠讓你找更好的工作,你在團隊里很重要但是老闆不重視,其實英文也變好了阿但是沒出差機會,對公司忠誠度很高,創業好像很不錯。...諸如此類是你的想法,有可能是事實,但也不見得是事實。


(2) 取得選擇權利


當你真正了解事實,才能執行第二步驟。

第二步驟是根據這些事實,取得選擇權,在這過程中還可以蒐集更多事實。例如,你可以去一些幾個公司面試,有些會給你offer,有些會拒絕你。這時候你的事實清單就可以多了一些可以的選項。

例如:
1. A公司你要求75K薪資,但是他拒絕給你offer。而對B公司,你提出71K的薪資,並取得offer。
2. 你跟天使基金談好可以取得500K初期投資。但是這個初期投資需要辭職才行。
3. 你撰寫了新的計畫,打算跟老闆提出來。
4. 如果不工作,你會去歐洲玩一個月把存款花光。

總之,以這個階段你有五個選擇,第五個選擇就是現在的狀態,什麼都不做。


(3) 選擇並且行動

第三步驟,就可以加入你個人的想法了,這五個選擇,是根據事實以及背景列出來的。而不根據你的幻想或者心情。無論如何,每一段時間(例如6個月)一定要做出現在有的選擇項目裡面的行動。

對!一定非動不可,即便是選項五,現在狀態什麼都不做也是一個你選擇的行為。做這樣的選擇,讓你在事實上有充分認知,如此心態上的結果就會截然不同,至少你一定會減少無謂的抱怨,而在未來的一段時間,將心思投住在你的選擇上。



(如果你覺得你的現況無法用這三個方法來突破,請聯繫我們:pm@mail.talent-service.com 。)



參考



新創事業 利用免費資源的三個方向


新創事業,特別是網路與軟體相關的事業,事實上可取得很多極端便宜,甚至免費的資源。有些資源眾所皆知(例如gmail.com),有些資源在台灣比較少被人知道(例如mail.com, yandex.com, ),而有些資源則是要有點想像力才能產生效果(例如sohelpful.me, shadow-warrior.space)

免費資源實在太多,而且並不是免費就一定好用。透過利用資源,節省創業夥伴時間,將時間以及有限資源投入在真正核心的工作,才比較有機會成功。

利用免費資源主要有三個方向:

(1) 日常活動(聯繫,記錄,管理等等)

只要有超過3個人,日常活動就免不了聯繫,記錄,管理等等。任何組織,只要還活著就有這類型的需求,如果想要無痛的擴張業務,隨著成長應該盡可能把日常活動簡單。

換言之,如果有件日常活動是可以委外,就不應該自己動手。如果可以自動化,就不應該委外(例如自動化回信),如果可以不做,就不要自動化它。整體概念是,不應該把心思花在日常活動上,但是又必須得讓日常活動做的快速,簡單,有效。而不會因為組織成長產生無謂的自我官僚。

email一定是其中一環,現在不太可能有新創公司架設自己的email server,通常是利用現有服務。常見的有gmail,yahoo mail,hotmail,zoho。在台灣也曾經看過仍然使用msXX.hinet.net這種極端過時email信箱,實在令人驚訝。

原則上,最好是花一點點小時間,設定好email domain  name,至少在對外聯繫上,會讓人知道這個公司已經嚴肅的開始進行業務。舉例來說如果一個email是 alex.twang123@gmail.com, 和另一個email是director@consult.com.tw  這兩個比起來,一定是後者會讓人覺得這是一個顧問公司的email,而前者只是某個人的。googleapp(每個月付5美金的版本)可以設定domain name。如果要免費的,可以考慮zoho。

擴展國外業務,用line鐵定是不行,所以應該最好要有skype,skype現在不只可以透過網路撥電話,現在還可以接電話,轉接電話,對於有使用虛擬助理,有跨國業務的新創公司來說是幾乎不可或缺。

virtual assistant 虛擬助理,需要一點費用,但是管理得當的話效果非常好。請參閱這篇

記帳。老實說,絕大部份有創意的人,都會視記帳為一個無聊要死的日常活動,偏偏一個新創企業,不太可能雇用全職的會計助理,因而最好找一個簡單好用,waveapps是一個好選擇,由於他可以跟paypal結合,如果你的收費是從paypal,那就非常方便。

(2) 業務推展

幾乎所有的創新事業,都需要某種程度的行銷推廣業務。當然最好的推廣方式,是因為能力,品質,聚焦重點太過特別,所以完全不需要傳統的行銷方式,就可以讓客戶自行推廣自己的產品。但基本上,這種情況很罕見。所以大部份的情況,都需要某種程度的行銷與業務推展。

SEO(Search Engine Optimization)是一個基本做法,如果創新事業專注於國際化市場,也就是英文內容,則SEO其實極端成熟,甚至有點過熟。可以參見seoclerks,bestseoclerks,fiverr之類。SEO已經變成極端的殺價競爭市場,因而在對大眾行銷上,其實要做的基本的廣告是很簡單,但是要有很好的效果當然永遠很難。

當然一般說,facebook, twitter以及linkedin這類型社群工具,通常多少也會花一點時間,這些曝光度不見得有很大的功用,所以不見得一定要有,或者選擇一個比較適合的。經營社群需要時間,這時候虛擬助理(Virtual Assistant)就一定可以幫很大的忙。

傳統的email marketing已經是趨近成熟的市場,因此價格也趨近成熟,蠻難真的找到完全免費的服務,不過mailchimp.com 和 klaviyo.com的價格非常便宜,並且其穩定性也受到很大的肯定(每月大約30美金)

某一些創新公司也可以協助其他創新公司進行業務推廣,例如sohelpful.me,它用了很有創意的方式,就是讓需要客戶的創業家在它的網站上提供免費電話諮詢服務,創業家使用它的服務是要收費(大約每月30美金),但是需要協助的人卻是免費。這種反向的行銷,讓創業家容易取得真正使用者,而使用者也常能獲得免費利益。

(3) 與核心工作直接相關

這比較直覺,如果是工程師為主體的新創公司,通常早就知道有許許多多免費的管道。例如AWS,到目前為止,它可以讓任何人免費跑一個小VM,附帶一些S3空間以及bigtable的存取。這些雖然在大規模的消費者服務,大概是不夠用,不過開發用的話應該綽綽有餘。

在程式碼以及追蹤文件變化上,最常用的還是github以及gitbucket,不過因為安全性以及對外合作,通常gitbucket還是比較優先考慮,他的免費版本仍有private repository。

最後,核心工作相關,但是又不是這麼核心的工作,還是可以考慮找外包的工程師。目前,小型外包的市場相當蓬勃,雖然素質參差不齊,但是還是有很大機會找到適合的工程師。可以先考慮upwork(之前的odesk合併elance),或者guru。

至於如何可以找到最適合的外包開發者,可參考這裡





沈思 

 * 任何組織都是從小組織開始,而任何小組織都不可能什麼事情全部自己搞。

 * 台灣也有很多善心人士固定介紹免費資源:free.com.tw

 * 這個blog強調片面資訊的危害。這篇是不是也是一樣?這三個方向如果對你沒幫助,還請與我們聯繫





10/22/2015

技術領導者team leader 提升能力的三個方向




作為技術領導者,當然在技術力以及領導力上都能必須足以帶領團隊。實際上,能力只有下限沒有上限。因此有意識的提升自我能力必然是作為技術領導者的重要條件。

技術領導者(基本定義請參考這裡)自我訓練,提升能力的三個主要方向參考如下:

(1) 提升領導力


領導能力,乃是帶領組織的能力,與管理不同的是領導力主要產生於個人的能力以及影響力而非自己的組織地位。簡單地說,領導是讓團體一起朝著正確的方向,作出正確的事情,達到預定的成效。領導能力是抽象而廣泛的,但是產生的結果卻是清楚可見的事實。例如:溝通能力是領導者須具備的能力的一環,在某次開會之後,當詢問5個與會人員,開會的結論如果有5種不同的說法,那顯而易見的這次會議的領導者有很大的問題。

對於技術領導者而言,這樣的領導力是可以透過自我訓練以及培養不斷地提升。然而,更重要的是技術能力以及領導能力需要同時,有意識的自我提升,偏頗與缺一不可。

外商常用的360度回餽(http://en.wikipedia.org/wiki/360-degree_feedback) 其中一項常見問題就是”利用自己的影響力,而非職位來協調同仁完成任務“,誠實的根據過去自己的經驗,來回答這些衍生問題可以簡單探知自己的領導力。

誠實瞭解自己是提升的第一步。接下來根據自己缺乏的事情,自我提出學習計劃。以上看起來簡單,但是做起來極其困難。過分自信(參見偏誤)是人的主要認知偏誤之一,且人類傾向繼續做自己專長的事情,要移出舒適圈難上加難。


有幾個簡單的方式可以參考:

  • 閱讀
不僅只是閱讀企管類書籍,而是廣泛而長期的閱讀各類書籍。廣泛而有系統的閱讀,會讓思考全面,而養成長期閱讀習慣大部份好領導者的少數共同特質。

如果對閱讀沒有長期習慣的,建議先讀"How to read a book"。

關於資訊科技的市場以及分工,不免得先對經濟學有所瞭解,可以先看鼻祖書The Wealth of Nations(國富論)然後市面上有很多科普叢書,都能引人入勝。例如蘋果橘子經濟學。

小說類型可以考慮作者已經死很久的,而且篇幅不太大的開始,例如聊齋誌異,雙城記,基督山恩仇錄。近期可能還是稍有名氣作家,例如金庸武俠,村上春樹的小說系列,作為開始比較容易。

至於混合歷史知識和想像的書籍,像是丈量世界,哥倫布行動,萬曆十五年都是開拓視野的好開始。

當然在此沒有列出資訊科技書(例如Design Pattern)倒不是因為不重要,而是因為在此假設技術領導者已經有這方面的學習習慣。自然無需贅述。

閱讀清單(非技術類型):
- 雙城記
- 基督山恩仇錄
- 拷貝一瞬間
- 蘋果橘子經濟學
- 黑天鵝效應
- How To Read a Book
- 國富論 (The Wealth of Nations)
- 丈量世界
- 哥倫布行動
- 萬曆十五年
- 水滸傳
- 不花錢讀名校MBA
- 企業巫醫
- 孫子兵法
- 科技奴隸

(這個清單跟技術領導力沒有直接關係,但是從旁的間接關係不少,重點是要有自己的閱讀清單)


  • 記錄:

        記錄或者筆記,對於工作的執行以及回顧來說很有價值。記錄工作以及重要事項不見得會花很多時間。但是對於追溯自己的思緒有諸多好處。許多管理叢書強調筆記的各類祕技,但總歸一句話,有用的筆記自然有用,沒用的筆記就不會有用。對於強調隨時存取且無限量的"外部記憶體需求"的技術狂熱者而言,雲端服務似乎是某種終極筆記方式。

但請注意:首先,書寫的手感是無法用打字取代;其二,對長期保存而言,目前資訊科技尚未有可確保穿越時間的做法  (例如,1995年如果你有一張3.5吋軟碟片,和一本手寫的日記,在2015年的現在,哪一個可以正確無誤看到其內容?)

  • 練習:
領導能力跟很多可以學習的東西一樣,需要勤加練習。參加領導訓練課程就跟打籃球一樣,看一萬場NBA球賽,不如下場打一次。但是,要練習領導能力並沒有練習寫程式這麼容易。以下做法提供技術領導者參考:

首先,只要在團隊中,就有機會主動帶領"事情的發生",事情無論大小,只要還沒發生就值得主動組織人力執行。

其次,回顧過去的成功與失敗經驗,也是練習的好方式。要注意的是因為自己是自己的練習對象。


(2) 提升技術力

資訊科技的技術能力指的是對程式網路演算法作業系統協定軟體工具等等的瞭解以及應用能力。對於資訊科技瞭解以及能運用的範圍越深越廣,大致表示技術能力越好。

軟體工程師要評估自己最簡單的方式是先由程式語言能力開始。如果你自認為熟悉java那就從上網找SCJP相關測驗,在線上誠實的瞭解自己到底對java了。非程式設計師類型的資訊科技工作,例如DBA,一定也有相關的事實評估方式。自我評估重點在于自我誠實的瞭解。

只要能認清事實,技術能力培養並不困難。有簡短目標的實際練習,就是個簡單易懂的式。例如,雖然很熟悉c與java,但是從來沒接觸過python。想要學習python就應該簡單地定出一些目標。最後一點,如果技術能力的提升目前是個困難,那必須認真思考自己目前是不是能夠擔任技術領導者。


(3) 其他能力:英文能力.專案管理

由於大部分資訊科技資訊,以英文形式為最大量。因此英文能力絕對是團隊能力評估的一環。同樣的英文能力評估也不能靠猜測跟想像,現在有太多遊學留學生,在美國一整年但英文能力卻沒有如同想像中的好。以企業而言,目前最簡單的方式仍然是以TOEIC的實際分數為準。就資訊科技商用領域,TOEIC 785分應該是所謂”無英文溝通專業問題”的最低標。

技術領導team leader在很多時候,必然要了解軟體專案進行的各種細節。實務上Scrum也假設Scrum Master就是技術領導者。

不過在這邊因篇幅關係,先省略專案管理部分,待日後的文章討論。(軟體專案管理相關文章請看此




沈思:

1. 這樣看來當技術領導好像很困難?

2. 專案管理的技術領導要怎麼做?(參考資料




關於技術領導者-team leader 的三個基本概念


資訊科技產業裡面,常有稱呼為小組長,team leader的人,通常負責帶領小團隊前進。這裏簡單說明一下技術領導者的三個基本概念:

(1) 什麼是資訊科技的技術領導

傳統組織隨著人數的增長,通常自然會產生階梯(金字塔)型的結構。然而,這類型的結構把階級當作激勵員工的方式已經不太流行,反倒是以虛擬小組形態,組合不同的小團隊來完成階段性任務,已經逐漸變成常態,特別是在資訊科技領域。

因此一個專案任務,視其大小,需要某一個人負責帶領1-7個人,完成一件任務,而這1-7人並不直接在這個負責人的管轄,也就是另有管理經理負責。這種人,在此稱呼為技術領導人(tech-lead, 小組長, scrum master…總之有零零總總的不同稱呼) ,但其定義僅如下:

                (1) 領導完成任務或部分任務

           (2) 領導1-7個人

           (3) 並非這些人的直屬上司

台灣的學生第一次有機會作為軟體專案技術領導,可能是在學校進行專案的時候。屆時,雖然教授會給予方向上的指導,但事實上是由學生完成,數個學生所組合的團隊可能有各種方式選出一個”組長”。

投入職場之後,運氣好(或者運氣不好)在兩三年內可能會負責帶數個比較新進的同事,主要目的仍是完成某任務,如果組織比較扁平實際的主管也許不會直接帶領新同事,此時,所謂的資深工程師,就很快面臨必須做一個技術領導的挑戰。並非每個人一出生就是個好領導人,但是如果沒有意識到作為技術領導的重要性,則很有可能造成三輸的局面:新人很快陣亡;主管不滿意帶人的績效;自己也不高興。而成功的帶領同仁完成任務比較可能達到三贏:新人很快能貢獻給團隊;主管的期待被滿足;更重要的是自己在技術以及領導力上有所成長。

(2) 技術領導與管理階層截然不同


作為技術領導者,因不是直接管理工程師,所以只能透過領導以及可信服的技術能力來帶領成員。因此,相較於實際管人經理有優點也有缺點:

        優點:
                * 無須擔負直接管理責任(不需要負責解雇人)
                * 不需要直接負責成員的心態問題以及生涯規劃

        缺點:
                * 無法使用職位快速以上對下的方式達成小型任務
                * 對於明顯有心態上的問題的成員無法快速汰換
                * 難以對團隊成員提供誘因


(3) 就業市場非常需要技術領導


一個好的技術領導者Team leader在就業市場上奇貨可居。


資訊科技的就業市場過去數年一直在成長,每年畢業的學生雖然眾多,可是就業市場似乎傾向於取得及時戰力。而有實質經驗的技術領導者,比主管經理的市場更大,因為主管經理不見得一定能夠帶領技術,也可能距離實務已經有一段時間,然而技術領導者需要帶領小團隊前進,正常的情況下本身就需要具備技術領先的能力。

更有甚者,現代組織都希望層級不要太多,扁平化在成熟組織幾乎是常態,People Manager - 也就是所謂帶人主管,通常直接帶領的人數會越來越多,也導致非直接帶人的技術領導,通常才是直接參與開發工作的領導者。




沈思

* 如果我已經是技術領導者,我要怎麼提升自我的能力? -> 參考這裡



10/20/2015

委外(外包)對創新公司的三個主要協助


所有網路創新公司,幾乎都不可避免利用某些廣義的委外服務。這些服務可能是免費,也可能要收費,因網際網路的快速發展,數十年前自己得動手做的事情,現在都可以找到對應的服務。

隨便舉3個例子。

email:現在幾乎很少人架設自己的mail server,而都改用gmail/zoho/godaddy等等,但先千萬不要再用msXX.hinet.net這類不能設置自己的domain name而且甚至還要錢的email服務。

server:AWS/linode/digitalocean等等都是常見的cloud server服務,讓你不用擔心server架設維護問題。

金流:以前都要自己設置刷卡,匯款等等問題,現在有paypal可供國際化付款服務。

然而,除了顯而易見的網路服務之外,在台灣似乎比較少人用軟體開發的外包服務。

例如:fiverr.com,可以協助你產生企業logo,快速設計網頁,進行SEO,測試軟體,撰寫部落格文章。upwork.com,可以找到很多軟體工程師,撰寫定義好的程式,做好網頁服務,做出facebook app,撰寫mobile app等等。

這些看似接近核心的任務,其實妥善分工,外包之後反而對自己有利。

對新創公司主要有三個協助:

(1) 時間與資源專注

新創公司最重要的資源其實不是資本,而是少數幾個夥伴在一起努力的時間。如果你要做的事特殊的big data分析演算法。你和幾個夥伴應該把時間精力集中在這個演算法上面,而使用者介面,企業logo,企業網站,介紹的blog文章統統都應該外包給其他人,只要你們能清楚定義並且審閱結果即可。

(2) 強迫模組化分工

如果一個三個人的小公司,每個人的專長都是programming,但對UI/UX都不擅長,一開始根本不應該花大錢去雇用一個frontend+UI/UX專家,而是根據自己的需要把UI/UX模組化之後外包。這樣一開始的設計就已經考慮模組化,將view確實分開之後,以後的維護,成長也都容易得多。更有甚者,所有人都還是集中心力做最專注的事情。

模組分工強迫對工作有清楚的定義。如果沒有清楚的定義模組與時間,外包的時程會越來越長,成本越加越多,最後失敗的時候還會宣稱不應該找外包來做。實際上應該是在當時沒辦法好好控制以及定義工作。參見這裡

(3) 彈性

外包可以產生組織彈性。只要不是外包的工作,就表示某個夥伴要做。而一個工作要需要進行,則大家的時間彈性就變小。例如,根據marketing的需要,一個新創公司可能得花時間維護blog文章,以及關心回應潛在客戶需求,這時候應該利用具有專業技能的Virtual Assistant,而不是讓少數夥伴花很多時間在一個一個的客戶回應上。



沈思:

1. 為什麼台灣新創公司好像很少聽過大幅利用外包資源,但是國外公司倒是很常見?溝通語言(英文)是不是一個顯著的問題?

2. 什麼是Virtual Assistant?它能幫助我們什麼?參考這篇blog




10/19/2015

精實創業之 三個精華(MVP POC Scrum)



Lean Startup 精實創業是近年常見資訊時代創業方式。他著
重於確實以及快速。確實達到目標,以及快速反應變化。參見wiki https://en.wikipedia.org/wiki/Lean_startup


當然Lean強調速度也有些反面的意見

以下是三個精實創業的精華:

(1):POC實證觀念:


精實創業最精華的地方在於POC: Proof of Concept:實證觀念。唯有你的創業想法能夠被証實可行,而且在市場上獲得證實,你的主意才有意義,缺乏實證的就把想法大幅推廣只能靠運氣。這裏,會介紹做出MVP的最務實方式。

而在Lean Startup 作法上一般分成幾個層面:
(1) MVP: 最小可用產品
(2) 持續部署
(3) 測試產品(A/B test)
(4) 調整方向(Pivot)
(5) 做-衡量-學習

(2):MVP能達到POC:

在這些層面之中,最重要的還是做出MVP並且在市場測試。MVP講起來簡單,但做起來不容易。特別是在新創公司,大部份的工程師都會傾向做出完整的優良產品,MVP有時候是要做出最小功能的產品,這可能與工程師的天性互相違背。在Lean Start up 原創者Eric Ries的書裡面,描述了一個網路賣鞋的概念,去實現此概念不見得一定要做出有完整購物車以及金流的網站(強烈推薦看一下此書)。

當你靈光一閃的時候,如果沒有去實踐,終究也只是一閃。然而實踐要付出很多代價,最務實的方式會是用Scrum來做出MVP,由MVP進行測試產品,然後再由市場來決定這樣的靈光一閃是不是真的好主意。

(3):用Scrum限制成本達到MVP

Scrum是Agile的方法之一。Scrum可以用在很多地方,但MVP是Scrum能發揮的最佳之處。作法如下:


1. 定義功能
2. 排序
3. 限定時間以及成本
4. 刪除
5. 設計與實作
6. 投入市場
7. 收集反應資料

然而精實創業也常被人詬病為產品不完整,因此一開始有效定義MVP,之後以Scrum來實踐是比較實務的作法。


細節案例請參考如下節。


用以沉思的務實細節:


1. (定義功能)根據靈光一閃出現的絕妙好主意,定義出想要的東西的功能。舉例來說,你想要做一個具有特殊演算法用來計算一起用餐分帳的手機APP。列出的功能如下:

 * 能夠快速紀錄帳款
 * 特別紀錄和朋友一起用餐的分帳方法
 * 顯示欠款,被借款資料,以及目前帳不是平的
 * 一起用餐的餐廳資訊
 * 一起用餐的人數
 * 能夠登入,登出,帳號基本管理
 * 後端能未來做分析

2. (排序)根據你心裡的重要順序 把功能排序,結果可能如下:

 1. 採用特別分帳方法來均分帳款
 2. 能夠紀錄和朋友之間用餐的帳款
 3. 能夠登入,登出,帳號基本管理
 4. 後端能未來做分析
 5. 顯示欠款,被借款資料,以及目前帳不是平的
 6. 一起用餐的餐廳資訊
 7. 一起用餐的人數

3.(限定時間以及成本)這也就是MVP有意義的重點,任何事情都可以無限上綱地做到不可置信的完美,但是時間成本永遠是有限的。假設我們限定一個月,分成4個sprint,並且是2000美金。

4. (刪除)每個Scrum只能做有限成本的功能,剩下應該移入backlog。在這裡粗估每個sprint能完成一個功能,因此只留下四個其餘刪除。可能留下的結果如下:

 1. 採用特別分帳方法來均分帳款
 2. 能夠紀錄和朋友之間用餐的帳款
 3. 能夠登入,登出,帳號基本管理
 4. 後端能未來做分析

5. (設計與實作)根據留下的功能在每個Sprint進行設計以及決定實作:

 這一點牽涉比較多軟體開發知識,在此暫時省略。不過,如果已經固定了成本,可以考慮能實踐你的好主意的企業,例如TALENT-SERVICE

6. (投入市場)對於APP來說,投入市場當然就是上架。但要注意的是,上架本身牽涉到許多行銷以及相關知識。缺乏這種知識與行動的話可能會很慘。


7. (收集反應資料)對於APP來說,設計與實作的好,可以讓資料收集以及市場反應變得很容易。當然這個也牽涉到一些專業知識。簡單的說,盡可能利用已經存在的平台:例如google adsense, AWS, facebook等等來幫助你搜集資料。

Lean startup, MVP, Scrum是三個互相輔助的概念。透過Lean startup的精神,利用Scrum來做出"很多個MVP"才是成功的最簡單方式。參考這裡




10/07/2015

資訊系所學生的國際觀- 三個觀察




過去幾年來交換學生越來越盛行,基本上跟大學一樣,沒有交換不了的,只有想不想交換這回事。然而,資訊系所學生的國際觀,整體來說似乎沒有跟著地球扁平化,世界縮小話而改變太多,相反地類似美國種族融而不合的情況似乎更多。

(1):想要國際化


隨便問幾個學生,認不認為國際化很重要,想不想加入跨國公司取得國際化工作經驗。幾乎沒有一個學生說不。

然而,除了少數加入open source計畫的學生之外,很少有參與國際軟體開發活動,除了交換學生之外,也很少有學生能想到"長期"培育自己國際觀的方式。


(2):片面資訊


最最常見的片面資訊在於:

外國人=美國人 ......(外國人說話都很直接,老實說恐怕只有美國說話很直接)

國際觀 = 美國觀 ......(International View = American View)

進入大公司 = 有很多"國際化"機會..... (這部份是事實,但某些小公司更多)

學生要有國際觀 = 要留學 要交換學生 要遊學 ......(部分是事實,但也看過太多留學交換的時候都跟華人混在一起,那老實說也沒特別意義)

google = 搜尋全世界....(起碼要扣掉中國和斯拉夫語系國家,這樣就少17億人耶)


(3):等著別人來幫忙


在面試的時候,常常會被問"公司是否能提供訓練"。組織根據需要當然會提供訓練,一個好企業也絕對不會吝嗇於訓練費用。

但更重要的問題在於,你除了上學之外,花了多少時間在訓練自己。

同樣的問題在國際化視野上也是,除了讓學校老師幫忙,你自己曾經為了想要"國際化的視野"為自己做了什麼事情?





沉思項目:

在不使用google/yahoo的情況下,你上網查詢資料會是要怎麼開始?
你是不是能找到在東歐常用的web mail (除了gmail, yahoo之外)?
你是不能推測這個世界人口的各大洲比率大概為何?
你是不是能直覺猜測斯里藍卡人均收入?
除了BBC/CNN 的強烈報導之外,你覺得最近幾個月(2015年秋天)為什麼梅克爾會歡迎難民。