2018年3月25日 星期日

神聖不可侵犯的規格書

身為開發人員,我猜你也和我一樣曾有這種經驗…

你拿到一份規格書,依照內容進行開發,程式寫著寫著,過了一陣子之後,發現…

不對啊,這規格書本身很矛盾!? 如果依照前面說的XXX這樣做,那後面的OOO可能會做不下去,如果依照OOO的做法,那用戶顯然以後會很難用唷,反覆來回看了幾次,細細思考之後,你肯定了這份規格書確實有問題。

OK,這時候的你,會怎麼做? 一般我們會有底下三個選項:

A: 管它的,依照規格書先做完再說。
B: 找客戶或PM/SA溝通。
C: 用自己的方式直接做出更好的版本。

如果規格書真的是錯的(當然開發人員也可能自己理解錯),那走A顯然是會造成浪費,你非常有可能做出一個看起來十分符合規格但實際上沒法用的軟體,這狀況我們都碰過,而且很常見,所以這邊暫且先不討論。

選C,則在大部份公司是不受歡迎的(你誰啊?竟敢動SA/客戶的規格? 你第一天來的唷?是剛來看不懂規格書嗎? 驗收是照規格書還是照你自己發明的寫法啊? )

一般來說,你身為Developer擅自改規格是要讓SA/SD/PM怎麼拉下臉去承認自己的規格書有寫錯呢? 況且,規格書若經過了客戶的認可,那你這麼做就是一竿子打翻一條船上的所有人,要一票人去承認自己的思慮不周,而這不周還只有你一個人看的出來!?

如果你選的是B,其實是一件挺累人的事情,你可能會碰到很多挫折,過程中,發現沒甚麼人願意理你,並非所有人都跟你一樣在乎規格的正確性。你慢慢發現,似乎大家都各自幻想著一個完美的最終產出的成品,卻期待著這成品能透過一個千瘡百孔的設計圖來實現。

就算真的能夠開始溝通,你可能也會慢慢認知到,原來溝通一條規格的成本和時間比你想像的高很多很多(但又收不到錢),隨著時程越來越緊,你逐漸開始妥協,在規格書中『刻意保留模糊』,以作為日後驗收時各自表述、各自解讀的籌碼。(搞半天,原來先前規格書中的矛盾就是這麼來的…)

當然,如果規格書不出問題,那上面這些故事場景當然也都不成立,不過…我想你也做過專案,你來告訴我,碰到完美的規格書的機率有多少?

0%

不誇張,就是0%,我從來沒碰過沒寫錯的規格書。

既然規格書那麼不堪用,不如乾脆丟了吧。

所以,曾經有敏捷開發的支持者告訴你,如果想要建構出一個真的可用的軟體產品,與其讓開發人員只看規格書,不如多一些和客戶、需求單位之間的直接頻繁的溝通

這就是你會在敏捷開發價值觀中看到底下這四條的原因:

個人與互動 重於 流程與工具
可用的軟體 重於 詳盡的文件
與客戶合作 重於 合約協商 
 回應變化 重於 遵循計劃 
 

但,溝通容易嗎? 難啊。

大部分的開發人員以宅宅的身分進入0與1的數位世界,就是為了避開煩悶瑣碎的人際談判和所謂的溝通協調,把全然沒有經過溝通訓練的Developer直接拉回客戶的會議室真的是一件好事嗎? 我也不這麼認為。

所以,不可信任的規格書在這個需求變化萬千和迅速迭代的時代,有沒有被淘汰? 很抱歉,沒有,它萬壽無疆的很。

常常有對敏捷很好奇的企業或團體,請我們去介紹敏捷開發時,我偶而玩心一起,會問問學員,你覺得規格書值得信任嗎? 底下坐著SA/PM/Developer和老闆,這問題很難回答。

如果它無法被信任,你為何總是照著規格書寫程式呢? 如果它這麼值得信任,那為何照著規格書做的軟體還是常常無法順利結案呢?

Trade Off ,是你在導入敏捷時可能需要常常放在心裡的字眼,事事無絕對,Guidelines不是聖旨。

彼得杜拉克講過一句很殺的話:『管理是一種實踐,其本質不在於“知”而在於“行”;其驗證不在於邏輯,而在於成果…』

敏捷也是。

-----------------------------
本系列文章索引位於 http://studyhost.blogspot.tw/2017/02/the-devops-journey-index.html
相關教育訓練: http://www.studyhost.tw/NewCourses/ALM
若這篇文章對您有所幫助,請點選這裡加入FaceBook專頁按讚並追蹤,也歡迎您幫我們分享出去,謝謝您的支持。

2018年3月4日 星期日

使用C#開發Linebot(21) - ImageCarouselTemplate的支援

Line Messanging API在去年新增了對Template Message的支援,多了一個Image Carousel型態的訊息。

比起原本的Carousel,Image Carousel其實更簡單,使用後的畫面如下:

基本上就是可以左右切換的圖片,圖片正中下方有一個可以點選的標題,這個標題自然就是過去我們在Carousel Template Message中熟悉的Action。唯一的不同處,是Image Carousel每一個Column只有一個Action。

點選Action後,可以依照該Action的類型,呈現不同的結果,像是顯示訊息或產生postback,大致上如上圖所示。

要使用這個功能很簡單,可以直接參考下面的程式碼片段:


發送的方式一就是採用PushMessage這個Method,重點是先建立一個ImageCarouselTemplate物件,並且跟對該物件設定Columns屬性,屬性中的每一個ImageCarouselColumn item就是一張圖片和一個action。

非常簡單,完整的程式碼在github,記得請將LineBotSDK升級至0.6.8:

https://github.com/isdaviddong/Linebot-ImageCarouselTemplate

-----------
相關課程:http://www.studyhost.tw/NewCourses/LineBot
電子書:http://studyhost.blogspot.tw/2017/12/line-bot.html
LineBotSDK:https://www.nuget.org/packages/LineBotSDK
如果需要即時取得更多相關訊息,可按這裡加入FB專頁。若這篇文章對您有所幫助,請幫我們分享出去,謝謝您的支持。

2018年3月1日 星期四

特權

前陣子公司附近開了一家新的拉麵店,很小,店內的座位大多是吧檯區或是僅能容納兩個人面對面擠著的小桌。

由於我的用餐時間和許多人大不相同,因此,這種『任何時間都適合一個人走進去』慢慢用餐順便在手機上看完一段影集的小店,非常適合我。大概也因為這樣,所以這半年我破天荒的光臨了不下十次。

平時我都是中午時段過去,今天不同,今天我是晚上下班後,一個人走去店裡。

好似和這家店共生的師傅看到了我,笑著喊了我一聲『大哥,剛下班?』,算是打過了招呼,我報以微笑點頭,店內已經沒多少客人,畢竟嚴格來說,現在已經不能算是晚間用餐時間了。

我一如平常的點了大致相同的拉麵和配菜,一個人自顧自地拿起手機看著新聞把麵吃完,由於不急著回去,又做在吧檯前,我吃完麵之後,不自覺的開始欣賞起吧檯後師傅正在幫剛才慌慌張張闖進來的另一組客人煮麵的流程,一邊想著今天在客戶那發生的事情。

突然間,我看到師傅停下了手上的動作,他注意到我用完餐之後似乎發呆了好一陣子,也沒說甚麼,就拿起一個小碟子,盛上了三大塊店內的招牌燒肉,往我面前的吧檯悄悄一放,笑著說:『這是今天最後的一份叉燒肉了。』

我也不客氣,報以微笑,立刻將三大塊免費的燒肉毫不留情地吞了下去。

我猜,這就是我一個人獨自來這家店那麼多次之後的一點點小小優待或特權吧。不知道為什麼,這燒肉似乎比平常點餐時端上來的,要美味更多?

當我帶著比平時滿足的肚腹走出小店時,我思考著『特權』這個問題。

大概沒有甚麼比航空公司這個行業更要把特權制度化的了,不僅你的票種可以分出差別,平時累積的里程也可以彰顯出你的與眾不同,而不同等級的客人,所享受的待遇當然是天差地遠。

以前我的老闆是海外歸來的台灣人,平時又很常出國,久而久之,他對這種『特權』很是熟稔,也習以為常。平時教導我們,對客戶也要分出『等級』,不同等級的客戶要有不同的待遇。看起來似乎老外特愛搞這套,Golden Level、Silver Level的差別待遇就看你要花多少錢來建立這個relationship。這是現代化、制度化的『特權』。

我們東方人過去比較不興這一套,印象裏家中老一輩的長輩們,口中所講究的『特權』是『親疏遠近,長幼有序』,我們被教導特權的是『敬老、尊賢』,而不是『看錢』。

現在走進便利商店,大概每個人都被一視同仁,很少人會有特權。但以前我們家巷口的那個小雜貨商店,每次我去買東西時,總是能夠多拿一顆糖果或是一把青蔥,偶而忘記帶錢也敢毫不猶豫地走進去。因為雜貨舖的老闆看著我長大,他的兒子就是我的同班同學。

在台北,現在大概已經幾乎沒有這樣的雜貨商店了,但我卻越來越是懷念那種因為熟稔和信任,而能享受到的特權。

隨著台灣接受西方文化洗禮的程度越來越高,人們似乎對因為熟悉、信任、或尊敬而帶來的特權越來越厭惡,但卻開始習慣可以用錢去買到各式各樣的權利(或權力),也開始覺得,我付了錢就是大爺,如果我可以付得起更多的錢,你就應該讓我排在前面。

有時候我們想賺更多的錢,就僅僅是為了能讓別人給我們多一點的尊重,多一點的特殊待遇,多一點的特權,座位大一點,位子好一點,視野遼闊一些,讓自己覺得更尊貴不凡一些。我們覺得,如果有夠多的錢,開更好的車,穿戴更高尚的品牌,大家理當會更尊敬自己一些。

但卻慢慢忘了,真正的尊敬是基於景仰,傳統華人社會的特權是基於禮,是為了把方便保留給需要卻又弱勢的人,而非身上帶的錢比較多的那幾位。

時代快速的變化著,我不知道哪一種社會比較好,當然也不敢說哪一種文化才對。

走回去辦公室開車下班的同時,我嘴裡,還是那三塊燒肉的甜味。我在想,甜的也許不是燒肉,而是我懷念起過去的歲月,我年輕時,那個單純、充滿著溫馨和親切感的社會。

Related Posts Plugin for WordPress, Blogger...

熱門文章