高品質軟體工藝

2021-09-17 05:52:05 字數 3426 閱讀 3749

tarcio saraiva 和 adam crough 在澳大利亞墨爾本第一次大會上討論了高品質軟體工藝。infoq請他們討論了什麼是軟體質量,並請他們解釋了質量能夠帶來的商業利益,以及如何進行管理。infoq還請他們談了談測試在交付高品質軟體時的角色,持續交付對質量有怎樣的支撐,並請他們為想要交付高品質軟體產品的組織提了些建議。

\\infoq:你們能分享一下什麼是軟體質量嗎?

\\

\

saraiva:這是個概念上的目標,它能幫團隊鋪一條走向更好產品的道路,這個產品幾乎沒有缺陷、有更好的功能和易於理解的**。這條路可以從內部視角(比如開發人員)和外部視角(比如終端使用者)來看,兩組人以不同的方式來理解質量。挑戰在於確保它們之間不會互相產生影響。

\

\\
\

crough:簡單來說,質量甚至可以被界定為好或壞。它的定義從主觀上暗示了個體認知在什麼是質量的識別中起到了很重要的作用。

\\ 當試圖在什麼構成高品質軟體上找到共識時,承認個人目標非常重要。開發人員可能會著眼於**庫,並讚嘆它的可維護性,而終端使用者可能感到滿意的原因是能夠在便捷裝置上儲存喜愛的**。

\

\\

infoq:以你的經驗來看,組織為什麼會選擇質量,質量能夠為它們帶來什麼商業利益?

\\

\

saraiva:質量為計畫繼續增強的組織帶來了控制力,這能為商業帶來收益。在適當的時機使用適當的流程去構建高品質軟體不僅使團隊能夠採用新興的策略和技術,還能使商業更易於演進和變革。

\\ 作為一名開發人員,我發現經常會湧現出新的技術和方法。在dius,我們時常討論可以為專案帶來什麼新的方式。這也是質量對於我們來說為何如此之重要:當它們變得務實且快速地演進組織時,把這些價值帶給客戶對教育客戶也很有助益。

\

\\
\

crough:投資回報率、魯棒性、可靠性、縮短上市時間、增加客戶滿意度是投資和經營質量的所有副產品。它們是組織追隨軟體不斷發展腳步的所有重要屬性。在比較個人的層次來看,我認為追逐質量並讓他人滿意是與生俱來的特性,對此我們都各自具備著不同的水平。從這個意義上說,帶給組織的收益是雙重的。

\\ 首先,營造乙個環境或文化,使軟體團隊成員在其中不僅渴望去滿足乙個標準,並且得到鼓勵去超越標準。其次,如果個人和團隊能夠認識到正在開發會令客戶滿意的產品那將是一件非常令人羨慕的事。

\

\\

infoq:有時組織使用像「質量保證」或「質量控制」這樣的術語,你認為質量是能被管理的嗎?

\\

\

saraiva:我認為質量是可被度量的,並會由此引出可被稱之為管理的舉措。來自於持續整合的可見性將告訴團隊是不是有些事情出錯了,比如丟失了若干測試用例。這種可見性促使團隊採取措施去討論問題、理解原因並應用修訂。

\\ 以我的經驗來看,自組織會投入大量的精力來研究如何用應用工具和技術來管理質量,這使團隊可以更為優秀。反過來說,商業有機會去探索如何從內部實施的技術中管理自己質量的新路子。

\

\\
\

crough:正如我之前所說的,質量可以認為有些主觀色彩,但這並不意味著它不可管理或無法達成共識。

\\ 在軟體開發中,質量保持和質量控制通常是可以互換的。從整體感覺上看,他們構成了質量管理的一部分,而又扮演著獨特的角色。簡而言之,質量保證可以視為一種預防策略,而質量控制則是檢測的策略。自管理團隊、迭代開發周期和持續改進的動力是敏捷專案中管理質量行之有效的所有技術和/或過程。

\

\\

infoq:你能詳細說明測試在交付高品質軟體中扮演的角色嗎?

\\

\

saraiva:最近兩年,測試已經從「提交給測試」的方式轉換為「讓我們測測這個」的方式了。這種轉變從而引導出一種「如何做得更好」的思想。

\\ 測試驅動開發作為一種軟體實踐很成功,因為它能使你向設計決策發起挑戰,從而引導你寫出更好的軟體。把它和結對結合起來使用就更有意思了,因為你們可以分享思想,加強對問題的理解,從而得到最佳的解決方案。

\\ 探索式測試是另一種我認為目前已經成型的實踐:它使團隊能夠去嘗試特性或使用者流程中的不同尋常的路徑,這通常無法用自動化測試套件來實現。

\\ 簡單來說,測試提供信心。它是一組能使組織前進的實踐。

\

\\
\

crough:從識別乙個想法或概念的那一刻起,測試就應該參與到交流中來。想法的測試可以為決策增加洞察力,無論是被大眾接受、實現可行性還是商業可行性。可以通過與新或已有客戶交談來完成輕量級的測試,在紙上把思想畫出來可以成為驗證概念和推動創新的手段。

\\ 雖然測試責任在開發團隊的日常活動中扮演著非常重要的角色,但決策軟體質量是否適用時允許和鼓勵終端使用者測試也非常重要。終端使用者將用你的軟體做一些你和你的團隊沒有考慮到的事。把軟體盡早交到終端使用者的手中是一種測試什麼已經完成的好方法。

\

\\

infoq:你能舉一些例子說明持續整合對質量有怎樣的支援嗎?

\\

\

saraiva:在我當前的專案中,我們採用了零停機時間的持續部署。這全都是因為持續整合才具備了可能性。

\\ 「開發周期」(推送、構建、報告)之所以重要是因為它能讓我們抱對結構和功能的質量抱有信心,但持續整合背後的好處是發展團隊實踐,並使組織像機械人那樣演進,開啟通往現代實踐的大門。

\

\\
\

crough:作為開發流程的一部分,持續集成為開發人員的每次檢入提供了信心,確保都通過了自動化構建的檢查,使團隊可以盡早地發現問題。

\\ 這不僅能給開發團隊信心,還能讓該軟體的業務負責人或產品經理秉承持續檢查的標準。它還憑藉不斷的檢查去界定持續改進的範圍。

\

\\

infoq:如果乙個組織想要交付高品質的軟體產品,你想給他們提些什麼建議呢?

\\

\

saraiva:質量無銀彈。由內向外地構建質量,再由外向內地尋求反饋,這種做法一直以來對我們共事的組織都很有效。擁抱變化,用挑戰的方式來做事,並帶領團隊一路隨行。

\

\\
\

crough:在外部,理解你的客戶是誰,聽他們傾訴並欣賞你的產品即將或正在為他們提供什麼價值。

\\ 在內部,讓你的組織和客戶一起重視共同的願景。願意實驗並營造一種文化,在這裡懼怕失敗不會對個人或團隊產生壞處,而要把它看作一次學習的機會。與開發團隊一起傾聽和協作。

\

\\

檢視英文原文:crafting quality software

高品質軟體工藝

tarcio saraiva 和 adam crough 在澳大利亞墨爾本第一次大會上討論了高品質軟體工藝。infoq請他們討論了什麼是軟體質量,並請他們解釋了質量能夠帶來的商業利益,以及如何進行管理。infoq還請他們談了談測試在交付高品質軟體時的角色,持續交付對質量有怎樣的支撐,並請他們為想要交...

揭秘天際汽車綠色高品質塗裝工藝

如果要給新能源汽車做 顏值排行榜 天際me7 肯定會榜上有名。由前保時捷設計師 現任天際汽車設計vp hakansaracoglu主刀設計的天際me7,設計上以 先鋒重構美學 為理念,斬獲設計界奧斯卡 2019 年德國if設計獎。其一經發布外觀廣受好評,尤其是充滿科技感的 星際灰 色車型,吸引無數菲...

跳票 高品質的象徵

ps3又要跳票,而且要到今年11月份才能發布,雖然我從來也沒玩過這類遊戲機,也對這個東東不感冒,但ps系列遊戲機在玩家中的影響是可以感覺得到的。ps3的跳票使我想起了微軟vs.net的跳票 longhorn的跳票,暴雪公司的遊戲跳票簡直太有名了,以至玩家覺得哪款遊戲準時發布肯定不太正常,似乎在業界有...