敏捷开发与GeneXus哲学
譯者前言
在GeneXus的重要創(chuàng)始人和核心成員的觀念里,在做一件重大事情前往往需要進(jìn)行大量的思考,尤其是所要從事事業(yè)背后的本質(zhì)及相關(guān)的哲學(xué)問題進(jìn)行思考,然后要研究對應(yīng)的方法論。在上述問題得到明確的答案后,才開始開展工作。
這種做事方法雖然開始有些慢,但對于所從事事業(yè)的長期發(fā)展卻非常有幫助。接下來,我們看看GeneXus創(chuàng)始人都是如何思考的。
正文
GeneXus,一種完全不同的軟件開發(fā)模式
? ? GeneXus被設(shè)計成一個顛覆性的軟件開發(fā)手段:“即使用軟件來生成軟件、自動維護(hù)和管理計算機(jī)系統(tǒng)“,同時集不同用戶的視野/視圖作為軟件開發(fā)的輸入。它的開發(fā)語言基本上屬于聲明式的,并受各種不同的編程技術(shù)的影響不斷實現(xiàn)自我進(jìn)化。
本文的目的不是討論GeneXus的開發(fā)語言和其特性,而是要展示“敏捷開發(fā)的方法論與GeneXus的原則最相適配”。
GeneXus:工具、平臺、哲學(xué)
? ? GeneXus一開始是作為工具出現(xiàn)的,在經(jīng)過多年的發(fā)展它已經(jīng)變成了一個完整的平臺。在這個平臺中,GeneXus最初的哲學(xué)理念已經(jīng)得到了進(jìn)一步的發(fā)展。
? ? GeneXus的使命一直并永遠(yuǎn)是極大地降低軟件開發(fā)時間并且同時保證軟件開發(fā)質(zhì)量。GeneXus能夠創(chuàng)建不同的軟件解決方案,利用GeneXus開發(fā)的企業(yè)核心關(guān)鍵應(yīng)用系統(tǒng)從GeneXus得到的最大優(yōu)勢是:它們能夠與時俱進(jìn)和不斷進(jìn)化。
GeneXus哲學(xué)是基于在20世紀(jì)80年代就形成的以下”四項基本原則“:
●?生產(chǎn)率原則:
? ? 自20世紀(jì)80年代起,GeneXus就開始高度重視這樣的問題,即業(yè)務(wù)系統(tǒng)軟件的開發(fā)時間問題。即使當(dāng)時的業(yè)務(wù)系統(tǒng)的規(guī)模要比現(xiàn)在小并且簡單一個數(shù)量級。當(dāng)時沒有企業(yè)級應(yīng)用系統(tǒng),大多數(shù)作業(yè)是通過批處理來完成的,交易類的任務(wù)通常不是由實際用戶來處理,而是由專門的打字員來完成任務(wù)的輸入,沒有外部用戶。
? ? 大量的工作是在沒有清晰的設(shè)計和規(guī)劃就開始進(jìn)行,這往往造成在應(yīng)該每項工作已經(jīng)完成或軟件產(chǎn)品應(yīng)該上線時,還存在一個D-Day(諾曼底登陸日,即艱苦的攻堅戰(zhàn))。在現(xiàn)在看來沒有任何反饋的軟件開發(fā)工作是不可想象的。實時的、或及時的原型開發(fā)已經(jīng)成為在軟件開發(fā)前驗證解決方案的可行性的標(biāo)配工作。
●?技術(shù)無關(guān)性原則:
該原則一般與多平臺或多體驗相關(guān),但不僅僅是這些。因為該原則意味著可以在特定的時間里采用當(dāng)時最流行的技術(shù)來實現(xiàn)多平臺、多體驗。
? ? 這是 GeneXus 的主要優(yōu)勢之一,它通過對業(yè)務(wù)和用戶知識的建模實現(xiàn)多平臺開發(fā),從中可以通過將不同的人工智能技術(shù)應(yīng)用于代碼和用戶知識管理,自動生成不同時間段的各種平臺的軟件及數(shù)據(jù)庫。例如,同一套業(yè)務(wù)模型與用戶知識,既可以生成AS/400的IBM主機(jī)應(yīng)用系統(tǒng),又可以生成最新的Java應(yīng)用或C#應(yīng)用等;既可以生成前端APP,又可以生成Web應(yīng)用等。
●?Future Proof(提供永不過時的技術(shù)):
? ? 旨在以獨立于技術(shù)的方式描述應(yīng)用程序是 GeneXus 面向未來的原因。盡管有時客戶沒有意識到這一點,但客戶所屬組織需要他們的業(yè)務(wù)和軟件知識能夠在未來發(fā)生的技術(shù)變革中持續(xù)存在。這就是 GeneXus 專注于存儲“純”知識的原因:技術(shù)元素不與知識一起存儲,允許在未來新技術(shù)成為主流時重復(fù)使用這些知識。
? ? 在IT技術(shù)飛快發(fā)展的今天,技術(shù)可能會改變,但隨著時間的推移更加穩(wěn)定的商業(yè)知識受到 GeneXus 的保護(hù)。GeneXus會利用AI技術(shù)將這些成熟的商業(yè)知識轉(zhuǎn)換成可以在最新技術(shù)環(huán)境下運行的應(yīng)用系統(tǒng)。這就意味著GeneXus給用戶提供了永不過時的技術(shù)。
●?增量式開發(fā)模式:
? ? 眾所周知,為了快速從用戶那里獲得真實的和高質(zhì)量的反饋,就需要使用增量開發(fā)模式來加速軟件開發(fā)速度。
? ? 在所謂的敏捷方法存在之前,傳統(tǒng)的瀑布模型并不適合大量的軟件開發(fā)項目已經(jīng)是不爭的事實。而從一開始,GeneXus就最適合增量和迭代方法相結(jié)合的敏捷開發(fā)模式。
GeneXus 哲學(xué)相信
●?業(yè)務(wù)知識:業(yè)務(wù)知識通過人和他們的互動獲取,并存儲在自動和目標(biāo)導(dǎo)向的基礎(chǔ)框架(我們稱其為一個知識庫)中,其中還包括有生成和維護(hù)應(yīng)用系統(tǒng)所需的推理能力(即AI能力)。
●?有效的系統(tǒng):也就是說應(yīng)該開發(fā)出能夠正常運行的軟件系統(tǒng)。
●?合作:從一開始,GeneXus 就提供了一種共享知識的機(jī)制,而這些知識能夠隨著時間推移而發(fā)展。
●?進(jìn)化的系統(tǒng):該系統(tǒng)應(yīng)該能夠自動響應(yīng)業(yè)務(wù)、用戶和市場的變化(進(jìn)化),而不是成為在項目早期遵循僵化的、預(yù)先制定的執(zhí)行計劃所產(chǎn)生的固化系統(tǒng)。
敏捷方法論:宣言和原則
敏捷開發(fā)方法是解決 50 多年來使用瀑布式軟件開發(fā)方法或其派生方法一直無法解決的有關(guān)軟件系統(tǒng)的有效性和效率問題的替代解決方案。
本文檔的目的不是討論敏捷開發(fā)是什么,而是從最廣泛的意義上談?wù)撁艚蓍_發(fā),包括其原則和哲學(xué)。
XP(極限開發(fā))、Scrum(沖刺敏捷開發(fā))、Crystal(水晶敏捷開發(fā))、Lean(精益開發(fā))、DSDM(動態(tài)系統(tǒng)開發(fā)方法) 和其他方法論有許多共同點,并在不同時期影響了敏捷開發(fā)。
對敏捷開發(fā)的批評通常涉及方法論的某些方面,但很少有反對其哲學(xué)的情況。
2001 年,創(chuàng)建了第一個敏捷開發(fā)宣言,其中建立了一些看似顯而易見,但在其他方法中無法實現(xiàn)的原則。
首要任務(wù)是通過不斷發(fā)布可運行的軟件來滿足客戶的需要。
當(dāng)軟件由人創(chuàng)建時,一般會傾向于橫向開發(fā)(也稱水平切片開發(fā))某些功能以實現(xiàn)原型,將非功能性方面放在一邊或創(chuàng)建一些質(zhì)量水平較低的功能性方面。因此,在第一個 sprint 中實現(xiàn)的場景最終滿足了提議的功能。然而,它們也為未來的迭代留下了技術(shù)問題(也稱技術(shù)債),很多時候這些問題即使在最終交付中也無法解決。
GeneXus 在這方面提供了很大的優(yōu)勢,因為交付的場景質(zhì)量很高,并且不需要程序員的大量額外工作。
擁抱變更!
即使經(jīng)過詳細(xì)分析,系統(tǒng)的變更也是不可避免的。但是,對于程序員來說,這些更改永遠(yuǎn)不會受到歡迎,因為它們會影響系統(tǒng)的各個要素(數(shù)據(jù)庫、程序、服務(wù)、安全性等)。
在 GeneXus 中,我們歡迎變更,而且這些變更是系統(tǒng)級別的更改。唯一重要且必須聲明的變化是業(yè)務(wù)的變化:對已經(jīng)產(chǎn)生的各種系統(tǒng)的影響及其演變是自動的。無需重新編碼即可執(zhí)行數(shù)據(jù)庫重組以及程序、服務(wù)和用戶界面的重新生成。這就是為什么,無論變化如何,系統(tǒng)都可以快速開發(fā)出來,使其可運行并投入生產(chǎn)。
工作軟件是進(jìn)度的衡量標(biāo)準(zhǔn)
再次強(qiáng)調(diào),GeneXus的理念是始終擁有一個高質(zhì)量的可工作系統(tǒng)。
很明顯,在 GeneXus 和敏捷概念中,變化總是迫在眉睫,軟件總是在工作。
GeneXus 程序員通常是那些從任何項目開始就敏銳地意識到這一原則的人。這不會轉(zhuǎn)化為“沒有文檔、/“質(zhì)量差”、“沒有分析”或“沒有測試”。這些元素當(dāng)然存在,但它們存在于業(yè)務(wù)層面:記錄業(yè)務(wù),分析業(yè)務(wù)、設(shè)計測試等。這些是程序員處理的變量,他們可以和應(yīng)該做什么來補(bǔ)充開發(fā),始終關(guān)注業(yè)務(wù)而不是當(dāng)時主流技術(shù)的細(xì)節(jié)。
敏捷和精益開發(fā)
對敏捷方法的批評之一是它們以開發(fā)人員為中心。這就是為什么出現(xiàn)了其他可以被視為替代方法的方法,即使它們的原理并沒有太大的不同。我們認(rèn)為精益開發(fā)為敏捷開發(fā)帶來了一些新鮮元素,但它并沒有改變其核心原則。
有些人錯誤地認(rèn)為敏捷是沒有任何文檔的“快速而骯臟”的開發(fā)。事實并非如此,問題的出現(xiàn)是由于使用了一定的技術(shù)和工具,這些技術(shù)和工具為了保證足夠的開發(fā)質(zhì)量,明顯地使敏捷開發(fā)的每個步驟中要解決的場景的構(gòu)建過程復(fù)雜化。
GeneXus 提供“快速和高質(zhì)量”的開發(fā),并將結(jié)構(gòu)化的業(yè)務(wù)知識集成到其項目中,并在項目本身中集成一個 Wiki,以協(xié)作和非結(jié)構(gòu)化的方式對其進(jìn)行記錄。
使用 GeneXus 進(jìn)行敏捷開發(fā)
正如我們之前所說,敏捷開發(fā)超越了特定的方法或工具集。它的原則是最重要的,它們完全符合 GeneXus 的理念。規(guī)則、結(jié)構(gòu)和程序的增量特性是 GeneXus 的本質(zhì)。因此,在不需要手動重構(gòu)的情況下實現(xiàn)迭代和演進(jìn)式開發(fā),是在敏捷方法的任何沖刺或類似階段中使用的強(qiáng)大要素。
在任何開發(fā)中經(jīng)??紤]的迭代變得更容易,因為 GeneXus 自動維護(hù)自上次生成軟件以來所做的更改,允許對上一代和當(dāng)前生成的內(nèi)容進(jìn)行影響分析。
敏捷開發(fā)中場景或用戶故事的開發(fā)(在某種程度上是最廣泛的實踐之一)正是 GeneXus保存信息的過程:獲取用戶的視圖(UI)并將現(xiàn)有模式應(yīng)用于這些視圖或允許創(chuàng)建新的模式以符合提議的場景。
結(jié)論
敏捷開發(fā)哲學(xué)與 GeneXus哲學(xué)有很多共同點,甚至在這些術(shù)語存在并流行之前就是如此。
因此,使用 GeneXus 進(jìn)行敏捷開發(fā)似乎是一個自然的選擇:GeneXus 背后的概念將有助于遵守敏捷宣言。
作者簡介:
Gaston Milano
Gaston Milano先生,他擁有烏拉圭國立大學(xué)的計算機(jī)工程學(xué)位,是模型驅(qū)動開發(fā)方面的專家。Gaston Milano先生 自 1997 年以來一直在 GeneXus 工作,專門研究各種編程語言和軟件架構(gòu)。
他目前是 GeneXus CTO,專注于用戶體驗。
Breogan Gonda
Breogan Gonda先生,他擁有烏拉圭國立大學(xué)的計算機(jī)工程學(xué)位。他與 Nicolas Jodal 共同創(chuàng)建了 GeneXus,這一成就為他們贏得了 1995 年的國家工程獎。Gonda 先生在烏拉圭軟件業(yè)的發(fā)展中發(fā)揮了重要作用。
他目前從事業(yè)務(wù)戰(zhàn)略的研究和開發(fā),并且是 GeneXus 的董事會主席。
總結(jié)
以上是生活随笔為你收集整理的敏捷开发与GeneXus哲学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编-5
- 下一篇: 阿里云短信服务与微信小程序对接进行注册