iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0

在工作幾年後,才發現原來以前從沒認真設計過軟體。

如果我們把需求比喻成戰場上的敵人,而你是要去與其作戰的勇士,我想你應該也會覺得多做一些準備,再去與敵人作戰的勝算會比較大。

準備什麼?

前面的文章有提到,在開始設計、開發軟體之前最重要的是把需求弄清楚並做成文件,這份文件說明了敵人有哪些特性,會用哪些技能,該怎麼克制。

所以要設計什麼?該怎麼設計?

首先,這邊指的設計最少涵蓋兩種面向
策略面向:跟需求方一起討論,或是自己想
技術面向:跟 IT 的夥伴們一起討論,或是自己想

技術面向

你所具備的技能如果只是讀過某一本程式語言的書(教你某個語言的那種)或是看過一些線上的教學影片,那你就像是新訓後菜鳥阿兵哥,還是要透過下部隊後去學習更專業的作戰技巧才真正有作戰能力,新訓階段只是體驗的階段而已。

在有能力設計問題的解決方案之前,你必須要先學會一些東西,把裝備盡可能的湊齊,努力的去理解各個裝備的用途以及使用時機。

以網站來說,主要由三個領域組成

  • 前端
  • 後端
  • 伺服器

雖然現在職缺上時常將這三個領域分開找人,但想要做出成熟的網頁應用,你不能是只懂其中一個領域,你可以專精其中一個領域,但對另外兩個領域也要有一定程度的了解,且懂越多越好。

策略面向

在補強裝備、工具的同時,也要開始學習一些簡單的繪圖操作,這讓你能夠把想法簡單的畫出來跟其他人討論,有圖片的輔助對於溝通是很有幫助的,因此繪圖成了設計中很重要的一個環節。

有了一定的裝備以及簡單的繪圖技巧後,你可以開始畫流程圖、物件互動圖甚至是製作 Prototype 來表達解決方案(必須基於文件做設計),你的方案以現實具體的方式呈現並且被審視過後才實作的關鍵點是,這個動作事實上已經在交付解決方案給使用者,而這時候需求端發現問題需要做修改的話,對開發者而言成本相對於實作後再改是小的多的。

文件、設計圖中的用詞最後都會變成程式的一部分,必須謹慎的使用。

設計通常不會一次就定案,過程中可能需求方也需要確認某些東西才能繼續,這時候你應該要跟需求方有共識,看看哪些設計是可行的,哪些是需要再討論、修改的,針對那些比較確定的部分可以開始寫程式,不需要等整個設計階段完成後才開始寫程式。

整個軟體開發過程就是不停的釐清需求、提出設計、寫程式,過程中當某些特定功能完成時,盡快給需求方看過,以最快的速度交付出一個 MVP,並繼續迭代下一個功能。

整個流程大概會是這個樣子
https://ithelp.ithome.com.tw/upload/images/20200913/20102825u1g2MEuj7R.png

然而現實是殘酷的,很多時候事情沒辦法照著計畫那樣順利,不過開發者們可以努力把握原則:設計解決方案前要先有文件開發程式前要先跟需求方確認設計交付之前要做足夠的測試

雖說這是軟體的開發流程,但只要稍微思考就能發現,文件化是在確認流程,所以如果需求方做不出流程,代表他們本來就無法解決問題;設計是為了確認接下來要做的東西符合期待,如果這一步無法確定,那之後做出來的東西不適用的風險也就很大;交付前的測試做得越好,使用者遇到的 Bug 就越少。

雖說軟體一定會有 Bug,但成熟的軟體要有能力在交付前解決已知的 Bug,而不是上線後讓用戶 Debug。

關於繪圖工具,這邊推薦幾個給大家
這幾款工具各有各的優缺點, YouTube 也已經有很多不錯的教學影片。


上一篇
Day.3 釐清需求
下一篇
Day.5 令人期待的 Vuejs 3
系列文
全端成長之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言