軟件工程 | 敏捷宣言之4 個價值觀和 12 條原則

每當(dāng)我談到敏捷宣言時,我都會看到人們揚(yáng)起眉毛。他們了解敏捷并致力于它,但他們以前沒有聽說過這個術(shù)語。因此,在本文中,我將重點(diǎn)關(guān)注:

  • 什么是敏捷宣言——我們將討論敏捷宣言是如何出現(xiàn)的以及為什么需要它?
  • 敏捷宣言的發(fā)展——這將包括敏捷宣言是如何發(fā)展的?它與其他方法和程序有何不同?
  • 敏捷宣言的目的——借助示例,我們將嘗試?yán)斫饷艚菪缘哪康??我們還將討論它如何解決其他模型存在的問題。
  • 敏捷價值觀——我們將詳細(xì)討論四個核心價值觀,并了解擁有這些價值觀的目的是什么
  • 敏捷原則-借助示例,我們將了解敏捷宣言的所有 12 條原則。

讓我們開始理解敏捷宣言——

什么是敏捷宣言?

敏捷宣言由17 位開發(fā)人員20012 月 11 日至 13 日在猶他州 Snowbird 滑雪勝地的一次郊游中正式制作。

制定宣言的開發(fā)人員稱自己為敏捷聯(lián)盟。他們正在尋求對傳統(tǒng)的軟件開發(fā)流程進(jìn)行重組,他們認(rèn)為這些流程繁瑣、反應(yīng)遲鈍、過于熱衷和專注于文檔。他們希望平衡并改善客戶參與度。他們既不反對文檔,也不贊成它,就像我們過去一樣,采用傳統(tǒng)方法,這些方法從未被維護(hù)和重用。他們想要計劃文檔并將其限制為所需的信息。他們對軟件開發(fā)的新方法是“做它并幫助別人做它”。

為了明確他們的觀點(diǎn)和優(yōu)先級,他們創(chuàng)建了這個文檔并將其稱為“敏捷宣言”。當(dāng)他們構(gòu)建這個文檔時,他們不知道他們的想法會以多快的速度傳播到他們的行業(yè)之外,并且在今天,敏捷宣言被接受了全球范圍內(nèi)。

image.png

敏捷宣言是一個宣言,它闡明了其作者所相信的四個基本價值觀和十二個原則;軟件開發(fā)人員應(yīng)該用它來指導(dǎo)他們的開發(fā)工作。

敏捷宣言的發(fā)展:

敏捷軟件開發(fā)方法的定義是它致力于定期和增量地開發(fā)軟件。敏捷方法為用戶提供了一個新版本的軟件開發(fā),這是通過按照承諾進(jìn)行短暫的工作時間來完成的,這些時間段稱為Sprint。

敏捷宣言就是要優(yōu)先考慮以下四個因素:

  • 人們
  • 產(chǎn)品
  • 溝通
  • 響應(yīng)能力

這種敏捷過程與傳統(tǒng)的軟件開發(fā)方法完全不同,在傳統(tǒng)的軟件開發(fā)方法中,開發(fā)人員通常會從客戶那里獲取所有需求,編譯它們,然后一次性開發(fā)軟件。在這些方法中,軟件將在項目周期的最后發(fā)布,這個開發(fā)團(tuán)隊,即敏捷聯(lián)盟正在尋找這些類型的繁瑣文檔流程的替代方案,如瀑布模型,他們將其定義為“文檔驅(qū)動的重量級軟件開發(fā)流程”。

敏捷宣言的目的

敏捷宣言中的四個價值觀促進(jìn)了以質(zhì)量為重點(diǎn)的軟件開發(fā)過程。他們通過創(chuàng)建滿足客戶期望和需求的軟件來做到這一點(diǎn)。

讓我們借助一個例子來理解這一點(diǎn)

這是你孩子的考試月,他有他的:

  • 下周交作業(yè)
  • 為下周的考試做準(zhǔn)備
  • 作業(yè)將在下個月審查和發(fā)送。

現(xiàn)在要提供質(zhì)量,即要獲得好成績并在考試中取得好成績,您需要根據(jù)要求對活動進(jìn)行優(yōu)先級排序。

  • 由于作業(yè)需要下周提交,所以你會要求你的孩子在兩天內(nèi)先完成作業(yè),然后
  • 他可以根據(jù)他接下來三天的考試時間表準(zhǔn)備考試
  • 最后,他可以開始處理作業(yè),因為它們將在下個月提交。

這正是敏捷價值觀所做的。敏捷專注于客戶的需求;它不參與制定計劃和情節(jié);它只是順其自然,適用于小任務(wù)。

image.png

敏捷不是你告訴我你想要的一切”,這就是所謂的需求收集;這個步驟可能需要幾個月的時間來記錄它。只有在文檔之后,您才能開始進(jìn)行軟件開發(fā),并且您將在最后一步獲得工作產(chǎn)品。這里的問題將是“做出改變”。

敏捷的價值觀和原則使它與眾不同。他們使敏捷與變化一起工作。我們首先詢問客戶他們想要什么,并為他們提供第一個產(chǎn)品,如果需要任何進(jìn)一步的更改,可以在下一次迭代中進(jìn)行調(diào)整。

就像您的食品卡車會迅速開始工作,而不是等待幾個月并制定啟動大型食品鏈的計劃。

十二項原則的目的是創(chuàng)造和支持以下工作環(huán)境:

  • 以客戶為中心
  • 與業(yè)務(wù)目標(biāo)保持一致
  • 隨著用戶需求和市場力量的變化迅速做出響應(yīng)和調(diào)整

敏捷項目以客戶為中心,鼓勵客戶指導(dǎo)和參與。敏捷旨在使開發(fā)與業(yè)務(wù)需求保持一致,敏捷的成功是顯而易見的。

敏捷核心價值觀

每個敏捷方法論都以不同的方式使用四個核心價值觀,所有這些都有助于交付高質(zhì)量和可工作的軟件。

image.png
  1. 個人和交互勝過過程和工具:在軟件開發(fā)行業(yè)中,會有提供需求的人,即業(yè)務(wù),以及從事規(guī)范工作的人,即軟件開發(fā)人員,這就是溝通的原因業(yè)務(wù)和開發(fā)團(tuán)隊之間的關(guān)系非常重要。為了清楚地了解需要什么以及確切的需求是什么,業(yè)務(wù)和開發(fā)人員之間需要進(jìn)行適當(dāng)?shù)臏贤?,因此我們?yīng)該重視人員、他們的需求而不是流程和工具,因為如果需求不明確,我們可以不要創(chuàng)造客戶希望我們創(chuàng)造的東西。
  2. 交付可工作的軟件優(yōu)于全面的文檔:敏捷不支持消除文檔,而是將其限制為僅需要的文檔。這樣做的主要原因是,需求、規(guī)格、招股說明書、設(shè)計文件、測試計劃、批準(zhǔn)等許多文件用于導(dǎo)致交付延遲。在敏捷中,我們創(chuàng)建“用戶故事”而不是所有這些文檔,這足以讓開發(fā)人員開始一項任務(wù)?!?strong>用戶故事”只不過是客戶根據(jù)其優(yōu)先級給出的待辦事項列表。在敏捷中,我們的主要重點(diǎn)是在各自的時期提供工作功能,而不是根據(jù)客戶的要求創(chuàng)建大量文檔。
  3. 與客戶協(xié)作優(yōu)于合同談判:通常,在任何過程中,客戶都會與開發(fā)團(tuán)隊互動,就需求、時間表進(jìn)行詳細(xì)談判,但那是在工作開始之前。工作完成后,他們通常會進(jìn)行交互以獲取反饋和輸入。在敏捷中 - 客戶在整個過程中參與和協(xié)作,因為我們每周(每個時期)為他們提供價值,因此它使開發(fā)團(tuán)隊更容易滿足客戶的需求。每周向客戶交付價值有助于開發(fā)人員詳細(xì)了解客戶的需求,最終有助于及時交付項目。
  4. 響應(yīng)和實施變更勝于遵循計劃:在大多數(shù)傳統(tǒng)方法中,變更被認(rèn)為是一種費(fèi)用,因為需要進(jìn)行大量返工,因為在完成項目交付后會給出反饋。在敏捷中 - 優(yōu)先級可以從一個迭代轉(zhuǎn)移到另一個迭代,即周期性地,并且新特性/更改可以包含在下一個可能的迭代中。此外,根據(jù)敏捷的說法,改變不是費(fèi)用;它為項目增加了價值。

敏捷原則

從那時起,原始文件被不同的團(tuán)體使用;從銷售到營銷再到餐廳,敏捷已經(jīng)普及。這種普遍性源于一組可以廣泛統(tǒng)一應(yīng)用、快速學(xué)習(xí)且很少能完全掌握的原則。十二項原則是這些方法的指導(dǎo)原則。他們描述了歡迎變革的文化,客戶是工作的重點(diǎn)。

這 12 條原則可以分為四個不同的組,即

  • 消費(fèi)者滿意度
  • 質(zhì)量
  • 團(tuán)隊合作
  • 項目管理

以下是所有 12 條原則及其所屬組的列表:

類別 敏捷宣言原則
消費(fèi)者滿意度 通過早期和持續(xù)的軟件交付實現(xiàn)客戶滿意度 面對面互動 定期反思如何變得更有效
質(zhì)量 在整個開發(fā)過程中適應(yīng)不斷變化的需求在整個項目中簡化業(yè)務(wù)和開發(fā)人員之間的協(xié)作
團(tuán)隊合作 及時、頻繁地交付工作軟件 相信、支持和鼓勵相關(guān)人員 敏捷流程支持一致的開發(fā)步伐 自組織團(tuán)隊鼓勵高質(zhì)量
項目管理 工作軟件是首要措施 注重技術(shù)細(xì)節(jié)和設(shè)計提高敏捷性。

我們將借助一個例子來理解這些原則。

假設(shè)您想在食物接頭較少的區(qū)域開始您的食物鏈,為此您可以做的是-

首先,用你擁有的任何東西開始一輛小型食品卡車,并最終成長。

我們將堅持這個例子,并借助它來解釋原理。以下是發(fā)展的關(guān)鍵原則。

敏捷原則

讓客戶滿意:通過早期和持續(xù)的軟件交付讓客戶滿意。我們的首要任務(wù)是通過早期和持續(xù)交付有價值的軟件來滿足客戶。

現(xiàn)在在我們的例子中,我們的方法是用你最擅長的東西啟動一輛食品卡車,用一些招牌菜開始喂人。我們不會讓我們的客戶在我們計劃的時候等待。

歡迎更改需求:在整個開發(fā)過程中適應(yīng)不斷變化的需求。所有不斷變化的需求總是受歡迎的,即使是在開發(fā)的后期階段。敏捷流程利用變化來獲得客戶的競爭優(yōu)勢。每次功能交付后,都會收集客戶反饋,如果客戶提出任何更改建議,則會將其納入下一階段。

在同一個例子中,我們已經(jīng)啟動了一輛小型食品卡車,現(xiàn)在我們將看到人們?nèi)绾雾憫?yīng)當(dāng)前可用的菜肴,并根據(jù)客戶的需要改變我們的口味、香料和菜肴。我們的重點(diǎn)是為客戶提供更好的質(zhì)量。

經(jīng)常交付工作軟件:在這里,我們必須每個周期都向客戶交付價值,這個周期可能從一周到幾個月不等,周期越短越好。這部分由從事 sprint 的團(tuán)隊負(fù)責(zé)。他們將在每個 sprint 結(jié)束時交付工作軟件,客戶了解進(jìn)度。這完全是關(guān)于問責(zé)制和時間管理。

以餐車為例,如果顧客點(diǎn)了五道菜,那么我們可以詢問他的優(yōu)先順序,并可以在一點(diǎn)時間間隔內(nèi)送達(dá)。當(dāng)您及時滿足他的要求時,這將使客戶感到高興。

每日協(xié)作:整個項目中業(yè)務(wù)和開發(fā)人員之間的協(xié)作。在整個項目中,業(yè)務(wù)人員和軟件開發(fā)人員每天都一起工作。溝通是敏捷中的關(guān)鍵,在這里客戶和開發(fā)人員是不斷溝通的,這使得它不同于傳統(tǒng)的方法。

使用我們的食品卡車,我們將始終與客戶保持聯(lián)系,并將獲得持續(xù)的實時反饋,這將有助于改進(jìn)。

激勵個人:相信、支持和鼓勵相關(guān)人員:圍繞有積極性的個人創(chuàng)建項目,為他們提供所需的環(huán)境和支持,并相信他們能夠完成工作。參與項目的人應(yīng)該始終相互支持。

對于我們的餐車,我們需要不斷地激勵我們的廚師為那些快樂和滿足的面孔付出最大的努力,這是他們的獎勵,這將有助于我們實現(xiàn)目標(biāo)。

面對面的對話:在開發(fā)團(tuán)隊內(nèi)部和內(nèi)部傳達(dá)信息的最有效和最有效的方法是面對面的對話。在這里,我們有來自企業(yè)和組織內(nèi)部的面對面互動。

這與我們的示例很吻合,因為如果有人對您的食物感到滿意;它會反映在他的臉上。我們所要做的就是保持與人的互動。我們需要征求反饋以進(jìn)行持續(xù)改進(jìn);因為沒有什么比面對面的互動更好的了,因為這會給你實時的反饋和要求。

通過工作產(chǎn)品衡量進(jìn)度:交付的軟件功能正常且工作正常是衡量進(jìn)度的基本因素。我們的首要任務(wù)是在每個時期都提供一個有效的功能,如果我們能做到,我們就走在了正確的軌道上。

如果我們的食品卡車,一個熱門菜和重復(fù)訂單將是我們的成功措施。如果一道菜很受歡迎,這意味著你走在了正確的軌道上。

促進(jìn)可持續(xù)發(fā)展:支持一致發(fā)展步伐的敏捷流程:團(tuán)隊建立或制定促進(jìn)可持續(xù)發(fā)展的流程。客戶、開發(fā)人員和用戶應(yīng)該能夠無限期地保持恒定的步伐,以避免項目中的任何延誤。

對于我們的餐車,我們有一個由清潔工、廚師和一些助手組成的團(tuán)隊,我們必須確保他們所有人協(xié)同工作,并及時將所需的菜肴送到顧客手中。如果有任何瓶頸,例如無法工作的烤箱,則需要及時解決以保持一致的速度。

持續(xù)關(guān)注技術(shù)卓越:關(guān)注技術(shù)細(xì)節(jié)和良好的設(shè)計可提高敏捷性。正確的技能和良好的設(shè)計可確保團(tuán)隊保持步伐,不斷改進(jìn)產(chǎn)品并保持變革。

就我們的食品卡車而言,我們必須專注于為客戶提供質(zhì)量。為此,我們需要確保我們使用的產(chǎn)品質(zhì)量正確,香料用量正確,食物不要太油膩,不要煮過頭或未煮熟等。這些將是我們的技術(shù)細(xì)節(jié) 如果我們的食品卡車我們需要注意提供卓越的品質(zhì)。

簡單是必不可少的:簡單是最大化工作量的藝術(shù)。發(fā)展到足以暫時完成工作。我們不必生產(chǎn)目前不需要的東西。這里的簡單意味著不要進(jìn)入太多的文檔。

這就是為什么我們會為我們的食品卡車保持簡單的東西和菜單并且不會包含太多的原因,這甚至是不需要的,并且會增加不必要的混亂。我們只會擁有客戶需要或喜歡的東西。

自組織團(tuán)隊:這鼓勵了卓越的品質(zhì)。最好的架構(gòu)、需求和設(shè)計來自自組織團(tuán)隊。如果團(tuán)隊內(nèi)部是有組織的;項目中很少發(fā)生錯誤和延誤。

在我們的食品卡車案例中,如果我們的團(tuán)隊樂于完成他們的工作,獲得良好的反饋和獎勵,那么沒有什么能阻止他們提供最好的服務(wù),所以這是關(guān)鍵部分。

定期反思持續(xù)改進(jìn):如何變得更有生產(chǎn)力。團(tuán)隊定期反思如何變得更有效,并相應(yīng)地調(diào)整和調(diào)整其行為。客戶的定期反饋有助于我們實現(xiàn)這一目標(biāo)。

對于我們的餐車也是如此,根據(jù)客戶的要求和行為進(jìn)行定期改進(jìn)將導(dǎo)致我們成功,如果我們的一輛餐車成功,我們可以繼續(xù)前進(jìn)并啟動另一輛餐車,最終可以啟動食物鏈。

以客戶為中心和專注于溝通為敏捷宣言帶來了成功。它只是一種經(jīng)過驗證的技術(shù),不僅對軟件行業(yè)而且對其他行業(yè)都有影響,如今它本身已成為一個行業(yè)。

參考toolsqa.com
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容