2009-12-05 13:34 41人閱讀 評(píng)論(0) 收藏 舉報(bào)
前天,偶然的機(jī)會(huì)聽(tīng)了一場(chǎng)IBM軟件工程師的講座,也偶然的接觸了一種思想---agile.講師是賈迎,參與過(guò)Lotus Notes/Domin的開(kāi)發(fā),如今是IBM的顧問(wèn)軟件工程師。
Agile這種思想和現(xiàn)在的敏捷開(kāi)發(fā)有著相同的角度考慮問(wèn)題。以人為核心,循序漸進(jìn)的開(kāi)發(fā)方式。
回來(lái)再學(xué)習(xí),看了幾篇文章,總結(jié)一下:
------------------------------------------------------
敏捷軟件開(kāi)發(fā)是一個(gè)概念意義上的框架,用來(lái)取代軟件工程項(xiàng)目的概念;它強(qiáng)調(diào)在項(xiàng)目的整個(gè)生命周期中,擁抱并促進(jìn)由于軟件進(jìn)化式的發(fā)展所帶來(lái)的變化。
請(qǐng)注意其中的三個(gè)關(guān)鍵詞:
在項(xiàng)目的整個(gè)生命周期中:這就涉及到了【敏捷項(xiàng)目管理】、【敏捷需求獲取】、狹義的【敏捷軟件開(kāi)發(fā)】三個(gè)主要的領(lǐng)域和過(guò)程。要注意的是,上述三個(gè)過(guò)程并不是互相分開(kāi)的,而是你中有我,我中有你。
擁抱并促進(jìn)變化:世界上唯一不變的是變化。不論在任何領(lǐng)域,漠視、甚至否認(rèn)、抗拒變化,都不是一個(gè)理性,嚴(yán)肅的人所應(yīng)有的態(tài)度。學(xué)會(huì)如何識(shí)別變化的大勢(shì),并在可能的時(shí)候,促使變化向好的方向發(fā)展。這才是面對(duì)變化的正確應(yīng)對(duì)之法。
軟件進(jìn)化式的發(fā)展:雖然上面提到促進(jìn)變化的發(fā)展,但是軟件的演化過(guò)程,我相信是有其自身內(nèi)在邏輯的,存在一些根本規(guī)律和指導(dǎo)方針;并不是完全以人的主觀意識(shí)為主導(dǎo)。
了解了這三個(gè)方面,下面引入大名鼎鼎、如雷貫耳、耳朵都要磨出糨子來(lái)的敏捷宣言(Manifesto for Agile Software Development):
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
☆ Individuals and interactions over processes and tools
☆ Working software over comprehensive documentation
☆ Customer collaboration over contract negotiation
☆ Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
在敏捷宣言的背后,有其遵循的12條原則:
Principles behind the Agile Manifesto
We follow these principles:
☆ Our highest priority is to satisfy the customer through early and continuous delivery of vaphp?name=lua" onclick="tagshow(event)" class="t_tag">luable software.
☆ Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
☆ Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
☆ Business people and developers must work together daily throughout the project.
☆ Build projects around motivated individuals. Give them the environment and support they need,
and trust them to get the job done.
☆ The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation.
☆ Working software is the primary measure of progress.
☆ Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
☆ Continuous attention to technical excellence and good design enhances agility.
☆ Simplicity--the art of maximizing the amount of work not done--is essential.
☆ The best architectures, requirements, and designs emerge from self-organizing teams.
☆ At regular intervals, the team reflects on how to become more effective, then tunes and adjusts
its behavior accordingly.
------------------------------------------------------------------
想想我們聽(tīng)說(shuō)過(guò)的一些AOP的開(kāi)發(fā)方法,有哪些和這種思想是一致的?
很多,不斷的迭代和不斷的簡(jiǎn)單化來(lái)完成目標(biāo)就是這樣的呀!
《輕快的java》鼓勵(lì)人們使用SSH的方法來(lái)開(kāi)發(fā)軟件,因?yàn)樗麄儾挥每紤]EJB帶來(lái)的過(guò)度耦合,因?yàn)樗麄兪勾a簡(jiǎn)單,透明。
吃什么就像什么,使用大量的Bean而沒(méi)有容器,就使Servlet很難管理,Spring的IoC的依賴(lài)注入完美的解決了問(wèn)題。
------------------------------------------------------------------
而日常的生活中,又有那些問(wèn)題可以被Agile解決呢?
我發(fā)現(xiàn)eclipse的流行就可以用這種思想來(lái)說(shuō)明,開(kāi)始我們的需求就是像記事本一樣的做代碼。然后運(yùn)行的時(shí)候要控制臺(tái),那就集成控制臺(tái),需要調(diào)試的時(shí)候,就集成Ant,需要什么就加什么。
就像我們爬山的時(shí)候,為了尋找最短的路徑可能會(huì)走下山的路。
------------------------------------------------------------------
這些只是個(gè)人學(xué)習(xí)上一些理解。
歡迎指正。
只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||