Tuesday, July 31, 2018

數位轉型與產品管理

原文:https://www.romanpichler.com/blog/digital-transformation-and-product-management/
作者: Roman Pichler  

數位轉型通常關注新技術,敏捷實踐和新業務模型。雖然這些無疑是重要的,但有時會忽略另一個成功因素:產品管理(Product Management)。在本文中,我分享了建立有效的產品管理功能的技巧,以實現成功的數位化轉型,提供正確的客戶體驗,並幫助釋放組織的創新潛力。

理解產品管理的重要性(Recognize the Importance of Product Management)


數位轉型是一項重大變革計劃,可幫助公司在數位時代取得成功。採用機器學習,微服務,大數據和物聯網(IoT)等新技術是這一變化的一部分,敏捷實踐的引入也包括在內,包括跨職能和自組織團隊,DevOps,Scrum和看板。當公司將其業務 - 客戶關係數位化,定價模型,合作夥伴和供應商關係,成本因素以及其他方面可能受到影響時,商業模式也會發生變化。

但是,要利用新的和現有的數位資產,使它們與實際產品和服務保持一致,創造無縫的用戶體驗,並提高創造的總體價值,公司需要專業的合格產品人員來管理數位資產。

對於一些公司而言,這意味著引入新的部門或小組,建立新角色和職業規劃。對於財務,媒體,旅遊,保險和傳統上沒有產品管理小組的其他垂直行業的企業來說,這種情況經常出現,而且行政層面沒有代表產品管理。

請注意,僱用稱為產品所有者(Product Owner)或產品經理(Product Manager)的人並不一定意味著存在產品管理功能。我看到不止一家企業稱他們的專案經理和團隊負責人為“產品所有者”,但未能給予個人真正的產品所有權,並使他們具備管理產品所需的技能。建立產品管理小組所需的變革千萬不可輕忽,而且需要高階執行管理階層支持,我將在下面詳細討論。

擁有現有產品管理小組的公司通常需要對其產品人員進行技能培訓和再培訓,以及調整角色和職責以及職業規劃。這有助於個人擁抱敏捷思維,利用新技術和工具 - 考慮假設驅動的戰略驗證,目標導向的產品路線圖和用戶故事 - 並與敏捷開發團隊進行有效協作。此外,公司需要考慮負責數位產品的個人如何與負責產生收入的商品和服務的人員合作。雖然這些變化不如導入新的產品管理組那麼深,但仍需要謹慎管理。

定義明確的產品角色和責任(Define Clear Product Roles and Responsibilities)


我的一位客戶稱,每個負責功能,產品和產品組合的人都是數位化轉型之初的“產品所有者”。因此,人們感到困惑,不確定發揮作用的意義,組織的學習和發展計劃無效。根據我的經驗,這個例子代表了許多公司:產品角色經常被無效地應用。

正如我之前所說,產品所有者或產品經理應該負責產品 - 一種為一組用戶和企業創造價值的資產。個人應該長時間管理產品,通常是幾個生命週期階段,而不僅僅是幾週或幾個月。這創造了目的的連續性,促進了學習,並減少了浪費的交接。

擁有產品一部分的個人不是產品,而是我腦海中的功能或組件所有者。他們也有一項重要的工作,但他們的職責各不相同:他們專注於他們的特定功能或架構組件,而不是試圖增加整個產品創造的價值。照顧一組產品的人也不是產品所有者,他們是投資組合所有者或經理。

要正確定義角色,首先要確定公司的產品。考慮產生營收的資產以及支援性的資產。例如,採取有助於人們保護家庭的保險政策,以及幫助客戶選擇和購買正確政策的數位產品。然後調整實體和數位資產以建立一致的用戶體驗,例如,無論策略是線上購買還是在實體門市中購買。

最後,問問自己誰應該擁有每種產品,以及需要多少團隊來開發產品。因此,您可能必須確定具有更專業角色的其他人員,例如支持整體產品所有者或大型產品經理的功能和組件所有者。

確定正確的學習和發展措施(Determine the Right Learning and Development Measures)


一旦掌握了正確的角色,請執行下一步並確定每個角色的必要技能。雖然可能存在一些重疊,但不同的角色具有不同的技能概況。例如,組件所有者通常需要強大的技術技能,因為該人員必須幫助指定介面和API。戰略和領導技能要很好,但不是強制性的。然而,投資組合所有者需要強大的戰略和領導能力,包括制定投資組合策略和協調強大的個人的能力。

利用所需的技能來評估將扮演不同產品角色的人員的實際能力,例如,通過使用我的產品管理測試。找出會阻礙讓個人做得好的差距和弱點。然後確定正確的學習和發展措施。這些可能包括由課程主導的課堂和在線培訓,使用書籍,影片和文章進行自學,以及由高級產品人員或產品教練提供的輔導課程。

考慮到人們的學習偏好和限制,為每個人找到最有效的措施。避免使用通用的,千篇一律的方法。不要指望一個為期兩天的培訓課程能為人們提供他們需要知道的一切; 它不會。

成為一名有效的產品人員是一項需要廣泛技能的苛刻工作。因此,人們需要時間成長為新的產品角色,特別是當他們不熟悉產品管理時。雖然您可以支持人們的學習之旅,但您無法隨意加快速度。因此,除了培養現有員工之外,您最好的選擇是聘請外部人才。

進行必要的組織變革(Make the Necessary Organizational Changes)


引入新的產品管理組或調整現有的人員需要進行組織變更。這些包括建立產品文化,賦予產品人員權力,賦予必要的決策權。

幾年前,我在一家大型保險公司工作。在我的第一次研討會開始時,我讓與會者告訴我他們管理的是哪些產品。“我的意思是什麼?”是我收到的答案,“我們不管理產品。我們做軟件,而不是保單。“沒有共同的理解,軟件資產本身可以被視為產品,應該相應地進行管理。相反,該組織採用的專案通常會改變許多不同的數位產品。一個專案通常只持續三個月,在完成後,所謂的產品所有者和開發團隊成員將被分配到新專案。如果這個故事聽起來很熟悉,那麼貴公司應該考慮改變其運作方式,圍繞產品而不是專案進行組織.

在另一個客戶,新成立的產品管理小組負責管理公司產品的戰術方面。但高階執行管理階層繼續制定投資組合和產品戰略決策。毋庸置疑,這項工作無效並使產品經理感到沮喪,他們最終負責處理他們的積壓工作,而不是被允許負責他們的產品,創新並創造更多價值。管理層缺乏這樣的理解,即除了戰術產品之外,產品人員必須擁有戰略產品決策,高級和執行管理層應該指導產品人員使用  業務戰略。

如果您想成功使用數位產品,您不僅必須找到合適的人並幫助您獲得正確的技能。你還必須給予他們必要的權力。沒有授權的產品所有者不擁有自己的產品; 他們是偽裝的產品管理員或專案經理。此外,產品管理必須在高階執行管理階層呈現出來,而不是隱藏在IT/開發或其他業務部門內部。這可能需要聘請經驗豐富的產品負責人擔任產品負責人並領導有效產品管理小組的發展。

要進行必要的調整,通常需要高階執行管理階層的支持。領導數位化轉型的高階管理者也可以贊助產品管理的導入與強化,並明確將其作為主要轉型目標之一。或者,執行長或總經理是也是一個大贊助者。

建立產品實踐社群(Establish a Product Community of Practice)


有效的產品管理功能永遠不會完成; 這是一個持續的過程。新人加入組織,有經驗的人離開或進入新的工作崗位; 工具和技術的變化; 新的趨勢出現。更糟糕的是,產品管理是一個相對年輕的專業,當然涉及到數位產品,我們缺乏其他專業認為理所當然的標準。

以產品路線圖為例。不同的人對路線圖是什麼以及應該如何表達和傳達有不同的想法。我們甚至將相同的產品路線圖稱為不同的名稱:目標導向、主題、利益和結果導向的路線圖。因此,在貴公司製定和推動產品管理規範和標準非常重要,並且例如,如果您將使用符合目標/利益/結果的路線圖,您將使用哪個範本,以及您將使用哪個術語。這些標準應該定義如何在公司實現產品管理,並作為新產品人員的工作藍圖。

建立一個實踐社群(Community of Practice)是幫助產品人員開發和推進共享實踐以及促進學習和網路的好方法。沒有人可以成為產品管理各個方面的專家,因為它是一個多元化和不斷發展的學科。

自備午餐(Brown bag lunch)、開放空間會議(open-space session),失敗交換所(failure swap-shop)和內部產品管理會議(internal product management conference)是幫助建立和維持產品社群的範例方法。關鍵是讓人們有時間和空間互相交流和相互學習。產品負責人通常是贊助和帶領實踐社群的合適人選,並幫助小組改進他們的實踐。

此外,考慮開發內部產品教練和導師,他們可以教授初級產品人員並幫助社群發展。這些人可能是一些高級產品人員,包括產品負責人,或曾經是產品所有者或經理的專業教練。雖然您可能會發現在建立新的產品管理組時或者出現新的趨勢和技術時需要外部產品培訓師和培訓師來提昇技術人員,但您不應該長時間依賴它們。產品管理是關鍵的業務功能。因此,您希望在組織內部擁有正確的功能。

Monday, September 11, 2017

Dangers in Multiple Branch Parallel Development

Jonathan gives a great elaboration of "Dangers in Multiple Branch Parallel Development". I wonder if this can be well-addressed by Git version control.

http://jawspeak.com/2010/11/03/subversion-parallel-multi-branch-development-and-merging/




Saturday, September 09, 2017

Remove lastUpdate files in local Maven repository

One may use the following shell command to remove lastUpdate files in local Maven repository


for f in $(find . -name *lastUpdate*); do rm -f $f; done

Tuesday, September 11, 2012

Nginx 1.2.0 + AJP Module on Centos 6.3 x86_64

看起來 Nginx 1.2.0 + AJP Module on Centos 6.3 的建置已經正式完成了。
重點是 HTTP Perl Module 的檔案需要明確地在 %files 區段中 include


/usr/lib64/perl5/5.10.0/man3/*
/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/*

並且必須明確地在 nginx.spec 的 ./configure 指令中加入下列引數以指向正確的Perl目錄

 --with-perl_modules_path=/usr/lib64/perl5/5.10.0

終於成功了!

Thursday, August 12, 2010

Google Calendar Sync還是很好用,找到一個繁體中文Patch檔。
http://www.xun6.com/file/698ad9017/GoogleCalendarSync.7z.html

Sunday, May 30, 2010

Alfresco, SpringSource 一起啟動 Activiti BPM 開源專案

我一直在注意jBPM的創造者Tom Baeyens到底跑到哪裡去了,原來到Alfresco

http://www.zdnet.com/blog/open-source/alfresco-springsource-launch-activiti-bpm-open-source-project/6511?alertspromo=&tag=nl.rSINGLE

SpringSource的動作越來越積極,我想Open Source Java一哥JBoss要開始留意了...

當使用SpringSource Tool Suite 2.3.3M1練習Spring Batch 2.1的Sample時(特別是來自於Spring Template Project)
必須注意以下事項:
  1. Spring Batch 2.1的POM內似乎有對於Spring 2.5.6的依賴,因為spring-aop, spring-context會錯誤地參考了2.5.6的版本,會產生以下例外狀況
    java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.(Ljava/lang/Class;)V
    ...
    解決方案是設別再POM中強制加入spring-aop 3.0, spring-context 3.0版的相依。
  2. 在執行JUint TestCase時,由於DataSourceInitializer預設由Classpath Root開始尋找schema-hsqldb.sql,應該會找不到,因此要另外由JAR檔中取出,複製一份到Classpath Root下,JUnit才會正常通過。或將/SampleBatch/src/main/resources/batch.properties下的batch.schema.script設定為org/springframework/batch/core/schema-hsqldb.sql

Tuesday, February 17, 2009

JBoss jBPM 流程內的平行處理,必須透過 MessageServiceFactory。
可以自行實作 org.jbpm.svc.ServiceFactory和org.jbpm.svc.Service以達成此功能。