2009-12-05 13:34 41人阅读 评论(0) 收藏 举报
前天,偶然的机会听了一场IBM软件工程师的讲座,也偶然的接触了一种思想---agile.讲师是贾迎,参与过Lotus Notes/Domin的开发,如今是IBM的顾问软件工程师。
Agile这种思想和现在的敏捷开发有着相同的角度考虑问题。以人为核心,循序渐进的开发方式。
回来再学习,看了几篇文章,总结一下:
------------------------------------------------------
敏捷软件开发是一个概念意义上的框架,用来取代软件工程项目的概念;它强调在项目的整个生命周期中,拥抱并促进由于软件进化式的发展所带来的变化。
请注意其中的三个关键词:
在项目的整个生命周期中:这就涉及到了【敏捷项目管理】、【敏捷需求获取】、狭义的【敏捷软件开发】三个主要的领域和过程。要注意的是,上述三个过程并不是互相分开的,而是你中有我,我中有你。
拥抱并促进变化:世界上唯一不变的是变化。不论在任何领域,漠视、甚至否认、抗拒变化,都不是一个理性,严肃的人所应有的态度。学会如何识别变化的大势,并在可能的时候,促使变化向好的方向发展。这才是面对变化的正确应对之法。
软件进化式的发展:虽然上面提到促进变化的发展,但是软件的演化过程,我相信是有其自身内在逻辑的,存在一些根本规律和指导方针;并不是完全以人的主观意识为主导。
了解了这三个方面,下面引入大名鼎鼎、如雷贯耳、耳朵都要磨出糨子来的敏捷宣言(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.
------------------------------------------------------------------
想想我们听说过的一些AOP的开发方法,有哪些和这种思想是一致的?
很多,不断的迭代和不断的简单化来完成目标就是这样的呀!
《轻快的java》鼓励人们使用SSH的方法来开发软件,因为他们不用考虑EJB带来的过度耦合,因为他们使代码简单,透明。
吃什么就像什么,使用大量的Bean而没有容器,就使Servlet很难管理,Spring的IoC的依赖注入完美的解决了问题。
------------------------------------------------------------------
而日常的生活中,又有那些问题可以被Agile解决呢?
我发现eclipse的流行就可以用这种思想来说明,开始我们的需求就是像记事本一样的做代码。然后运行的时候要控制台,那就集成控制台,需要调试的时候,就集成Ant,需要什么就加什么。
就像我们爬山的时候,为了寻找最短的路径可能会走下山的路。
------------------------------------------------------------------
这些只是个人学习上一些理解。
欢迎指正。
A young man sees a sunset and, unable to understand or to express the emotion that it rouses in him, concludes that it must be the gateway to world that lies beyond. It is difficult for any of us in moments of intense aesthetic experience to resist the suggestion that we are catching a glimpse of a light that shines down to us from a different realm of existence, different and, because the experience is intensely moving, in some way higher. And, though the gleams blind and dazzle, yet do they convey a hint of beauty and serenity greater than we have known or imagined. Greater too than we can describe; for language, which was invented to convey the meanings of this world, cannot readily be fitted to the uses of another.
That all great has this power of suggesting a world beyond is undeniable. In some moods, Nature shares it. There is no sky in June so blue that it does not point forward to a bluer, no sunset so beautiful that it does not waken the vision of a greater beauty, a vision which passes before it is fully glimpsed, and in passing leaves and indefinable longing and regret. But, if this world is not merely a bad joke, life a vulgar flare amid the cool radiance of the stars, and existence an empty laugh braying across the mysteries; if these intimations of a something behind and beyond are not evil humour born of indigestion, or whimsies sent by the devil to mock and madden us. if, in a word, beauty means something, yet we must not seek to interpret the meaning. If we glimpse the unutterable, it is unwise to try to utter it, nor should we seek to invest with significance that which we cannot grasp. Beauty in terms of our human meanings is meaningless.
--------------------------------------------------------------------------------------------------------------------------------------
参考译文
一个年轻人看到日落,由于无法理解和表达日落在他心中唤起的激情,便得出结论:日落处想必是通往遥远世界的大门。无论是谁,在强烈感受到美的时刻,心中都不禁油生一种遐想:我们似乎瞥见从另一个世界射向我们的一线光芒,那个世界不仅不同于我们这个世界,而且由于美感的强烈感染,在某些方面比我们这个世界更美好。虽然这光芒令人眼花缭乱,但它确实给予我们一种不曾经历和无法想象的美感和静谧的启示。这种美感和静谧是我们无法描述的,因为我们发明的语言是用来描述这个世界的含义,不能随便拿来去描述另一个世界。
不可否认,一切伟大的艺术都具有使人遐想到进入天外世界的
魅力。在某种状态下,大自然也有这种魅力。六月蔚蓝的天空总使人遥想一个更加蔚蓝的苍穹;美丽的落日总会引起一个更加绚丽的景象未及饱览便一闪即逝,并在消逝中给人留下不可名状的渴望和惆怅。如果这个世界不只是一个拙劣的恶作剧,如果人生不只是群星寒光中平凡的一闪,如果存在不只是对神秘事物的一种空虚的笑声,如果某种玄妙事物的暗示不是消化不良引起的邪恶情绪,也不是魔鬼为了捉弄我们,使我们发狂而送给我们的邪念,一句话,如果美有某种意义的话,我闪千万不要去阐明它的意义。如果我瞥见了只可意会不可言传的事物,企图把它说出来,那上不明智的;对于我们不理解的事物,我们也不应该去赋予它某种意义。用对我们人类有意义的词解释美是没有意义的。
我记得那美妙的一瞬;
在我的面前出现了你,
有如昙花一现的幻影,
有如纯洁之美的天仙。
在那无望的忧愁的折磨中,
在那喧闹的浮华生活的困扰中,
我的耳边长久地响着你温柔的声音,
我还在睡梦中见到你可爱的倩影。
许多年代过去了。
暴风骤雨般的激变
驱散了往日的梦想,
于是我忘却了你温柔的声音,
还有你那天仙似的倩影。
在穷乡僻壤,在囚禁的阴暗生活中,
我的日子就那样静静地消逝,
没有倾心的人,没有诗的灵感,
没有眼泪,没有生命,也没有爱情。
如今心灵已开始苏醒,
这时在我的面前又重新出现了你,
有如昙花一现的幻影,
有如纯洁之美的天仙。
我的心在狂喜中跳跃,
心中的一切又重新苏醒,
有了倾心的人,有了诗的灵感,
有了生命,有了眼泪,也有了爱情