郝 鳴
[摘要]對軟件開發過程中界面設計師與開發者的任務分工與合作問題進行探討,分別對設計師與開發者提出一些要求使其能夠在軟件開發的過程中充分發揮各自所長,從而促進開發團隊創造出更加吸引人的軟件產品。
[關鍵詞]軟件開發 用戶界面 合作模式 團隊管理
中圖分類號:C96文獻標識碼:A文章編號:1671-7597(2009)0910218-01
一、前言
隨著計算機的廣泛應用,越來越多的人開始使用計算機進行工作。隨之而來的問題是如何使人們更好的使用計算機軟件,用戶界面[1]的可用性與用戶體驗[2]直接影響到軟件產品的推廣和銷售。逐漸地用戶界面設計師成為了軟件開發團隊中的一個重要的角色。如何使用戶界面設計師融入軟件開發團隊中,使感性思維與理性思維的結合達到一種平穩、互補的狀態是軟件團隊管理上的一個重要工作。
二、合作中的問題
在軟件開發團隊中,用戶界面設計師與開發者的合作類似與“打網球”的形式。在軟件系統的實現階段,先由用戶界面設計師設計出界面原型,其生成產物一般是不具有任何交互性的位圖圖片。而后開發者以設計師的設計原型為基礎用程序代碼進行實現。當開發者在實現設計師所設計的界面時,設計師這個時候是沒有具體工作的,這其實是一種資源的浪費。
當開發者將實現后的界面反饋給設計師的時候,或許爭執就隨之產生了。用程序代碼來實現設計師的意圖并不是想象的那么容易,如果是開發基于Win32的程序,那么就需要調用大量的Windows API實現自繪界面。設計師往往不滿意開發者的“作品”。作為開發者更是怨聲載道,認為開發程序可要比設計師畫張圖復雜得多。雙方都不能理解對方,這不利于開發工作的繼續進展。從根本上講,這是由于藝術與技術上的鴻溝造成的。由此可見,要在一個開發團隊里同時發揮設計師與開發者最大的能力,達到開發進度上的有效把握具有很大難度。
三、新的軟件開發模型
傳統的軟件開發模型確實存在著不利于設計師與開發者進行合作的因素,要解決這個問題首先需要填補藝術與技術的鴻溝。微軟的Expression Blend+Visual Studio 2008組合,Adobe的Flash Catalyst+Flex組合是新型開發工具的典型代表。這兩大公司所推出的解決方案在大體思想上是相同的,即將軟件界面與業務邏輯進行分離,并提供無縫合并的能力。他們各自推出了基于XML的界面描述語言,微軟的界面描述語言為XAML,Adobe的界面描述語言為MXML。XAML和MXML都是設計師與開發者便于理解的標記語言,這可以讓設計師快速構建軟件的界面,而且設計師產出的成品可以無失真的直接由開發者直接使用,之前由界面設計位圖轉化為可執行的程序代碼的鴻溝被界面描述語言填平了。開發者和設計師完全可以各司其職,做好自己擅長的工作。這是技術的更新帶給軟件開發的進步,但是僅僅有技術的支持并不能真正解決軟件開發團隊中兩種角色高效合作的問題。
四、開發團隊中人員配置
在傳統的軟件開發團隊成員中大多是由計算機相關專業的人員組成,這部分群體對軟件開發了如指掌。他們把注意力集中在軟件系統的功能開發上,對軟件的界面設計大多沒有經過專業培訓。如果要與設計師進行合作,他們應該對交互設計進行基本的了解與掌握,但并不要求熟悉或者精通,因為這部分工作完全可交給設計師來完成。為了更好的和設計師的產出物進行整合,在開發的過程中應該適當的采用成熟的軟件開發框架,這可以從基礎的軟件架構上將界面和邏輯進行分離。而且,盡可能的將所有的對軟件的操作都用更細的粒度進行劃分,并用Command模式[3]進行封裝便于整合設計師設計的界面交互模型,即便在日后的調整和維護中也可以高效快速的進行調整而不會影響到程序的業務邏輯結構。
設計師的加入為軟件開發團隊注入了新鮮的血液,設計師群體普遍具有感性的思維方式,邏輯思維不象開發者那樣縝密。他們的工作重點是發揮創意來為軟件設計良好的交互模型和優雅的圖形界面。正規來講,設計師應細分為交互設計師與圖形用戶界面設計師。交互設計師側重與軟件的交互設計,圖形用戶界面設計師側重于軟件表面的工作。一般情況下,這兩種角色通常由一個人來充當。這就對設計師提出了一些較高的要求。從根本上來講,軟件開發還是一項理性工作,感性思維占優的設計師要融入這個團隊,還是需要他們將“個性”進行收斂,讓設計工作建立在合理可用的基礎之上。設計師對軟件開發或許不是那么了解,將設計師融入軟件開發團隊的首要任務是要使設計師更加了解軟件的運行機制。針對不同程度的設計師,提出以下幾種方案。
1.沒有任何界面設計經驗的設計師。這部分設計師一般不具備界面設計的經驗,其原來的專業方向大多為平面設計。他們的知識結構決定其不具備較強的邏輯思維能力,但是具備很強的視覺傳達方面的專業知識。針對這樣的設計師,軟件開發團隊可對其進行相關培訓使其對軟件開發中的規則與限制進行了解。這對于此種類型的設計師來講是個不小的挑戰,因為他們已經習慣了“自由繪圖”式的工作方式,大腦中對這種工作方式也絕對認可,如果讓他們進行軟件界面的設計將會在一定程度上限制他們的自由。這就需要團隊中的開發者與其進行充分的溝通和引導,使其在軟件開發的規則下自由創作。
2.對人機交互有一定了解的設計師。這部分設計師大多從工業設計專業轉型而來,他們對人機交互有一定的了解,并且工業設計專業的知識結構使他們本身就具有一定的邏輯思維能力,并且兼具較強的設計能力。這種類型的設計師只要經過短時間的培養,即可勝任軟件界面的設計工作。經過培訓后的設計師通過閱讀軟件開發說明文檔,能夠與開發者進行同步開發,進行無縫的合作。
3.具有豐富界面設計經驗的設計師。這部分設計師參與過若干軟件項目的開發,對用戶界面設計乃至軟件開發的流程非常熟悉。對于此類設計師要讓他們承擔起設計團隊的管理工作,帶領上述兩種類型的設計師進行工作。為充分發揮其能力,要讓他們參與軟件系統的需求分析和系統設計的工作,目的是讓他們從軟件的可用性和用戶體驗的角度對軟件的整體設計提出他們的想法與積極的建議。他們的意見或建議正好彌補傳統的軟件工程師只注重軟件系統功能、效率等技術層面的缺陷,使整個軟件系統在設計之初就更加合理。
五、總結
優秀的軟件系統不僅僅是功能的強大,同時還需要具有良好的軟件界面方便最終用戶的使用。新的軟件開發模型需要用戶界面設計師的加入。設計師在軟件開發團隊中起到越來越重要的作用。傳統的軟件開發團隊應該對設計師進行引導,使其能夠較好的融入復雜的軟件開發工作中。對設計師與開發者進行合理有效的配置與管理可使軟件開發團隊的工作更加高效,創造出更加吸引人的軟件系統。
參考文獻:
[1]Alan Cooper,Robert Reimann,David Cronin著,About Face 3交互設計精髓,北京:電子工業出版社,2008.
[2]Steve Krug著,Don't Make Me Think:A Common Sence Approach To Web Usability,北京:機械工業出版社,2006.
[3]Erich Gamma,Richard Helm,Ralph Johnson等著,李英軍、馬曉星、蔡敏等譯,設計模式:可復用面向對象軟件的基礎,北京:機械工業出版社,2004.