2010-08-19 19 views

回答

11

有一段時間,我認爲正確的答案是架構。真實的故事:大約四年前,我將一個軟件項目的架構作爲我們季度預算審覈流程的一部分提交給管理團隊。該項目沒有獲得資助。後來,我問爲什麼;其中一位高管告訴我,沒有人知道我在說什麼,他們也沒有清楚他們已經完成了多少工作,也沒有剩下多少工作 - 太不確定了他們得出結論。大約一年後,我在季度預算審查中提供了另一組項目摘要。在學習了寶貴的經驗之後,這一次,對於我的團隊最重要的早期項目,我展示了一個GUI - 僅僅是主控制面板中的一個線框,其中只有少數按鈕實際上是可點擊的,其他線框將被加載。我們爲每個主子目錄做了這個。對於兩天(夜間)的工作,我們的員工做得非常出色 - 顯然我能夠向管理團隊展示該應用的具體功能。

結果:沒有資金。我問爲什麼高管的一個 - 他的迴應:

從您的演示 - 我們愛,順便說一句 - 我們還以爲你已經完成了它

肯定有一個教訓這裏;我只是不知道它是什麼。

3

我會說沒有區別。如果你的團隊中有一位技術嫺熟的建築師 - 那麼同時開發這兩者都不會有任何問題。如果你的建築師沒有經驗 - 你會遇到很多麻煩。

補充: 考慮您的意見,這裏是應該推動你的選擇:

1)如果你的項目是高度面向特徵(例如一些自助服務系統,也許有些bug追蹤引擎,等等, - 任何具有複雜功能的東西) - 你應該首先與建築結合起來。否則,您會發現您的複雜架構不適合您製作的GUI,導致GUI和架構更改以及未來的許多問題。 2)如果你的項目的目標是高度用戶友好,讓我們說一些像Facebook,last.fm甚至是stackoverflow.com - 你應該先用GUI和架構。通過這種方式,您將確保所有用戶友好性保持與設計架構的一些額外麻煩(架構師需要根據GUI設計架構)設計相同。

+0

問題的一部分是,我設想作爲未來的創業公司,我希望儘可能保持儘可能低的成本,儘可能地只在需要時聘用人才,在軟件架構和工程完成之前,軟件開發人員不會被聘用。出於同樣的原因,我希望能夠在架構完成之前僱傭一名GUI設計師。問題在於GUI架構出現問題。再次,如果GUI設計師是第一個聘用的,他將需要只有建築師才能提供的規格。結果:雞和雞蛋問題。 – Olumide 2010-08-19 11:52:21

+0

@Olumide:我已經改變了我的答案,包括你的情況。 – bezmax 2010-08-19 12:08:03

+0

我想另一種方法可能是讓架構師準備初始規格(例如,列出GUI組件),然後帶上設計人員來實現GUI生命並引發隱藏的問題。 – Olumide 2010-08-19 14:31:35

2

對GUI進行草圖繪製或原型製作,並與您的團隊(或客戶項目客戶)討論它可以闡明背後的領域模型,並揭示大量業務規則和要求,否則將被忽略。

以後你是否做了最終的GUI設計仍然是開放的,但在設計架構之前根本沒有考慮接口,恕我直言,有點冒險。

+0

謝謝。然而,問題在於該軟件不是針對特定客戶開發的,而是針對一般銷售的。因此,沒有現成的要求。 – Olumide 2010-08-19 14:23:47

+0

@Olumide:你說得對,你寫的是。然而,原則保持不變(將更新答案):當你用創造性的大腦進行研討會時,考慮界面將有助於塑造需求和域模型恕我直言。 – chiccodoro 2010-10-05 06:38:59

0

GUI可以幫助架構師捕獲並理解業務需求,特別是那些作爲需求文檔的一部分可能不被用戶明確捕獲的業務需求。

舉一個例子:在我們的一個應用程序需求中,用戶提到有一組數據輸入字段 - 基於一些業務邏輯。 由於在執行GUI時,決定不應該一次全部顯示這些組,並且選項卡頁面種類的結構對於顯示是首選,可用性問題(例如應用程序跨標籤移動時保留的數據),技術問題就像所有的標籤應該一次加載或按需加載等等對於架構師來說都是顯而易見的。澄清這些問題的用戶界面導致架構不得不適應各種手段來滿足這些要求。

我的確認爲,如果可以選擇,首先將UI設計爲參考並將其作爲參考進行工作時更好。

2

我認爲這取決於你的軟件的類型。通常我想首先確認最困難的部分。如果你的軟件GUI(和交互?)將是複雜和重要的,我會建議先設計GUI(和交互)。 (例如,你正在設計一個繪畫工具或文本編輯工具)