Friday, May 30, 2008

Scrum & Football Analogy

By now, we have all heard about Agile software development methodology and its different flavors such as SCRUM, XP, DSDM etc etc.

I have been part of development teams using SCRUM methodology for last year and a half and I am learning more about agile concepts in every project using these techniques. The more I think about a project that is managed using SCRUM, I can't help but think about how similar this approach is to the way a football (American Football, not Soccer) game is played. Let me explain, here are the different aspects of both Scrum and Football that are very similar in nature.

  • The "First Down" in a football game is same as a "Sprint" in a Scrum project, Sprint = First Down.
  • In other words, End of Sprint = First down (10 yards is the objective for every down in football; End of Sprint/Iteration is the objective in Scrum)
  • End of Project (which usually consists of several Sprints) = Touchdown
How about the various meetings held in a typical SCRUM project? How do they relate to football terms?
  • Project Kickoff Meeting = Game Kickoff
  • Daily stand-ups = Huddle
  • Start of Iteration/Product Backlog = Line Of Scrimmage
  • Iteration Planning Meetings (IPM) - Pre-game meeting
  • Retrospective = Post Game Conference
Let's look at the SCRUM team member roles and how they are similar to a football team member roles.
  • Scrum Master = Head Coach
  • Technical Lead = Running back
  • Architect = Quarter back
Some of the other roles and artifacts that I haven't yet found a match are as follows:
  • Stakeholders
  • Developers
  • QA Testers = Referees?
  • Burn-down chart

Monday, May 26, 2008

ActiveMQ 5.1 Supports JMS Destination Monitoring and MSMQ Bridge

Apache ActiveMQ Version 5.1 release is out. It has some interesting new features for destination monitoring (via JMX), priority message ordering and a Microsoft Message Queue (MSMQ) to ActiveMQ Bridge with the new msmq transport component. Check out this news item on InfoQ about all the features supported by AMQ 5.1 release.

Thursday, May 15, 2008

Building Spring-Seam Hybrid Components For Web Applications

Spring and JBoss Seam frameworks provide different set of features for developing enterprise web applications. Is it possible to use these two frameworks together in web applications? This topic was the main focus of a recent article and a java community forum discussion on how the strengths of each of these frameworks can be used together.

I posted a news item on this topic on InfoQ. I am big fan of Spring and I have been using it for past 3 years. But I haven't used Seam framework yet. Any one using these frameworks together in their applications? If so, how did find integration? Are Spring and Seam complementary to each other?

Tuesday, May 13, 2008

Java EE 6 and EJB 3.1 look very much like Spring, Hibernate and Quartz

Java EE 6 (expected to be out late 2008 or early 2009) includes several interesting new features. EJB 3.1 specification will be released as part of JEE6 release.

Java EE 6 Features:

JEE6 will have, what it calls, Profiles offering different flavors of JEE services. Profile A is a lightweight version (Servlet, JSP etc), Profile B will include Profile A + EJB 3.1 Lite, JTA, JPA, JSF, and WebBeans, and Profile C is the "full platform" with Profile B features + JMS, JAX-WS etc.

EJB 3.1:

  • Optional Local business interfaces (where we can develop Local EJB components using only a bean class; not sure how this is different from what's in EJB 3.0)
  • EJB components in the web tier (package/deploy EJB components in a WAR w/o an ejb-jar)
  • Singleton Beans (one instance per application per JVM)
  • TimerService API

For more on EJB 3.1 features, check out this presentation by Kenneth Saks.

More and more I read about JEE6 and EJB3.1, they look very much like Spring and Hibernate. JEE expert groups finally gets it; what java developers really need from middleware framework instead of what the application server vendors want to offer. It's good to see that they are finally offering a modular server component model (so the customers can pick which Profile is the right fit to deploy their apps), Dependency Injection of objects other than EntityManager, and other features. WebLogic 10.3 and WebSphere are moving towards the same modular server architecture model approach.

I wonder what will Java EE 7 spec include, may be they will support Aspects and AOP as part of Java SE/EE specification (which Spring already does with AspectJ).

JUnit 4.4 - Hamcrest Asserts

I had to upgrade the JUnit version I have been using to version 4.4 in a recent project to get Spring/JUnit integration working with new testing features available in Spring 2.5 release (which make it easy to get a reference to any Spring bean w/o having to specifically load Spring application context). JUnit 4.4 also comes with Hamcrest testing framework which has several additional assert statements than what are there in plain JUnit.

I started using some of these new assert statements which are very BDD'ish in nature and make the test methods more readable on what we are asserting. We no longer have to struggle with the limited number of assert's that are available in JUnit.

Here is a good presentation that talks about the new features in JUnit 4.4 (additional assets, timeout, datapoints etc.)

Wednesday, May 7, 2008

JavaOne 2008 kickoff

JavaOne 2008 kicked off Tuesday and the general session by Sun was all JavaFX related (may be they should have called the conference JavaFXOne instead of JavaOne :).

I attended couple of SCA presentations, one by Jos and Tjis on using SCA and JBI together in enterprise applications and another presentation by Mike Edwards. Mike talked about the benefits of SCA, design, implementation, tools used for writing and deploying SCA components and services.

I posted a news item on InfoQ with a summary of these presentations.

Sunday, May 4, 2008

Getting ready for JavaOne 2008 conference

I will be attending JavaOne 2008 conference in San Francisco next week. I was there back in 2006, it was a great experience to expand IT professional network and also learn about all new and advanced technologies and frameworks in Java EE/ME/SE, SOA, Web 2.0 categories. JavaOne organizers have also posted a Conference Preview page on their site with details of session tracks and categories which is informative.

I will try to attend more sessions in SOA & Enterprise Integration track this year to see what all is happening in this area especially in the areas of SCA, ESB, and SOA Security. I am looking forward to conference.

Here is my tentative schedule:

Time Session ID/Title Speaker/Company
Tuesday , May 06
8:30 AM - 10:30 AM Sun General Session Java + YOU
10:50 AM - 11:50 AM TS-6887
Service-Oriented Architecture and Java™ Technology: Level-Setting Standards, Architecture, and Code
Steve Jones; Duane Nickull
11:30 AM - 8:00 PM Tuesday Pavilion Hours: 11:30 a.m. - 8:00 p.m.
11:50 AM - 12:10 PM Break between sessions
11:50 AM - 11:50 AM Lunch Served from 11:50 a.m. to 2:00 p.m.
12:10 PM - 1:10 PM TS-4871
SOA and 35 Million Transactions per Day: Mission Impossible?
Matthias Schorer
1:30 PM - 3:00 PM Sun General Session Java-Centricity: Leveraging Java Technology at the hub of your Digital Life
3:20 PM - 4:20 PM TS-5870
The Best of Both Worlds with Java™ Business Integration and Service Component Architecture
Jos Dirksen; Tijs Rademakers
4:20 PM - 4:40 PM Break between sessions
4:40 PM - 5:40 PM TS-6297
Migrating Intel IT to an Enterprise Service Bus-Based Service-Oriented Architecture
David Johnston; CJ Newburn; Kumar Shiv
5:40 PM - 6:00 PM Break between sessions
6:00 PM - 7:00 PM TS-5850
SCA: Flexible and Agile Comp! osition of Distributed Service-Oriented Architecture Applications
Mike Edwards
7:00 PM - 7:30 PM Evening Break
7:30 PM - 8:20 PM BOF-5150
Event-Driven Service-Oriented Architecture on the Java™ Platform with OSGi and Spring
Balamurali Kothandaraman; Takyiu Liu
8:30 PM - 9:20 PM BOF-5613
Jersey: RESTful Web Services Made Easy
Jakub Podlesak; Paul Sandoz
9:30 PM - 10:20 PM BOF-5205
All About the Sun Certified Enterprise Architect (SCEA) Exam
Mark Cade; Humphrey Sheil
W! ednesday , May 07
8:30 AM - 9:15 AM Oracle General Session Enterprise Application Platform
9:30 AM - 10:30 AM TS-5250
Asynchronous Ajax for Revolutionary Web Applications
Jean-Fran├žois Arcand; Ted Goddard
10:30 AM - 10:50 AM Break between sessions
10:50 AM - 11:50 AM TS-5918
Open-Source Service-Oriented Architecture with Service Component Architecture and Apache Tuscany
Mario Antollini; Jean-Sebastien Delfino
11:30 AM - 4:30 PM Wednesday Pavilion Hours: 11:30 a.m. - 4:30 p.m.
11:50 AM - 11:50 AM Lunch Served from 11:50 a.m. to 2:00 p.m.
1:30 PM - 2:30 PM TS-6029
It’s All About the SOA: RESTful Service-Oriented Architecture at
Sean Landis; Ian Robertson
2:30 PM - 2:50 PM Break between sessions
2:50 PM - 3:50 PM TS-5318
Dealing with Asynchronicity in Java™ Technology-Based Web Services
Gerard Davison; Manoj Kumar
3:50 PM - 4:10 PM Break between sessions
4:10 PM - 5:10 PM TS-5616
JSR 303: From a World of Constraints to Constrain the World
Emmanuel Bernard
5:10 PM - 6:30 PM Evening Break
5:30 PM - 6:15 PM AMD General Session The Role of the Microprocessor in the Evolution of Java Technology
6:30 PM - 7:20 PM BOF-5501
Java™ Champions BOF: The Latest Buzz, Highlights, and Panel Discussion
Calvin Austin; Harshad Oak; Manfred Riem
7:30 PM - 8:20 PM BOF-6211
Transactions and Java™ Business Integration (JBI): More Than Java Message Service (JMS)
Frank Kieviet; Murali Pottlapelli
Thursday , May 08
8:30 AM - 9:15 AM Intel General Session Innovations through Software
9:30 AM - 10:30 AM TS-6339
Top 10 Patterns for Scaling Out Java™ Technology-Based Applications
Cameron Purdy
10:30 AM - 10:50 AM Break between sessions
10:50 AM - 11:50 AM TS-6421
Mylyn: Code at the Speed of Thought
Mik Kersten
11:30 AM - 4:30 PM Thurdsay Pavilion Hours: 11:30 a.m. - 4:30 p.m.
11:50 AM - 11:50 AM Lunch Served from 11:50 a.m. to 2:00 p.m.
1:30 PM - 2:30 PM TS-5706
Service Component Architecture (SCA) and Java™ Platform, Enterprise Edition (Java EE Platform): Integration Inside
Ron Barack; Peter Peshev
2:30 PM - 2:50 PM Break between sessions
2:50 PM - 4:50 PM LAB-5500
Dynamic Service Composition with OpenESB: Compose a JavaOne&#8480 Conference Survey/Poll Application, Analyze Live Data, and Generate Real-Time Poll Reports
Tuhin Kumar; Rupesh Ramachandran
3:50 PM - 4:10 PM Break between sessions
5:10 PM - 6:30 PM Evening Break
5:30 PM - 6:15 PM Motorola General Session Dial in, Drive Deep: Using Motorola's Platforms to Reach Consumer and Enterprise Markets
6:30 PM - 7:20 PM BOF-5846
Developing Service-Oriented Architecture Applications with OSGi
Keith Babo ; Kevin Conner; Mark Little
8:30 PM - 9:20 PM BOF-5495
Untangling the Asynchronous Web
Tim Kimmet; Sangjin Lee
Friday , May 09
8:30 AM - 10:30 AM Sun General Session Extreme Innovation
10:50 AM - 11:50 AM TS-6048
Complex Event Processing at Orbitz
Doug Barth; Matthew O'Keefe
11:50 AM - 12:10 PM Break between sessions
11:50 AM - 11:50 AM Lunch Served from 11:50 a.m. to 2:00 p.m.
1:10 PM - 1:30 PM Break between sessions
1:30 PM - 2:30 PM TS-6050
Comparing JRuby and Groovy
Neal Ford
2:30 PM - 2:50 PM Break between sessions
3:50 PM - 4:10 PM Break between sessions
4:10 PM - 5:10 PM TS-6169
Spring Framework 2.5: New and Notable
Rod Johnson