2022年3月19日

敏捷式還是瀑布式?其實敏捷式軟體開發不一定比較快

在軟體工程管理的領域中,有兩種常見的開發方法,分別是敏捷式 Agile 和瀑布式 Waterfall。

早年大型專案多半是瀑布式的開發,但近十年來,許多成長型的公司開始採用敏捷,敏捷開發漸漸成為討論的主流。

而說起這兩者的差別,大家最想知道的問題通常是:「使用敏捷開發後,開發的速度會變快嗎?」

而這個問題的答案是不一定。

為什麼不一定?敏捷聽起來不是很快的意思嗎?是有這樣的意思,但也有一些誤解。我們先來簡單帶大家認識一下傳統的瀑布流,再來討論為什麼敏捷的開發速度不一定會比較快。

瀑布式開發

瀑布式開發是經典的開發方式,其實我認為也比較符合一般人的直覺。主要的核心概念就是,一口氣完成整個專案。

一口氣完成整個專案,不是理所當然地嗎?對,所以才說這比較符合普通人的直覺。因為敏捷不是這樣的。

總之,整個瀑布式的開發流程大致上可以分成幾個大階段,也就是經典的軟體開發生命週期(SDLC),以下稍微簡述:

  1. 需求訪談與定義

    需求端提出對於系統的需求後,再歷經完整的需求訪談後會產生出規格文件,也會讓設計師進行介面的設計。

  2. 軟體系統分析設計

    架構師或系統分析師根據前面規劃好的規格文件,進行系統的細部規劃,例如決定要使用什麼技術,程式架構的設計等等。

  3. 功能實作及單元測試

    工程師根據系統分析的結果進行實際的程式撰寫,並測試其撰寫的程式是否正常運作。

  4. 整合測試及驗收

    針對完成的功能進行整體性的測試,並讓需求端或利害關係人進行驗收。

  5. 安裝部屬及維運

    實際將系統部屬到使用環境,並維持系統正常且持續運作。

這樣的流程,應該很符合大眾的邏輯,先有需求,然後規劃,然後設計開發、測試、上線。

2022年3月11日

軟體工程師剛畢業第一份工作要找大公司還小公司?在大公司學制度,但制度有什麼好學的?

找工作時的時候,你可能會面臨一個問題,要選擇大公司呢?還是小公司好呢?大公司通常名氣響亮,亮出名號相當神氣,當然,除了面子問題以外,很多人也說,在大公司可以學到制度,但學到制度是什麼意思?本篇就要來聊聊這個話題。

制度是什麼意思?

大家對一間公司的想像是什麼?也許你會說,不就是辛苦的勞工在底層做事,老闆高高在上,翹著腳,出一張嘴,什麼都不用幹嗎?OK,這是一種面向,但我們先不要這麼悲觀,我們還是先比較正面一點看待,這樣才有討論的空間XD。

對公司的想像有很多種,我認為,一間公司,就是一個團體一起分工合作,透過商業行為,在市場上創造了一些價值,而這些價值最後會轉換為各位勞工的薪水。

而既然是一群人一起工作,那就要有一定的規範、紀律,來定義每個人的人職責,還有該遵守的流程,否則就會亂成一團。再來,這些流程的好壞,也會決定一間公司的成就,而如果沒有採用有效率的做事方法,那就會造成成本過高,收益降低,公司獲利就不會成長。

所以制度是什麼意思?我自己解讀的方式是,制度就是公司的做事方法,包含規範、工作流程,團隊或個人職責劃分等。