Sunday, December 28, 2008

CodeMash 2009 Conference Next Month


I will be attending CodeMash 2009 Conference next month on January 7, 8 and 9. On the first day of the conference, there will be PreCompiler sessions with Code Jam sessions and workshops. The main conference schedule and sessions look very interesting. One thing I noticed about the conference sessions and the speakers is that this is one of those no fluff conferences where the speakers and attendees are IT geeks who have practical knowledge and experience of the topics they are presenting on, which should result in a rewarding experience to the attendees.

Some of the sessions I am planning on attending are listed below:

Day 1:

  • Value Stream Mapping Workshop (Host: Mary Poppendieck)
  • Kanban 101 (David Laribee)
Day 2:
  • Programming in Scala (Speaker: Venkat Subramaniam)
  • RIAs with Java, Spring, Hibernate, BlazeDS, and Flex (Speaker: James Ward)
  • Dynamic Languages and the JVM (Speaker: Nathaniel Schutta)
  • Thrashing (Speaker: Mary Poppendieck)
  • Functional Concepts for OOP Developers (Speaker: Bryan Weber)
Day 3:
  • Grease, a Parallel Systems Architecture (Speaker: Edward Vielmetti)
  • Language Oriented DDD (Speaker: David Laribee)
  • Executable Documentation with easyb (Speaker: Andrew Glover)
All-in-all, I am looking forward to meeting other passionate Java, .NET, Python and Ruby developers there and network with regional user group leaders.

If anyone is attending the conference, let me know. We can get together for a cup of coffee or brew.

Sunday, December 21, 2008

Application Architecture Trends presentation at Detroit Java User Group meeting

I recently gave a presentation on Application Architecture Trends at Detroit Java User Group meeting on Wednesday evening. The presentation title is "Application Architectures - Where We Have Been, Where We Are Going". The turnout was pretty good (about 20 people) and the presentation went very well. There were lot of great questions and discussion on the items I talked about in the presentation like AOP, Custom Annotations and OSGi. Here is a list of the new technology trends I covered in the presentation:

  • Dependency Injection (includes a demo on a Data Access Object using Spring DI to inject the JEE resources like Data Source, Entity Manager, and Transaction Manager)
  • Aspect Oriented Programming (includes 2 demos, one on Architecture Rules Enforcement using AspectJ & AJDT and another on Profiling using Spring AOP)
  • Annotations
  • Custom Annotations (includes a demo on a Custom Annotation for Object Caching using Spring AOP and EHCache)
  • Spring Portfolio
  • Spring Core
  • Spring AOP
  • Spring Security
  • Spring MVC/ Spring WebFlow
  • Persistence
  • JDBC v. Hibernate v. JPA
  • Transaction Management
  • Spring JTA
  • Web Services, Async Messaging & ESB's
  • Java As a Platform
  • Dynamic Languages (Groovy, JRuby, Scala)
  • Domain Specific Languages (DSL's)
  • Internal DSLs
  • External DSLs
  • Deployment
  • OSGi
  • Distributed Computing
  • Concurrent Programming (support in JDK)
  • Cloud Computing
  • Virtualization
  • Database Layer
  • Distributed Data Storage Frameworks
  • Other Trends
  • Web 2.0
  • RIA/RCP Applications
  • Conversational Web / Batch Frameworks
  • What's next for J2EE?
  • Java EE 6 (JSR-316)
  • - Profiles
  • JPA 2.0 (JSR-317)
  • - Criteria Expression Support
  • EJB 3.1 (JSR-318)
  • - Deploy EJB's in WAR files (no need for EAR files any more)
  • Spring 3.0
  • - REST Support
  • - Support for EJB 3.1

The presentation slides are available here.

Erik has blogged about this meeting and my presentation.

This presentation is also accepted for the upcoming No Fluff Just Stuff (NFJS) Symposium in Milwaukee in February (Feb 27 to March 1; checkout out the full conference schedule which has great speakers talking on very interesting topics).

Thursday, November 27, 2008

QCon San Francisco 2008 Conference - Tutorials

I attended QCon San Francisco conference last week. The conference schedule included tutorial sessions before the main conference. There were several tutorials on topics like:

I attended Certified Scrum Master (CSM) hosted by Martine Devos from Object Mentor Project Management team. Martine is an excellent CSM Trainer. The tutorial class was very educational and informative for people who are in technical management to be come Agile Project Managers. The class was interactive that allowed students to discuss with each other and rest of the group in serveral real-world project management scenarios.

Some of my favorite parts of the class are:

  • Scrum From Hell
  • Estimation Quiz

Martine is a great instructor. I recommend her class for any one who wants to learn how to be an Agile Project Manager.

On day 2 of the conference, I attended an ad hoc presentation by Ralph Johnson (one of GOF Design Patterns authros) on Parallel Computing Design Patterns.


Friday, November 7, 2008

QCon 2008 conference

The second QCon San Francisco (QCon SF 2008) conference is fast approaching us. The conference is held at Westin SF Market Street from November 19 - 21.



The schedule includes tracks on Domain Driven Design (DDD), Domain Specific Languages (DSLs), Service Oriented Architecture (SOA), REST Web Services, Design and Architecture (with several case-studies presentations), Emerging Technologies, and Agile Methodologies.

I was at the conference last year. It was a great experience. I am looking forward this year's conference. With several interesting sessions, most of them conflicting with each other, it will be tough to pick which session to attend.

Friday, July 4, 2008

Domain Driven Design and Development In Practice - Article

Domain Driven Design (DDD) is about mapping business domain concepts into software artifacts. Most of the writings and articles on this topic have been based on Eric Evans' book "Domain Driven Design", covering the domain modeling and design aspects mainly from a conceptual and design stand-point.

I recently wrote an article on Infoq to cover the domain modeling and design from a practical stand-point on how one would go about taking a domain model and actually implementing it. It looks at the guidelines, best practices frameworks and tools that technical leads and architects can use in the implementation effort.

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.