Ruddy Lee 分享空間

Emergent Design 演化設計

敏捷開發的規格文件 – 活文件

with 2 comments

在實施敏捷開發時,由於敏捷對文件的描述較為模糊,常常讓開發單位為了應該產出甚麼文件而傷透腦筋。這一篇敏捷的規格文件,正是針對這個問題,採用 HIPO 的模式,解決實施敏捷開發方法時對文件的需求。

.

HIPO是什麼? (Hierarchy plus input-process-output)

它是IBM公司於70年代中期在層次結構圖(structure chart)的基礎上,所推出的一種描述系統結構和模組內部處理功能的工具(技術)。當時IBM所有的產品文件都使用這一種規格,其中包括著名的作業系統 OS360、OS34 等。

HIPO chart

完整的HIPO圖

.

我是30 年前開始接觸到HIPO文件的,它是IBM的創作,IBM運用這種 Function Diagram 加上 Input-process-output 的圖形描述方式(別懷疑;就只有這二種圖示),用它便能夠完整的製作了許多龐大的軟體,真是令人刮目相看。10多年前當我開始接觸敏捷的時候,便一直以這種文件模式做為開發專案時的架構文件。後來,在看到使用者故事地圖(user story mapping)時就興起了,拿它來置換 Function Diagram(Hierarchy chart),再加上慣用的 Excel 檔來作為輸出入的規格紀錄,二者合起來便剛好是 HIPO的架構模式,真是太棒了! 真是 Just Enough一點也不多。

.

HIPO chart_all

運用使用者故事地圖取代Function Diagram, 運用Excel 活文件與IOP chart互補

.

委外開發要給什麼文件?

常常被問到;委外開發要給什麼文件? 答案是: 夠簡單又剛剛好的文件(給多了怕估價太高及工時太長,給少了怕做簡單了,影響到應用程式的功能開發不完全)。 而這剛好是敏捷開發所謂的 Just Enough 的文件規格。在敏捷式開發裡,文件一直是跟隨專案的屬性,視需要適量的產出的一環。而且只有一條準則:  「夠用就好」。所以我就想到,用使用者故事地圖來取代階層式的結構圖(function diagram/hierarchy chart)。接著再用Excel 實做的活文件規格來取代輸出入處理圖示。結果是,超好用的。(但也不是沒有但書的,例如,開發者必須先對使用者故事有相當的認識,才能順利地運用使用者故事地圖來規劃整個功能架構。至於Excel的部分就順暢多了,因為已經有太多人拿它來做I/O 輸出入欄位的定義用了,因此這部分就水到渠成很容易就發揮它易改易維護的特色了)。個別說明如下:

.

階層式的結構圖 Hierarchy chart 

階層式的結構圖是一個抽象化的功能區塊圖示,它像極了「使用者故事地圖」,足以描述我們對需求的上層架構及骨幹。(在這裡我們必須小心地處裡二者之間的轉變,因為Hierarchy chart 是面向程式設計的功能,而使用者故事地圖則是面向使用者的需求。)

HIPO chart_1

左邊是階層圖示,右邊是使用者故事地圖

.

階層式IPO chart

階層式的 IPO chart 簡潔的描述了輸入、輸出及程式處理的功能說明,這種善用抽象化的方式,聰明的避開了許多細節及參數,看起來清晰明瞭。當出現複雜度過高的圖示時,則可以再串接到下一個階層式的 IPO chart ,如此串連下去,一直到出現足夠明瞭的功能說明為止。

HIPO chart_2

 .

一個簡單的範例說明: 簡單描述一下IOP chart的繪製細節。

0 sample

控制流程細節概述

.

結論

HIPO 是一種古老的文件格式,是規格文件演進過程的一個佳作,他實際上被大量使用了(所以勘用程度是OK的),你可以在這裡(64 HIPO (hierarchy plus input-process-output)找到原版的說明,他因為太簡單而被複雜的文件系統淘汰了,但卻因為適合敏捷使用,又轉成了另一個形式又誕生了。或許該給他另一個名字,就看他能發揮多大貢獻再說吧。

.

請參考: Slideshare 上的PPTX: http://www.slideshare.net/ruddylee/ss-53404378

HIPO wiki 上的說明

Written by ruddyllee

2015 年 10 月 01 日 於 15:47:06

2 回應

Subscribe to comments with RSS.

  1. 我覺得IPO chart和您的Excel不是取代關係,而是互補作用。

    Arphen Lin

    2015 年 10 月 06 日 at 13:35:28


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: