Friday, February 29, 2008

It is All About the Approach

Being a pilot this video makes me chuckle a little. But at the same time , I don't know a pilot who hasn't had a rough landing during training or high cross winds or... This video reminds us that it still happen to the professionals.

While I'm not sure how this pilot found himself in this position. Experience tells me that it is all about the setup and approach on final which results in a well executed landing.

Working with software solutions it is the same... a well finished project is based on the approach. If you have early and often feedback, if you have tests which run often you will land safely. Iteration X is dependent on Iteration 0. Make sure you get Iteration 0 right! Then follow the check list!

Thursday, February 28, 2008

Paired Teachers (K-8)

Agile in the Classroom
Being involved in the community, I was at a school board meeting last night (for way too long, but that is another story). There was an interesting presentation. The school last year started a program referred to as "Teacher Leaders". It was a great presentation detailing the outcome of this program which is essentially highly skilled teachers which "pair" (my word not theirs) with other teachers on specific subjects to meet 2 objectives:
  1. Increase student learning
  2. Increase teacher teaching capability
Results of Agile in the Classroom
The results of the presentation were amazing and the whole room seem to get it. It was great that they brought empirical evidence to the table. They defined 4 levels of support for coaching a teacher on a new program, which are:
  1. Theory
  2. Demonstration
  3. Practice
  4. Peered Coaching
They took 2 teachers; Teacher A went through levels 1-3 which is the standard approach, while teacher B had all 4 levels, which included in classroom pair teacher sessions through peer coaching. What was great was the measuring stick... it wasn't the teachers it was the students. In classrooms with teacher A, students had a 35% proficiency on the subject matter. In classrooms with teacher B, students had a 95% proficiency rating. This was consistent with other studies in the field, but they wanted to test it themselves. Additional benefits included an increase in motivation and spirit of the teachers. There was an obvious excitement in the air when several teachers involved in the program shared their experiences.

Agile Converts
Members of the board shared their reluctance in approving the program, which mirrored that of software stakeholders hedging on paired programming. One board member was significantly against it. Now she is a total convert and is looking to see how to expand the program. The reason... The quality of the result. It turns out that pairing produces higher quality.

Monday, February 25, 2008

What is a calendar?

It is my intention to write a few posts on the need to focus IT on business solutions. I've got several posts in my head... All I need now is time. A situation today spurred me to post a comment on words and the meaning of words, which is critical for one person to understand another person in order to clearly provide a business solution.

It is 10pm... Do you know where your data is?

I have been a heavy user of google and it's products for some time. This is very interesting on its own since when Microsoft came out with Passport and HailStorm years ago... My response was... "heck NO!" you're not keeping all my data. It is interest, as they had some services but nothing significantly compelling to me. Yet, over the years google hasn't asked to store all my stuff... they didn't have a huge marketing campaign, yet some how they have all my data. I now use they're gmail, calendar, I use and share notebooks, I've used their payment capabilities, I blog on their site, I use their phone services through GrandCentral... they know everything about me. I came to this comparison and realization recently and well... I'm not sure if I am scared yet or not, but that is a subject for another post.

"What's in a name? That which we call a rose By any other name would smell as sweet." - Shakespeare
So on to the main point of this post. I have convinced several other partners to switch from yahoo group calendar to the google calendar. One of them was lost in how to get to this shared calendar so I proceeded to explain via email how the google calendar is used. This resulted in the following statement by me:
It is a little complicated to write about because there needs to be a distinction between a "calendar" of time and a "calendar" which represents a thread of interest through time :)
It made me reflect on how many every day terms we use in English are so abstract.

The essences of Chairness
If you ever read Plato, you know what I mean... The word chair means what you usually think it means. However as Plato puts it, what do you think of when someone says chair. Does it have 4 legs, or 3? Does it have a back to it? If you started picking it apart (remove a leg, etc.), at what point does it cease to be a chair? This isn't made to be too philosophical. The point is some times it is difficult for us to use an abstract term and worse, sometimes words are more abstract then we think they are. Where a chair could paint the same mental picture for 2 people, the concept of what is core to the essences of chairness is likely different.

The trouble with Users
Here in lies the trouble with users. There really isn't an issue with users. They mean what they said and they are paying the bills. However often they say calendar and they mean calendar of time and often a developer sees the bigger picture and sees the need for a calendar to represent a thread of interest. There are a number of issues at this point:
  1. The user and developer understand the words of the domain to have different meanings.
  2. Even, as often is the case, the developer is astute enough to realize that their is a disconnect, words do not exist to delineate between the concepts. This leads to:
    1. Lengthy discussions where the user is dumbfounded, where both parties are asking themselves why doesn't he get it!
    2. Frustration
It is all about context, context, context
It is just interesting how often this situation happens. Often the issue is context. Where context provides the meaning or at least a deeper meaning. But sometimes not. In the example of the calendar, it is tough to say that context would provide greater meaning. This issue is further exacerbated with specific domains where context does matter.

Several years ago, I worked on a life science project working with a lab on transcription profiling. During this engagement a couple of us worked with several top Ph.D.s in the field to help automate the process. It was necessary to understand the word "Allele" and its domain. Although there are aspects about an Allele which were easy to agree upon. The other aspects were dependent on who you talked to and on which day... it didn't take long to realize that it was really a matter of context which provided its mean.

Clarity of Thought
If there is a point to this current blog it would be this: In order to write software... even flexible software (in this case meaning software which can understand context of the user), then it is first necessary to understand concretely what is meant, as well as what are the other contexts of meaning. This may mean more in depth investigation on the part of the BA or developer, but it will pay off in dividends!

This provides some context around the value of Agile development. Closer and frequent communication with the user increases the likelihood of understanding what the user meant. Regular feedback by the user provides the opportunity to discover word meaning differences. The greater the number of users involved increases the likelihood of discovering more contexts. Often this is the reason for a number of "discovered" stories along the Agile path of development.

-- Happy Coding!

Monday, February 11, 2008

2008 Technology Predictions

So after a month of reading a number of articles making there 2008 predictions, I feel compelled to share my predictions. I have the added advantage which comes to those who procrastinate... however there isn't much new over the last month.

  1. Larger portion of the Java community will move towards Java 5 /6, taking advantage of more of the language changes.
  2. Increased adoption of groovy users
  3. Spring framework increases in use... leaving in their dust SEAM and Guice.
  4. Spring MVC and Webflow becomes the new Struts (from a popularity standpoint)
    1. It will come down to WebFlow and JSF
    2. It will be interesting to see what grails does to this prediction
  5. Late 2008 will have a number of negative news feeds on SOA.
    1. This will be geared around failure of large initiatives.
    2. It may be 2009... depends on the economy
  6. Flex use increases
    1. MSFT will start the get the RIA facts in an effort to take over this space.
  7. Vista will continue to have trouble
    1. It will be interesting to see what MSFT does when the XP isn't available for purchase any more.
      1. with the OEM ending in June 2008, I expect that MSFT will extend it... after a period of pain :)
  8. JBoss and OSS in general will increase in use.
    1. The economy will be the driver for this.

Tuesday, February 5, 2008

Java 6 Web Service Security Alert

This isn't how I envisioned starting this new blog...

It appears that there is a fresh security warning from Sun regarding security issues with xml parsing in Java 6 (update 3 or earlier). It does not affect Java 5 or eariler.

Details from Sun:
http://sunsolve.sun.com/search/document.do?assetkey=1-66-231246-1

Details from SecLists:
http://seclists.org/bugtraq/2008/Feb/0007.html