天天看點

持續內建與靈活軟體開發

如今在生産方式上存在很多複雜因素和障礙。現在,如果你不靈活,它實際上是一個地獄,增加了新的功能。是以,許多公司和初創公司轉而采用靈活方法,并開始使用CI來實作軟體開發的靈活性。

持續內建與靈活軟體開發

關于靈活轉型的公司有很大的嗡嗡聲,例如芒果,彙豐銀行,Edreams等許多公司正在進行靈活轉型。這似乎很容易,但實際上對于大公司而言,改變他們已建立的所有流程并改變思維方式是一項挑戰。但在這個快速發展的世界裡,現在是必須的。

說實話,你會發現很多公司聲稱它們是靈活的。這是問題所在,不幸的是,每家公司都不同地了解靈活。在Apiumhub,我們為不同行業的不同國際公司和小型創業公司工作,并得出結論,要真正實作靈活,您必須做TDD和CI。在本文中,我想讨論持續內建在靈活軟體開發中的重要性。

首先,為了保持同一頁面,讓我們看一下軟體開發中靈活方法的核心。靈活意味着持續,疊代和漸進的演變。它可以幫助軟體開發團隊保持專注,無論環境如何變化,都可以讓團隊适應它們,同時確定快速傳遞價值。為什麼?因為它基于快速回報,靈活性,團隊輸入,持續改進和高品質結果的傳遞。

多年來,軟體開發團隊一直在使用靈活開發方法來提高軟體品質和流程品質。這種疊代和增量開發實踐幫助他們找到通過協作開發發展的解決方案。而且他們中的大多數人會告訴你,沒有什麼可以像團隊對持續內建的承諾那樣建構或破壞靈活性。投資CI可以快速回報代碼變化,節省了大量的金錢和時間。以傳統方式,主要依賴于手動測試的團隊可能會在代碼更改後的幾個小時甚至幾天内收到回報。在這段時間内,會進行其他更改,并且很難确定問題。

什麼是持續內建(Continuous Integration)

我們是Martin Fowler的忠實粉絲,我們總是閱讀他的部落格并強烈支援他的觀點。他說,持續內建是一種軟體開發實踐,需要團隊成員經常将代碼內建到共享存儲庫中。基本上每個人至少每天內建一次,這導緻每天多次內建。內建通過自動建構進行驗證,該建構運作回歸測試以盡快檢測內建錯誤。通常,一旦團隊成員實施了CI,他們就永遠不會切換回來,他們堅持持續內建,因為他們發現CI導緻更少的內建問題,并且能夠更快地開發高品質的軟體。

很多人說它最初被用作極限程式設計(XP)的一部分。正如通常有幾個人在同一個項目上工作一樣,CI可以幫助開發人員跨越彼此的代碼并防止內建問題。CI與配置管理,編譯,軟體建構,部署和測試等其他最佳實踐協同工作,進而建立單一自動化和可重複的流程。

持續內建與靈活軟體開發

持續內建可幫助軟體開發團隊真正實作靈活,适應快速的業務變化,確定正在開發的軟體保持同步。在每一天結束時,他們知道他們的代碼工作正确并且正确內建; 元件一起工作。即使某些東西沒有整合或某些東西不起作用,它也很快被發現。

CI規則規定程式員不要在一天結束時留下任何未整合的東西。這是非常重要的!建構不應該在破碎的狀态下過夜。此外,無論誰在辦理登機手續時打破了建築物,都必須再次修理。

持續內建(CI)與測試驅動開發(TDD)

如果持續內建的想法是快速發現問題,給每個開發人員提供有關其工作的回報,那麼必須有一種方法來快速評估該工作。測試驅動的開發 - 另一種靈活方法填補了這一空白。基本上使用TDD,您可以建構測試,單元測試,然後開發功能,直到代碼通過測試。随着代碼的每個新增功能,其測試可以添加到建構內建工作時運作的測試套件中。這可確定新添加的内容不會破壞現有代碼。并且可以快速通知“打破建構”的開發人員以在早期階段解決問題。

将持續內建與測試驅動的開發相結合,使更多人處于靈活的保護傘下,因為它允許靈活方法更有效地工作,互相完成。

作為CI的TDD為您提供快速回報 - 靈活方法論的關鍵要素。TDD和CI确實簡化并加快了開發新軟體的過程,使得通過可靠的MVP盡可能快地推出新的可擴充産品成為可能。

CI的好處

現在,讓我們更深入地了解CI,看看它為靈活軟體開發團隊帶來的關鍵優勢。

  • 降低風險

更頻繁地內建代碼可以降低失敗風險,降低重做工作超支的風險。經常內建工作意味着應用程式的目前狀态與開發人員擁有的應用程式狀态之間的差距較小,這意味着假設的範圍會減少,并且每個人都停留在同一頁面上。

  • 快速查找問題

在持續內建測試的幫助下,定期進行檢查并立即發現問題。就像在房子裡有火警。它警告軟體開發團隊何時出錯以防止出現大問題。

  • 自動化流程

靈活就是效率。使用CI可以節省大量時間,自動執行重複的手動過程,這很慢。

  • 品質保證

持續內建有助于随時釋出可部署的軟體。從客戶的角度來看,這是一個至關重要的好處,因為不遵循此方法的項目通常會遇到延遲釋出。此外,CI可幫助軟體團隊忘記釋出周期與部署産生的無法預料的問題。

  • 對品質軟體的信心

持續內建的應用為生産高品質軟體提供了更大的信心。每次建構時,軟體團隊都知道測試是針對軟體運作的,以驗證行為,遵守項目編碼标準,結果是功能可測試的産品。

  • 整個團隊的透明度

測試結果應顯示在建構管道上。如果建構通過,則會增加團隊的信心。如果失敗,開發人員可以輕松地要求他的團隊成員幫助他确定可能出錯的地方。測試應該是團隊成員之間透明的過程。

靈活轉變軟體開發,使其更容易,可擴充,更靈活,更快捷。我真的希望在閱讀完我的文章之後,你确信靈活正在做TDD和CI。這是您的安全網,快速找到您的錯誤,修複它們并建構工作軟體。當軟體團隊應用CI時,他們不怕添加新功能并破壞現有代碼。他們知道,通過這樣做,他們比其他團隊更有效率,靈活團隊是能夠快速獲得回報并快速應對不斷變化的環境的團隊。CI使适應性,靈活性,可擴充性,可維護性和品質成為可能。

至于業務,持續內建有很多好處; 将産品更快地推向市場,更好地響應不斷變化的需求,小頻繁疊代,不斷發展等。這為客戶創造了可擴充的優質産品,這是靈活性的前提。

項目經理 vs Scrum Master vs 項目負責人

For new contacts with Agile, project managers and scrum protagonists may look similar or even the same. But it is important to recognize the differences between the two, the possible overlap of certain tasks, and how they complement each other in large projects. ( 對于剛接觸Agile的人來說,項目經理和scrum主角可能看起來相似甚至相同。但重要的是要認識到兩者之間的差異,認識到某些任務可能重疊的地方,并認識到它們在大型項目中如何互相補充。)

Scrum: 什麼是豬和雞的角色?

Roles are key in Agile: The business fable of The Chicken and the Pig explains breakfast: pigs and chickens in the Scrum process. It’s a way to differentiate between roles in the Scrum/Agile world. (角色是靈活的關鍵:雞和豬的商業寓言解釋了早餐:在Scrum過程中的豬和雞。這是一種區分Scrum/Agile世界中角色的方法。)

靈活開發:如何成為合格的Scrum Master?

Scrum Master is considered to be a project manager in many projects, which is actually a misunderstanding. At the same time, I often see people who argue that Scrum Master is completely different from project managers. So what is Scrum Master’s responsibility? What can we do to become a qualified Scrum Master? ( Scrum Master被認為是許多項目開發中的項目經理,這實際上是一種誤解。與此同時,我經常看到那些主張Scrum Master和項目經理完全差別的人。那麼Scrum Master的責任是什麼?我們可以做些什麼來成為一名合格的Scrum Master?)

如何成為Scrum項目的優秀産品負責人?

Without a good product owner, the Scrum project will not succeed. It must be decisive, not only by referring to the required responsibilities, but also by embedding the following thinking patterns: 1) To continuously protect the best interests of customers in terms of functions provided. 2) Protect the organization as a whole in terms of strategic direction and return on investment. (如果沒有一個好的産品所有者,Scrum項目就不會成功,他必須具有決定性,不僅要求提到所要求的責任,而且還要嵌入以下思維模式:1) 在提供的功能方面不斷保護客戶的最佳利益,2) 在戰略方向和投資回報率方面保護整個組織。)

什麼是産品負責人在Scrum中的角色?

Role and Responsibilities - The product owner who represents the company’s ownership of the product is a member of the Scrum team. However, the product owner has no authority over other members of the team, as is the case with Scrum Master. The product owner is responsible for the long-term care of the product and the success of the product. (代表公司擁有産品的産品負責人是Scrum團隊的一員。但是,産品所有者對團隊中的其他成員沒有權限,與Scrum Master相同。産品負責人負責長期照顧産品,并負責實作産品成功。)

Scrum團隊如何運作? – 簡要指南

Scrum in a Nutshell: Scrum relies on which are periods of time when software development is actually done. A Sprint usually lasts from one week to one month to complete an item from the backlog. The goal of each Sprint is to create a potential shippable product. (Scrum依賴于軟體開發實際完成的時間段。沖刺通常持續一周到一個月,以完成積壓的項目。每個沖刺的目标都是建立一個潛在的可傳遞産品。)

如何成為Scrum項目的優秀産品負責人?

A product owner is the guardian of the product vision and goals, because it focuses on delivering business results and values for Scrum projects. So the question is how to be the best product owner? Based on our experience, we believe that the product owner should possess some key qualities. (産品所有者是産品遠景和目标的守護者,因為它專注于為Scrum項目提供業務結果和價值。是以問題是如何成為最好的産品擁有者?根據我們的經驗,我們認為産品所有者應該具備一些關鍵的品質。)

什麼是Scrum的自組織團隊?

A self-organizing team is a team that has the autonomy to choose how best to do its work, rather than being guided by others outside the team. ( 自組織團隊是一個團隊,擁有自主選擇如何最好地完成工作,而不是由團隊外的其他人指導。)

Scrum團隊是什麼?

The Scrum team shares different tasks and responsibilities related to product delivery. Every role is closely related. It is recommended that Scrum team members work together in the same place as possible. Let’s look at these roles from the perspective of responsibility, authority and characteristics. (Scrum團隊分享與產品傳遞相關的不同任務和職責。每個角色都密切相關。建議Scrum團隊成員盡可能在同一位置一起工作。讓我們從責任,權限和特徵的角度來看看這些角色。)

Scrum中最經常提到的10個基本規則

The main goal of Scrum rules is to optimize the development process and minimize waste of time. Scrum Master is responsible for ensuring that everyone follows Scrum project-related rules. These rules combine Scrum processes so that everyone knows how to play. (Scrum規則的主要目標是優化開發過程並最大限度地減少浪費的時間。在Scrum Master的是負責確保每個人都遵循的Scrum與項目相關的規則。這些規則將Scrum流程結合在一起,以便每個人都知道如何玩。)

繼續閱讀