low level programmer

Main | Next page »
星期二 四月 14, 2009

好文推薦 - 用例之父称敏捷需要更加明智

reference

http://www.infoq.com/cn/news/2009/04/Agile-Get-Smarter
http://www.infoq.com/news/2009/04/Agile-Get-Smarter

description

覺得很喜歡這篇文章, 所以內容也備份起來.

content

Posted by Shane Hastie on Apr 03, 2009 03:14 AM

Posted by Shane Hastie on Apr 03, 2009 03:14 AM

At the Software Education SDC conference in Melbourne, Australia, and Wellington, New Zealand, last week, Ivar Jacobson, author of the original work on Use Cases, the Unified Modeling Language and the Rational Unified Process, said that Agile development needs to “Get Smart”.

He stated that the information technology industry is very fashion conscious, having a tendency to latch onto silver bullets, and listed the following examples:

  • Fifteen years ago it was all about OO
  • Ten years ago it was about components, UML, Unified Process
  • Five years ago it was about RUP and CMMi
  • Two years ago it was about XP
  • Today it is about Scrum

All have good elements – but none is what we need, what we need to do is to Work Smarter. He says “Being Smart is an evolution of being Agile”:

  • Agile means being flexible and adaptable
  • Agile provides simple/lightweight starting points
  • Being Smart is knowing when to go beyond agile
    • Knowing when to follow the rules and when to break them
    • Knowing when to be consistent and when to change
    • Knowing when to grow and when to shrink

According to Jacobson “Smart is Agile++”. He continued to give examples of a number of smart (and unsmart) practices and approaches he has recognized over the years. Some of the Smart and Unsmart practices he identified are:

  • Unsmart with People – viewing processes and tools as more important than people
  • Smart with People – recognizing and understanding that software is built by people, not with processes and tools!

    “A fool with a tool is still a fool but a dangerous fool”
  • Unsmart with Teams – Teams organized into stove-pipe groups with separate responsibilities (requirements, analysis, design etc)
  • Smart with Teams – Cross functional, small (ideally 10 or less people) self organizing teams with the right mix of skills to undertake the work.

    “A software team is like a sports team with all needed competencies to win”
  • Unsmart with Projects – Trying to follow a waterfall approach
  • Smart with Projects – Build a “skinny system” to demonstrate that you have eliminated all the critical risks, then add more capabilities on top of that skinny system as needed.

    “Think big, build in many steps”
  • Unsmart with Requirements – Trying to define all the requirements up front (a constant in software development is that requirements WILL change)
  • Smart with Requirements – Base early decisions on lightweight requirements and detail as and when needed – requirements are negotiable and priorities will change

    “Design your project for requirement changes”
  • Unsmart with Architecture – no architecture is as bad as trying to design everything up front
  • Smart with Architecture – just enough architecture to build the skinny system, architecture must result in executable code

    “Start to build a skinny system, add muscles later in small steps”
  • Unsmart with Testing – having two classes of people – developers and testers. Unsmart projects testers are “the cleaners in the software world” – picking up the mess left by the developers
  • Smart with Testing – the whole team is jointly responsible for quality and testers are first-class citizens

    “Whatever you do, you are not done until you have verified that you did what you wanted to do”
  • Unsmart with Documentation – slavishly filling in a document template because some process rule says it has to be there
  • Smart with Documentation – recognize the “law of nature: people don’t read documents”. Document only what is absolutely needed

    “Focus on the essentials – the placeholders for conversations – people figure out the rest for themselves”
  • Unsmart with Process – continuously latching on to the latest fad, and trying to change everything you do in response to the newest rule book
  • Smart with Process – Don’t throw out the baby with the bathwater:

    1. Start with your existing way of working
    2. Find the pain points
    3. Change one practice at a time

    “People don’t read process books, so focus on the essentials, people figure out the rest for themselves”

 The key element to becoming Smart is to focus on the people, as Jacobson says, and “it all comes down to you”.

 

星期四 二月 12, 2009
星期三 十二月 24, 2008
星期三 十一月 05, 2008

好文推薦 - ScalableIcon Overview & 堅持與固執

ScalableIcon Overview
堅持與固執

星期六 十一月 01, 2008

好文推薦 - Performing Inserts, Updates, and Deletes (with NetBeans and JSF1.2)

最近常聽到 .Net 的 CRUD 和 DB 橋接做得多快又多快...
不以為然之餘, 剛好看到有這篇文章.
Performing Inserts, Updates, and Deletes

星期日 十月 26, 2008

好文推薦 - Ajax waiter & Add EL in project & Thread pool & caching, parallelism and scalability

Ajax Waiter
Adding EL support on your projects
Creating a NotifyingBlockingThreadPoolExecutor
Caching, Parallelism and Scalability
Using JSF and Flex Components Together

星期三 九月 24, 2008

好文推薦 - 1.API Design-. 2.How to contribute-. 3.Developer Challenge

沒時間看, 可是感覺都是不錯的文章, 先記著.
Joshua Bloch: Bumper-Sticker API Design
You can contribute, and here’s how
Developer Challenge

星期一 九月 22, 2008

好文推薦 - JSR 310: A New Java Date/Time API

這是希望在 jdk 7 能換掉 java.util.Date 與 java.util.Calendar 的 API.
JSR 310: A New Java Date/Time API

星期六 九月 20, 2008

好文推薦 - Open source Java projects: Java Binding for OpenGL (JOGL)

似乎是一個有 native 支援的專案, 記錄一下以後看:
Open source Java projects: Java Binding for OpenGL (JOGL)

星期五 八月 29, 2008

好文推薦 - Scalability Worst Practices

Scalability Worst Practices

星期三 八月 20, 2008

好文推薦 - My Ideas for Java Closures

My Ideas for Java Closures
Nobody Thinks They're An Enterprise

星期三 八月 13, 2008

好文推薦 - Simple Dependency Injection with ServiceLoader in JDK 6

Simple Dependency Injection with ServiceLoader in JDK 6

附贈
How Can Java Developers Stay Relevant?
文章 書 和工作.. 看不完 眼睛都花了 @.@

星期二 八月 12, 2008

好文推薦 - Capability Pattern

The Capability Pattern - Future-Proof Your APIs

星期二 七月 29, 2008

好文推薦 - How to load classes from JAR or ZIP?

蠻有趣的. 不過注意最後他仍建議使用 URLClassLoader..

How to load classes from JAR or ZIP?

星期三 七月 23, 2008

好文推薦 - javaperformancetuning tips

其實有時候會知道Java一些用法是有"眉角"的,
就是你用的不好程式就會出問題, 其中就是效能問題.
結果上網一查 java performance 就出現這個網站.

Java Performance Tuning

以及比較新的 Java Performance Tuning: A Conversation With Java Champion Kirk Pepperdine