上上星期,收到一封電子郵件,是位就讀「銘傳大學」資管系(在職班)的女孩子,詢問我是否可以以私人的身份指導她們在系統分析的專題研究與開發。 一般而言,我並不會接受私人的顧問輔導,我還是傾向與我們公司接洽聯絡,不過,由於她們也不是透過學校,而是以與我聯絡的那位專題研究的小組長、自己掏出腰包來擔負請我指導的學費。真的很有心,所以我不想計較學費;再則,一方面我還從沒有去過銘傳大學(以前北工的聯誼是經常有與當時的銘傳商專聯誼,不過我從沒參加過),還蠻想瞧瞧銘傳內部的校區;另一方面,她們的專題研究也挺有趣,「運動彩券投注系統」。B)
前一天我聯絡了常來上我們單元課程的「生魚片」,他對軟體設計這個領域一直相當有興趣,所以利用這次的機會安排他見習參與該專題的討論研究。
忘了星期六是要補星期一端午節連假而需要上班的,所以她們小組來了兩位女孩子。一開始就是先讓我看一下她們目前的開發成果,有包括了使用案例、循序圖與類別圖。嗯,小組長(Amy, 也就是聯絡我的女孩子)她們的學分科目是屬於「物件導向系統分析與設計」,教授的內容也包含了 UML 設計圖及系統分析與設計。我個人是挺肯定的啦,雖然設計的產出看來都有問題,但是學生會有這麼認真實屬難得可貴! 我授課與輔導都比較偏向引導的方式,而不會是一直講、一直講,那意義不太大。透過引導詢問的方式,比較容易知道她們的問題在哪裡,是否瞭解一些基礎觀念的知識等。
一開始我就說了,今天就要把其中一個使用案例給寫出程式碼來,嘿,她們愣住,光是對這個專題的系統分析上,她們已經花了起碼兩個月的時間,以及小組成員之間無數的爭論,一天給寫出來? 嗯,這也不就是業界的常態嗎? 怎麼會想要把系統分析給窮究分析徹底呢? 怎麼有可能一開始就要收集完所有且明確的需求規格呢? 怎麼有可能假設分析與設計是沒有問題的呢? 這不就是典型 “瀑布式(waterfall)” 流程開發經常發生的詬病嗎?
找出對系統最有價值的案例,馬上快速跑過一個開發循環(Iteration),最少包括了需求分析、簡單結構設計、程式碼實作,再回頭來增加細節等。一開始我就開始灌輸她們這樣的觀念,要能懂得如何在第一個循環過濾掉不必要的細節。當然是身體力行,直接就帶著她們快速導入實作。
這個系統我看來最有價值、可以先開發的功能案例有兩個:投注與派彩。 嗯,今天就先把投注這個案例先跑過一個循環吧。教她們如何建構使用案例模型,如何寫出正確格式的使用案例敘述。但在結構分析上,我並沒有提,因為結構分析對她們現在的程度,以及短短的兩天,是不可能作得好的。我只揭露出如何利用 “控制(Control)物件”、”邊界(Boundary)物件” 來實現實體系統的 MVC(Model-View-Control) 分層結構。
中午午餐休息時間,我們一起走到士林夜市那條馬路上,找個有冷氣的飲茶簡餐店用餐,在那邊聊得愉快,同時也瞭解她們這些小女生都是在業界(幾乎是在 MIS 部門)上班,晚上還要修習大學課程,還要提心吊膽考試被當(該系統分析課程還被當了 10 餘個),真是辛苦! 用完餐後,我要去付錢,但是 Amy 堅持她要請客,有些不好意思(我不太喜歡讓女孩子請客)。
下午繼續,我也指導她們利用 EA(Enterprise Architect) 工具來實現塑模,然後到最後呢,就是 “CodeGen”,把程式碼框架給加到 NetBean 的專案目錄內。一切蠻順暢,也挺輕鬆愉快的。 Amy 她們可真認真,說還要聯絡其她組員晚上過來,把我教導的內容轉述傳授給未能來的組員們;同時呢,我是留了兩個實作的課題,請她們要能連上資料庫與設計一個簡單的 WebForm。
今天生魚片比較沒有發揮的機會,但很健談,也發表了很多他的想法,相當不錯。他開車順帶送回我中和去。在開車的路途中,我請教他關於期指看盤的重點。生魚片是作比較偏波段的操作,據他的講法說他是死多頭(剛好與我相反,我比較喜歡放空)。嗯,光這幾天大盤瘋狂的漲勢,已讓他的期指多單,賺到比一年的薪水還要高呢。 88|
隔天呢,另外兩位女孩子也過來了,都好乖。我安排生魚片先與 Amy 她們實作 UI 與資料庫連結,然後我先與今日來的那兩位女孩子以閒聊的方式,花了快兩個鐘頭吧,讓她們先建立一些對軟體設計的基礎知識觀;耶,她們資料庫好像還沒連上,不過也已過中午,要吃中餐了。
這次我們是到士林夜市旁邊一家新開的平價義大利麵,量好多,也不難吃,坐在我對面的 Wendy,竟然點了大辣,還吃得津津有味。我這陣子因為腸胃不適,只能吃淡的、不能加辣,冰的也不行,更甚者,連咖啡都不能喝。 😐 唉,我要去付錢,Amy 又搶著去付錢請客了,實在真的很不好意思。 生魚片真的很健談,有他在真好,四位女孩子也是與他聊得很愉快。
下午呢,她們還是無法連上資料庫,對於 JSP 也不熟。由於生魚片只懂 .NET,對於 Java 的實作設定等,也是陌生。後來我要求改成 Java Swing,先讓 UI Form 可以連得上控制物件,並且可以取得 “下注” 的對話訊息(也就是控制物件的 method)。 NetBean 怪怪的,一時之間還真連不上資料庫,肯定是 JDBC 設定的問題。不過我不可能將時間耗在這些設定的 How-to 上,不過同時呢,也就 identify 一個潛伏的問題:小組成員的實作能力也需要加強! 剩下最後的時間,我仍需要講解如何正確定捕捉 E-R(Entity-Relationship) Schema,以及將這兩天所有的設計產出做個總整理,同時呢,我利用 EA 的 “文件產生功能” 產出了這兩天所有設計的 Word 格式文件,她們好高興,沒想到可以產出看來起好有質感的文件。嗯,做文件這種東西,就是很自然在開發過程中產出,若是刻意要去寫,意義實在不大。
雖然最後無法連上資料庫,沒有完全打通,稍稍有些可惜。不過也指導了該從哪個物件連結資料庫,這一個技術環節,在爾後她們的實作上,其實是可以輕而易舉完成的;同時,我也感覺的出來,她們對這兩天的實戰輔導,感到很開心,當然,我自己也是很欣慰的,對她們多少有些實質上的協助。
結束了,Amy 拿了學費給我。我堅持一定要請她們晚上吃大餐,坐計程車到往陽明山那個麥當勞附近,沒想到所有的餐廳全都客滿,走了許久,到了士林捷運站底下一家日式燒肉店,問問她們的意見,也都可以接受,就進去來吃燒肉囉。不錯耶,這家店我還記得七、八年前我與老婆、蓁妮來吃過,當時感覺沒那麼好吃,沒想到現在作得如此好吃。生魚片不能吃牛肉,算命的說他吃牛肉會破財,為了他的期貨仍留倉多單,一旦破戒吃牛肉搞不好星期一開盤大跌,所以我們就幫他點了松阪豬肉,喔,還有海鮮火鍋,大家都吃得還挺愉快的。
這兩日與生魚片輔導這四位單純又認真的女孩子,覺得也真不錯,後來才又知道,她們是班上第一個已經在進行的專題小組研究,其他的小組,都還只在紙上規劃主題呢,實在是好有心、好認真! 我想,三不五時,還是協助她們透過 Email,Review 其設計產出,多少指導她們一些比較顯著問題上的修正。還有,等到專題成果整個完成後,小女生們還說要再請我們去吃燒肉呢。 😉
Hi Amy:
聽 Kiki 講星期六妳有要來報名學分班,結果學員人數客滿太擠而離開,實在是不好意思。 !^^
我也很高興能認識妳們這麼認真的小女生。 ^^
Kenming老師:
感謝您兩日來的指導,讓我小有收獲,再來我不是小組長ㄛ 呵呵!,午餐是kiki同學請客啦!!
能認識老師真的很幸運 也會記住您所說的
做任何事都要熱情 No Excuse
NetBean應該是NetBeans.