高績效團隊遵循的軟件工程優(yōu)秀實踐
譯文【51CTO.com快譯】隨著科技的進步,層出不窮的軟件、開發(fā)工具以及發(fā)展趨勢讓人們應(yīng)接不暇。
但是,當(dāng)人們在YouTube視頻、Reddit版塊和StackOverflow學(xué)習(xí)和了解軟件開發(fā)時,還有一些事項令人關(guān)注:軟件工程中的良好編碼實踐。以下了解一下高績效團隊需要遵循的軟件工程優(yōu)秀實踐。
測試
優(yōu)秀的開發(fā)人員將測試視為其經(jīng)驗和技能組合的內(nèi)在組成部分。測試可以識別錯誤和缺陷,并精簡流程。開發(fā)人員在對軟件進行測試之后可以交付更好的產(chǎn)品,而經(jīng)過測試的軟件更易于使用、更加可靠并且質(zhì)量更高。
代碼質(zhì)量
代碼質(zhì)量對于軟件來說是至關(guān)重要的,但代碼審查同樣至關(guān)重要,尤其是使用自動化工具和同行預(yù)覽。代碼審查提供了一種定位問題的方法以便盡早修復(fù),還可以確保開發(fā)人員正在開發(fā)的軟件的一致性和可靠性。
文檔
文檔被描述為開發(fā)人員給未來的自己寫的一份說明。根據(jù)Writethe Docs社區(qū)的說法,很多開發(fā)人員回顧自己在6個月前編寫的代碼時,通常與查看其他人編寫的代碼并沒有區(qū)別。他可能會懷著美好的回憶查看文檔,但在查看會產(chǎn)生一種不祥的預(yù)感,意識到這個文檔如今看來可能經(jīng)驗不足或拙劣不堪。
當(dāng)開發(fā)人員在回顧幾個月前所寫的文檔時有這樣的經(jīng)歷或感覺的時候,可能會開始同情已經(jīng)向他們提交軟件的用戶。如果在文檔寫下為什么這么做的原因,那么事情就會簡單得多。文檔允許開發(fā)人員了解在代碼背后傳遞的信息。這與代碼的注釋進行解釋的方式非常相似,文檔也有同樣的目的。
文檔使軟件開發(fā)時保持一致的風(fēng)格,更容易回到舊代碼,實現(xiàn)異步協(xié)作,并幫助跟蹤和解決錯誤。
而Apache軟件基金會執(zhí)行副總裁Rich Bowen在幾年前提出了一個如今仍然有效的觀點:“技術(shù)世界變得越來越復(fù)雜。人們需要知道的事項清單一直在增加,但沒有人能夠成為萬能的專家。期望某人完成所有的工作并提出明智的問題不僅不合理,而且也是不可能的。
富有同情心的技術(shù)支持和更好的文檔是人們有效使用軟件的唯一途徑。而且,如果他們不能在合理的時間內(nèi)得到答案,他們將會使用另一種解決方案,這種解決方案將具有更好的入口。”
更好的是,有很多方法可以自動編寫文檔。開發(fā)人員可以使用Markdown編寫文檔,使用linter來保持樣式指南的一致性,并更正容易犯的錯誤(例如語法錯誤)。如果開發(fā)人員正在尋找一種向代碼添加場景的方法,并且還想減少場景切換,可以查看有用的VSCode和JetBrains擴展,它們允許發(fā)生直接在編輯器中添加問題、注釋和待辦事項。
軟件維護
軟件維護是軟件開發(fā)生命周期的關(guān)鍵部分。軟件開發(fā)人員需要不斷完善他們的產(chǎn)品,以增強其功能,減少退化,滿足用戶的需求,并確保其產(chǎn)品的持續(xù)成功。這是通過軟件維護來實現(xiàn)的。
技術(shù)債務(wù)
當(dāng)談?wù)摷夹g(shù)債務(wù)時,大多數(shù)開發(fā)人員都會感到不安。這是拖延癥最重要的表現(xiàn)形式之一。開發(fā)人員每天忙于工作,導(dǎo)致不斷拖延,也忘記了重構(gòu)。在發(fā)生某些事情并且代碼非常糟糕以至于不再起作用之前,似乎一切都很好。更糟糕的是,修復(fù)技術(shù)債務(wù)成為一項主要任務(wù)。這將開發(fā)人員從其他關(guān)鍵任務(wù)的工作中解脫出來,并在最后期限到來之前解決。
開發(fā)人員需要遵循這一規(guī)則,“總是讓代碼變得更好。” 換句話說,開發(fā)人員應(yīng)該不斷清理技術(shù)債務(wù),這樣他們就不必實施工作量巨大的重構(gòu)項目。
清理技術(shù)債務(wù)需要像人們每天刷牙一樣成為習(xí)慣。開發(fā)人員可以設(shè)置每天下午3:30的鬧鐘,以定期清理技術(shù)債務(wù),并盡可能實現(xiàn)自動化。它可以幫助開發(fā)人員創(chuàng)建技術(shù)問題,將它們添加到與Jira集成的sprint工作中,并持續(xù)解決技術(shù)債務(wù)。
成為優(yōu)秀的團隊成員
關(guān)于軟件工程良好實踐的典型列表或文章中經(jīng)常缺少的一件事是在團隊中運作良好。
在以往,人們將編程大師傳統(tǒng)比喻成為一名特立獨行者,通常獨自工作。而他的一些行為也得到同事的容忍,而他的代碼寫得非常好。
而這樣的方式如今已經(jīng)過去了。編程如今成為一項團隊運動,而成為一名優(yōu)秀的開發(fā)人員首先需要成為一名優(yōu)秀的團隊成員??煽空\實與其掌握的編程技能同樣重要。此外,開發(fā)工程師需要承認(rèn)自己在工作時犯下的錯誤,并需要與其他的同事團結(jié)合作。
開發(fā)人員有能力確定任務(wù)的優(yōu)先級并按時完成任務(wù)。但這也與團隊中其他人密切相關(guān)。如果開發(fā)人員不善于交際的話,那么至少也要尊重他人。
例如在同事遇到困難時,需要及時為他們提供幫助。不能因為自己的知識或技能超過他們而自鳴得意,但如果軟件出現(xiàn)錯誤或出現(xiàn)巨大的延遲,這對整個團隊來說都是糟糕的事情。開發(fā)人員需要為新手提供支持,并分擔(dān)他們的工作,接受組隊編程等實踐。所有這些將使其成為一名優(yōu)秀的團隊成員。
意向性和預(yù)見性
這可能與作為實踐的編程略有偏差,但優(yōu)秀的開發(fā)人員是一名預(yù)言家。這意味著他在創(chuàng)建和編碼時著眼于未來——代碼和最終產(chǎn)品如何發(fā)展和變化以及最終用戶的需求。
以下有兩個例子:首先,采取安全措施。人們可能聽說過左移概念。這意味著良好的網(wǎng)絡(luò)安全實踐在項目開始時就嵌入到代碼和產(chǎn)品中。它是設(shè)計的安全性,一切都與安全預(yù)防有關(guān),而不是在被黑客入侵或發(fā)現(xiàn)出現(xiàn)安全漏洞時不得不收拾殘局。
這意味著軟件設(shè)計從一開始就需要考慮安全性,以減少危及企業(yè)信息安全的缺陷。開放式Web應(yīng)用程序安全項目(OWASP)是Web開發(fā)人員在這一領(lǐng)域的重要資源。
其次,實現(xiàn)可訪問性。軟件用戶的體驗如何?就產(chǎn)品設(shè)計而言,其最終產(chǎn)品是什么?解決方案是包容性設(shè)計。這種方法創(chuàng)造了更好的解決方案,因為它旨在使所有用戶受益。在整個過程中考慮可訪問性意味著可以為所有用戶設(shè)計產(chǎn)品。
微軟公司現(xiàn)在發(fā)布了一個全面的包容性設(shè)計培訓(xùn)計劃。Open Assistive擁有大量的Open Assistive技術(shù)硬件和軟件項目目錄。WCAG.21 Web內(nèi)容可訪問性指南涵蓋了使Web內(nèi)容更易訪問的一系列建議。
原文標(biāo)題:Software Engineering Best Practices That High-Performing Teams Follow,作者:Cate Lawrence
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】