iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Software Development

軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成系列 第 2

拆解軟體開發流程:了解AI工具限制,避免成為爛駕駛

  • 分享至 

  • xImage
  •  

別讓AI工具搶走你的方向盤!

工具只是輔助,要給予它明確的任務指令

相信大家都聽過「GitHub Copilot」,它在我們coding的時候可以根據上下文自動吐出程式碼建議,只要輕鬆按下Tab鍵就可以直接寫入。我覺得它的命名非常有趣,Copilot在英文就是「副駕駛」的意思。我們從命名就可以看見這個產品的定位,這也同樣適用在大部分的AI工具上——開發人員aka螢幕前的我們,才是掌握方向盤的人,工具只是輔助!
.
.

AI工具=被迫營業的靈媒?

我朋友曾經分享過一個故事。他隔天要交一個報告但想了半天還是不知道如何下筆,所以就將希望寄託在ChatGPT上。他打開視窗對ChatGPT下了指令:「我明天要交一篇關於新人在試用期的表現評語,請幫我產出300字。」接著,就得到了一篇奇幻故事XD。
https://ithelp.ithome.com.tw/upload/images/20230916/20136292enhncJRb5S.jpg

AI工具沒辦法通靈知道我們在現實世界被主管交付了什麼任務、PM和設計想改什麼功能。我們要給予明確的任務指令,接下來才是AI工具發揮的舞台。

仔細回想,你是否對AI工具下過一些過於魔幻的指令呢?歡迎在下面分享你的有趣故事。

.
.
.


拆解軟體開發流程:一窺AI工具的無限可能

「副駕駛」要做什麼呢?

其實AI工具的角色比較類似於社團的副社長、副會長,可以幫助我們「加速執行的過程」。包含給我們程式設計的方案、除錯的建議等等,幫助我們更快完成任務。

當我們可以減少在執行上的瑣碎工作,我們就有空檔可以把注意力放在規劃、管理或技術研究的工作。
.

軟體開發各階段主要目標

假設今天我們要一條龍包辦所有開發工作,會經歷哪些流程呢?下面我粗略的整理一下。

序號 開發階段 目標
01 企劃 釐清需求、確定開發功能、交付需求文件
02 設計 完成Mockup繪製設計稿
03 技術研究 確認新技術可行性、預估時間
05 資料庫 欄位規劃、開API,讓畫面上的內容都拿的到資料
06 開發 將專案推上線
07 驗收 確認所有功能是正常的
08 維運 處理臨時的需求調整、優化程式碼

接下來,我們看一下在每個階段既定的工作裡面,有哪些工作可能可以交給AI工具,或是導入工具輔助協作。(備註:我已實作過的地方會給1-5分代表導入工作所帶給我的加分程度,例如:「(4)」。)
.

拆解各階段的日常工作:開發人員的User Story

企劃

在分工明確的團隊裡,工程師在這個階段通常是處於「備詢狀態」,讓PM和設計師確認這次要做的功能是做得到的,或是提供一些可行方案等等。但如果我們要做Side Project的時候,這些東西就統統得自己來。(下面的評分是以我自己做Side Project時的體驗分數)

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 發想題目/腦力風暴  V(5)
02 案例研究   V
03 開會討論、整理會議記錄(PM)   ▲ 應該有相關工具但還沒實作過
04 收納想法   ▲ 無法將所有討論過程告知工具,但可以整理單次討論的摘要
05 產出文件- Sitemap  V(2) 產出文件不難,重點是有沒有收斂出結論
06 產出文件- Flow Chart  V(2) 同5
07 產出文件- User Story  V(4) 同2.4
08 產出文件- PRD   ▲ 同4,但可以一起協作幫忙處理文書工作

.

設計

如果是商用的案子,我不確定AI工具生成的設計稿、圖片有沒有智慧財產權的問題,畢竟這方面目前也頗受爭議。但撇開不談,用AI工具協作產出的設計稿,很大程度上還是要依賴人工去作調整。

這是因為網頁設計和平面設計很不一樣,除了美感,還涉及了資訊架構的處理、UX易用性的考量等等——這些在現實的開發過程中,往往是歷經無數次的來回討論、折衷妥協才定案的結論。

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 繪製Wireframe
02 開會討論 (已重複)
03 繪製Mockup- 靈感參考 V(2) 這個不需要「AI」工具,線上有許多模板素材網站
04 繪製Mockup- 選擇配色 應該有相關工具但還沒實作過
05 繪製Mockup- 產出UI Kits V(4) 1. 自製:須依照工具的辨識規則將框線稿匯入 2. 非自己創作的素材,多少需要自己手動調整(但對設計麻瓜來說已經幫助很大了所以給4分)
06 繪製Mockup- 排版 V(4) 不用自己產UI kits已經可以省很多工

.

資料庫

我過往在做Side Project的時候,只在這兩個情境使用到AI工具,畢竟要有什麼欄位還是得依照Mockup去開。但我相信這題交給正牌的後端工程師回答,會有不一樣的答案。

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 開API   V(3) 可以幫你想通常的類似情況,會需要什麼API,並給你一個60%的版本
02 開API的欄位、檢查有沒有漏掉   V(2) 同1

.

技術研究

資訊收集與整理、輔助程式開發都是ChatGPT的強項。以往我們要穿梭在不同技術部落格、論壇才能拼湊出大致上的方向,但這些經過訓練的AI模型已經都幫我們完成這些工作,直接提供給我們一個的最終方案。

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 事前Study、看前輩的Blog   V(5)
02 實作POC   V(5)

.

開發

我最有感的地方是,它消除了降低了原先的技術門檻。原本一個資深工程師才有能力實作的東西,現在一個初階工程師通過ChatGPT,比以前有更高的成功機率也能做出來。當然,這個「工具紅利」遲早會消失,接下來的戰場就是看誰工具用的好。

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 建立開發環境   V(5)
02 前端程式- 切版 應該有相關工具但還沒實作過
03 前端程式- 套版   V(5)
04 後端程式- 邏輯   V(5)
05 後端程式- 更新規格   V(5) 更新規格本身有很多麻煩事,我這裡是單指產swagger文件,幫忙程度可以給到5分
06 前後端串測   V(5) 解bug的時候怎麼可能少了它
07 部署上線   V(4) 有許多地方還是要靠自己研究,但至少碰到問題有個方向
ps.由於我本身是前端工程師,所以對後端程式的要求就...API能吐正確的資料就好

.

管理與優化

Code Review和寫測試,我認為也算是管理、優化工作的範圍內,而這兩點目前也普遍被認為是ChatGPT強項。

序號 日常工作會碰到的事 導入工具評估 可能遇到的困難/備註
01 Code Review   V(3) 目前能給有建設性意見的工具,通常無法整個專案一次性的完成,兩者無法兼顧
02 單元測試 應該有相關工具但還沒實作過
ps. 如果談論到監測系統異常的維運工作,以我目前的了解,我認為AI在這方面的幫助有限,因為實務上就已經導入相關的監測工具做管理了。

.
.
.


不要當個爛駕駛——了解AI工具的限制

看完以上的表格,是否帶給你一些使用AI工具的靈感呢?相信螢幕前的各位已經躍躍欲試,等不及揮舞著魔法棒。

BUT,請先暫停一下腦海中那美麗的畫面。

https://ithelp.ithome.com.tw/upload/images/20230916/20136292GteFG73hVo.png

在我們即將開啟實戰之旅前,我想像個老太太一樣囉嗦的溫馨醒大家要清楚「工具的限制」。唯有清楚工具的定位和長處,我們才不會對工具不實際的期待與認知,才能更好地運用工具。

這裡我想用NBA球員舉例。
.

最強籃球員 vs 籃板球專家

大家想到NBA的第一個印象一定是「地表最強的籃球員」,但你知道嗎......其實NBA聯盟現役的500人並不等於世界前五百強球員。在這500人裡面,只有極少數人是可以主宰比賽的Keyman,像是Lebron、字母哥、塔圖姆等等,絕大部分的人其實都是所謂的「 功能性球員(Role Player) 」。

功能性球員通常是某個領域的專家,例如籃板球專家、防守專家,他們上場只負責去執行特定的任務或戰術。他們無法主宰比賽,但沒有他們也別想拿下NBA總冠軍。

【圖】NBA的奪冠方程式已經從過去的「巨星抱團」,漸漸走向「一兩個核心+一票頂級綠葉」的建隊模式,今年的NBA冠軍丹佛金塊隊就是最好的例子。(圖片來源)

.

使用前先清楚工具的定位與優缺點

回到AI工具也是一樣,每個工具都有它的定位和長處,他們在不同領域也有各自的強項。我們在使用前必須要清楚這個工具是放在哪個階段去用的,同時回顧自身的情況,看看工具可能可以怎樣幫道我們。接著再一邊實作一邊測試它的天花板在哪。糊里糊塗的草率導入,只會搬磚砸腳。

AI工具究竟是神隊友和豬隊友?這個問題就取決於操控他們的人。


上一篇
前言:被工程師低估的AI「工具力」
下一篇
新手必看的詠唱魔法(1):如何製作User Story和使用者體驗地圖?
系列文
軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
hannnahTW
iT邦新手 1 級 ‧ 2023-09-17 20:59:35

推推團長~

文文 iT邦新手 5 級 ‧ 2023-09-20 10:04:27 檢舉

/images/emoticon/emoticon08.gif

0
hlb
iT邦新手 5 級 ‧ 2023-11-01 17:25:44

軟體開發各階段主要目標(SDLC)那邊跳過了 04 喔! :)

我要留言

立即登入留言