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