敏捷方法將項目分解為多個階段,在團隊之間分配工作量。我們優先考慮每個階段的持續改進,而不是完全在部署階段進行更改。在每日scrum會議期間,團隊成員不斷通報進度。幾種典型的敏捷開發方法包括:Scrum、極限編程(XP)、功能驅動開發(FDD)、自適應軟件開發(ADD)、Crystal、動態系統開發(DSD)和精益軟件開發等。根據要開發的產品/服務的類型來選擇方法。所有這些敏捷方法遵循一套專門的原則。本文著重介紹敏捷方法的五大原則。
1.對挑戰和變化持開放態度
敏捷方法側重于對軟件開發所有階段的變化迅即響應。我們的團隊必須了解項目在任何開發階段的情況。敏捷方法將任務和可交付成果分步迭代(iteration),以獲得這種高度清晰性。迭代須在較短的時間內完成,通常是一到四周。確保時間表與分配給項目的總時間一致。
JIRA是一種能夠創建快速過濾器以幫助改進代碼的工具。JIRA通過報告功能和自定義工作流程,讓用戶可以清晰地洞察敏捷流程。我們可以使用該工具來構建、測試和發布軟件。
2.擁抱用戶意見
由于敏捷軟件開發方法采用倡導交流和響應的方法,客戶放在優先位置。每次迭代后應經常收集客戶的反饋意見,在此基礎上改進產品。從用戶的角度來思考而不是預先假設,可幫助我們開發更好的產品。客戶提出的一項新功能可能會成為貴公司產品的突破點!
Sprints by Zoho是一款有助于該過程的工具。它使團隊能夠輕松地評論代碼更改。我們還可以使用該工具收集產品反饋,并在開發的早期階段進行更改。
3.促進與可操作軟件的實時交互,以獲得更好的可視化和反饋
我們需要創建可用可操作的軟件,而不是理論表示。文檔確實在軟件開發中發揮了作用,但它僅用于記錄。如果您想從客戶和利益相關者處獲得洞察力,應創建產品的小型工件。我們可能會質疑某個方面,表明需要文檔來支持我們的主張,并向客戶給予保證。為了證明有必要將您在文檔中提出的想法得到實施,沒有比提供可操作產品更好的方法了!用戶與軟件進行實時交互時,用戶的理解和感知會發生變化。它提供了改進的余地,并確保我們與客戶步調一致。比如說,您聲明用戶注冊時輸入弱密碼時,您使用JavaScript在網頁上觸發警告。該功能在原型呈現中時,可以幫助客戶直觀地顯示,并支持我們的主張。記住,文檔應簡短準確。
我們可以使用AdobeXd、InVision、Webflow和Framer等工具,在進行后端編程之前創建原型。
4.有效溝通,以加快軟件開發
向團隊成員宣傳有效的溝通做法可能比采用高端技術堆棧更有利于項目。敏捷軟件開發方法通過每日Scrum會議和結對編程等原則,確保團隊成員積極參與工作。
每日Scrum會議用于從每個團隊成員的角度通報項目狀態。它幫助我們為團隊成員可能面臨的問題提出解決方案。比如說,如果測試人員沒有從開發團隊收到可部署的代碼,測試過程就會滯后。對于測試團隊來說,這是高優先級任務,因此必須制定計劃以彌補這一點。團隊可以相互聯系和協商,以提出有效的解決方案。如果團隊之間的溝通到位,可以更好地管理風險。我們可以幫助可能誤入歧途的團隊成員!
結對編程是一種技術,兩名程序員在同一個工作站上遠程或面對面協同工作。一人扮演主角,另一個扮演配角。主角編寫代碼,配角在每一行代碼輸入時負責檢查。程序員須經常互換角色,以確保工作量均等。
Teams、Slack和Trello等項目溝通工具可以幫助團隊之間或內部的溝通。頻道創建、任務分配、消息傳遞和會議工具等功能提升了敏捷團隊的協作體驗。
5.注重質量而非數量
雖然我們致力于按時完成任務,但可能會在開發過程中忽視項目的質量方面。我們可以提供符合行業安全性和穩定性標準的軟件部分,以后可以進一步更新和即興改寫軟件。比如說,如果您的登錄系統在2分鐘內使用戶完成登錄,試著縮短服務器的延遲,從而縮短登錄時間。記住要保持切合實際的質量目標和標準,那樣不會在緊迫的情況下浪費時間、試圖實現過高的目標。
Selenium、Soap UI和Apache JMeter等性能測試工具有助于根據測試用例來評估我們的工作,以確保符合質量標準。
上述敏捷原則是根據我們選擇的具體方法、項目類型和業務需求來度身定制的。我們可以結合DevOps 實踐,進一步改進敏捷軟件開發方法。
原文標題:The 5 Principles of Agile Software Development,作者:Fibonalabs