My Stuff

2010 Conferences

OSGi DevCon @ JAX London

February 23 - Keynote titled OSGi in the Enterprise: Agility, Modularity, and Architecture’s Paradox

EclipseCon

March 22 - 25 - Tutorial on Modular Architecture

Über Conf

June 14 - 17 - Sessions titled Turtles and Architecture and Patterns of Modular Architecture

Catalyst

July 26 - 30 - Two sessions on rich mobile applications and one on agile development. Half day tutorial on software process improvement.

Tweets @ Twitter

Gearing up for lots of conversation today. Mobile dev., app arch., and some questions for @springrod. Plus a video shoot. #cat10 22 hrs ago

Great feedback on RMA sessions at #cat10 today. Lot's of fun. Look forward to more interaction on the topic tomorrow (and tonight perhaps)! 1 day ago

.@atmanes Did I say "process"? Meant "progress". in reply to atmanes 1 day ago

RT @dalmaer RT @lukew: Comic: the real reason you should design for Mobile First! http://bit.ly/bhKSV6 #thanksron 1 week ago

anyone know if current webOS version (1.4.1.1?) fixes the aGPS problem on Verizon? Does Google Maps lockin the location efficiently? 1 week ago

LinkedIn Profile

The opinions expressed on this site are my own, and not necessarily those of my employer.

All Blog Posts


Here are a list of links, along with some teaser text, of all my posts to date. There have been 134 posts since July 22, 2007.

Farewell Blog, Hello POMA

Posted on May 7, 2010 under Development, General, OSGi

As the saying goes…all good things must end. As of today, my blog is shutting down!
I do intend to leave all content on-line so you’ll always be able to see a list of all 134 posts, but there won’t be any new posts for the foreseeable future. I’d like to thank everyone that has taken [...]

Ecosystems, Modularity, & OSGi

Posted on May 3, 2010 under Industry, OSGi, Platforms

Recently, I questioned whether OSGi and modularity would succeed in penetrating the enterprise. But what I really meant to question is whether OSGi will have the disruptive impact of which it’s capable. I asserted that if OSGi does succeed, it won’t be based on the technical merits of OSGi. It’ll be because of something else. [...]

OSGi Perspectives

Posted on April 28, 2010 under Architecture & Design, Java, OSGi

It seems my recent post on OSGi has ruffled a few feathers. I’ve also received a few personal e-mails suggesting that I have missed the mark because OSGi is a significant component of the next generation application platform. Major vendors such as IBM are building OSGi into their products, and other leading [...]

The Exciting Enterprise

Posted on April 26, 2010 under Agile, Development

Developing enterprise software is hard work. Bureaucracy. Large teams. Legacy systems. The list of challenges is immense. But enterprise development can also offer tremendous opportunity and reward. It can even be fun! I hope that at some point, you have the opportunity to experience this feeling.
The Exciting Enterprise
I worked here once. In the exciting enterprise. [...]

Granularity: Architecture’s Nemesis

Posted on April 22, 2010 under Architecture & Design, Development, OSGi

Granularity is the extent to which a system is broken down into it’s behavioral entities. Coarse-grained entities tend to be richer in behavior than fine-grained entities. Because coarse-grained entities do more, they tend to be larger than fine-grained entities, and are easier to use. In general, a fine-grained entity is more reusable than [...]

Complexity: Essence and Accidents

Posted on April 19, 2010 under Architecture & Design, Development, Java, OSGi

I’d like to take a short moment to offer an additional perspective to my discussion on OSGi: Complexity is NOT the Problem. I believe this perspective adds clarity to that previous discussion, as well. All initiated thanks to a tweet, which summed up the situation in much less than 140 characters.
So over the weekend, I [...]

OSGi: Complexity is NOT the Problem

Posted on April 15, 2010 under Architecture & Design, Development, OSGi

The editors at SD Times have proclaimed that OSGi is too complex. Unfortunately, they miss the mark, and the following statement taken from the article is misleading.
We believe that OSGi, rather than simplifying server application development, has actually made it more complex, and there aren’t sufficient benefits to justify the added [...]

OSGi - Feast or Famine?

Posted on April 12, 2010 under Architecture & Design, Development, Industry, OSGi

I want to be careful here, but also very clear - I advocate OSGi and modularity, though am concerned about its future. In some circles, OSGi is hailed as a disruptive technology; in others, it lives in relative obscurity. There are some indications that adoption is growing, and possibly at some point, it’ll catch like [...]

A Badge of Honor

Posted on March 16, 2010 under Development

Often times, I hear folks exclaim that they’ve been on “40 development projects over the past 10 years.” Or, “70 projects spanning a 20 year career.” They say this as if it’s some badge of honor. But I’m not so sure that it is.
Of course, there is value in widespread project exposure. Gaining experience [...]

Cost: Mac or PC? A Look at TCO!

Posted on March 11, 2010 under Technology

I’ve owned Macs for about four years now. I use them daily. One of the biggest complaints I hear surrounding Macs is that they’re more expensive than their PC counterparts. This recent article in CIO examining total cost of ownership (TCO) for businesses using Macs left me wondering. For personal use, are Macs really that [...]

Agile Animations - Big Teams

Posted on March 8, 2010 under Agile, Development


Architecture Lives Here

Posted on March 4, 2010 under Architecture & Design, Java, OSGi

Last week at OSGi DevCon, I attended Peter Krien’s Advanced OSGi tutorial. The tutorial focused on OSGi services, and I had just come off a rather lengthy e-mail discussion with Peter on a similar topic. So this was pretty good timing. I want to share with you one aspect of the discussion, and its relationship [...]

OSGi DevCon Slides

Posted on February 26, 2010 under Architecture & Design, Java, OSGi

After the OSGi DevCon keynote, I had a few folks stop by and ask me for the slides. They are now available on slideshare. Usually, when browsing the slides without discussion, the lack of context can cause some confusion. So if you have any questions regarding the content, please feel free to reach out. Enjoy!
OSGi [...]

OSGi DevCon Preview

Posted on February 17, 2010 under Architecture & Design, Java, OSGi

I’ll be at OSGi DevCon next week, having been given the opportunity to present the keynote session on Tuesday. The conference is co-hosted with JAX London. I thought I’d take a moment before jumping on the flight to offer a preview of what I’ll be speaking about.
The Cost of Complexity
The title of the session is [...]

Agile: The New Era

Posted on February 10, 2010 under Agile, Development

It’s housecleaning time again, and like last time, I stumbled across an article I wrote back in 2006 that I don’t believe ever reached publication (at least, I don’t think it did…how am I expected to remember what I did in 2006?). For the most part, I’ve left it in its original state, except that [...]

Small Things Matter

Posted on February 3, 2010 under Agile, Development

Story of the Concorde
On July 25th, 2000, flight 4590 crashed. It was the first, and only, crash of the famed Concorde. Eventually, it would lead to retirement for the amazing aircraft. Investigators spent countless hours poring over the wreckage, and placed blame on a piece of runway debris that slashed the tire. A piece of [...]

3 Pillars of Architecture

Posted on January 27, 2010 under Agile, Architecture & Design

I’ve spent some time thinking a bit more deeply about a few of my recent posts on software architecture, and have come to the following revelation.

Architects architect architecture!
Don’t let the triviality of this statement undermine its depth. While each of the three words are variations of the same thing, each have different contextual meaning. Let’s [...]

Update on Java Modularity

Posted on January 22, 2010 under Architecture & Design, Java, OSGi

For those that follow this blog, but not the APS blog, I’ve just published a synopsis of modularity on the Java platform. With a lot of momentum continuing to build around OSGi, we’re still in a state of limbo surrounding a standard module system on the Java platform. Some might argue that OSGi has already [...]

Developer, You Have a Voice

Posted on January 15, 2010 under Development, Industry

I’ve been thinking a bit more about the list of disruptive technologies on Richard’s list, and then I watched Dan Pink’s TED talk on the surprising science of motivation. There must be some relationship between the list, which is comprised of almost all open source software products, and Dan’s assertion that the 20th century reward [...]

Fun With Modules

Posted on January 12, 2010 under Architecture & Design, Development, OSGi

Tight coupling between modules is a bad idea, and the worst form of coupling is cyclic dependencies between modules. Fortunately, there are a few techniques we can use to break the cycles. They are Callback, Escalation, and Demotion, and I’m going to walk through some examples that show each of them in action.
Then, once the [...]

A New Year’s Declaration

Posted on January 5, 2010 under Architecture & Design, Java, OSGi

2010 is going to be a big year for modularity on the Java platform. So based on recent industry trends, and as momentum continues to build around modularity on the Java platform:
I hereby officially declare 2010 as the year of modularity on the Java platform.
So that’s a relatively silly statement, and I really don’t have [...]

Back to the Future

Posted on December 30, 2009 under Architecture & Design, Java, OSGi, Platforms

Thanks
This is my last post of the year, and I want to take a moment to thank everyone that spends their precious time reading my long-winded entries. In 2009, I saw a four fold increase in blog traffic over 2008, and December 2009 saw a five fold increase in traffic over January 2009. Out of [...]

OSGi DevCon Keynote

Posted on December 28, 2009 under General

I’m excited to be given the opportunity to present the keynote at OSGi DevCon London on February 23, 2010. The event is hosted in conjunction with JAX London. The sessions for the conference look great, with a great lineup of speakers and 15 sessions, including two in-depth tutorials by Neil Bartlett and Peter Kriens, devoted [...]

That Rotting Design

Posted on December 21, 2009 under Agile, Architecture & Design, Java, OSGi, Platforms

Note: This is a re-post, with slight modifications, from an entry in October 2007. And now, two years later, we’re just about there! For the abridged version of this post, focus on the text in bold. You can see the original version here.

Design Rot
We’ve all experienced that sinking feeling when maintaining a piece of crappy [...]

Top 5 Essays You Should Read

Posted on December 17, 2009 under General

Certainly, there are many landmark books in software development that have shaped our industry. Design Patterns: Elements of Reusable Object-Oriented Software (the GOF book) is one really good example. Unfortunately, a good share of people don’t have the opportunity to read some of these great works because, well…it can get expensive pretty quickly stocking a [...]

Architecture All the Way Down

Posted on December 15, 2009 under Agile, Architecture & Design, Development, OSGi, SOA

In Turtles and Architecture, I talked about how important it is that we “architect all the way down”. It helps increase transparency and understanding between developers and architects by emphasizing a lot of the middle ground that noone ever seems to focus on. It’s just another reason why modularity is so important. I used the [...]

The Secret Sauce

Posted on December 8, 2009 under Agile, Development

All too often, software process improvement initiatives fail. In a recent post discussing SEMAT, Ralph Johnson provided some words of wisdom that serve as a wonderful guide to any team about to embark on that much vaunted software process improvement initiative.
The state of the practice in software development is pretty dismal. Some groups do a [...]

The Enterprise is Getting Its OSGi

Posted on December 4, 2009 under Architecture & Design, OSGi

There have been a few folks who believe that OSGi isn’t something that enterprise developers want. I’ve heartily disagreed with this, and have stated that the enterprise wants it’s OSGi. In The Two Faces of Modularity and OSGi, I stated:
While there is some dispute over whether vendors will expose the virtues of OSGi to the [...]

Applied Modularity - Retrospectives

Posted on December 3, 2009 under Agile, Architecture & Design, Java, OSGi

We’ve completed our four part series on Applied Modularity, and I wanted to put a final wrap on the posts by highlighting a few things that may not be obvious. First, a brief review on the series.

In Part 1, we introduced the sample application and applied PhysicalLayers pattern to separate our logical layers out into [...]

Applied Modularity - Part 4

Posted on November 30, 2009 under Agile, Architecture & Design, Java, OSGi

In part 3, we applied the SeparateAbstractions pattern so that we could independently manage the two different AuditFacade interface implementations. The result was the module relationships shown at right (click to enlarge). The code can for this version of the system can be found in the SeparateAbstractions project. Also, be sure to check out Part [...]

Applied Modularity - Part 3

Posted on November 19, 2009 under Agile, Architecture & Design, Java, OSGi

In Part 1, we introduced the system, and broke each layer out into separate modules. In Part 2, we applied two refactorings using two different modularity patterns - AbstractModules and AcyclicRelationships. But we were still left with a problem, which we’ll solve here.
Fourth Refactoring
After the third refactoring, we were left with the modules shown at [...]

Applied Modularity - Part 2

Posted on under Agile, Architecture & Design, Java, OSGi

See Part 1 for an overview of how we got started. In this post, we’re going to take the modularization of our application a step further. We’re going to apply two refactorings using two different modularity patterns - AbstractModules and AcyclicRelationships. First, we’re going to separate the bill and audit functionality out into separate modules [...]

Applied Modularity - Part 1

Posted on November 16, 2009 under Agile, Architecture & Design, Java, OSGi

This is my first in a series of posts that shows how we can modularize Java applications today. A few notes before we get started. First, the examples are all core Java, with no OSGi. I’ll explain why in just a moment. Second, I’ve applied these techniques on real projects, so I know that they [...]

OSGi Adoption Increasing?

Posted on November 10, 2009 under Java, OSGi

Check out this graph obtained by searching for OSGi job trends on indeed. It’s evidence that interest in OSGi is increasing. That’s a pretty significant spike over the past two years. While it represents only a fraction of overall Java jobs, it’s refreshing to see that folks recognize the benefits of modularity (here’s an example). [...]

Agile Architecture Deck & Code

Posted on November 5, 2009 under Agile, Architecture & Design, Development, Java, OSGi

Here’s my Agile Architecture - Patterns & Technology slide deck (bottom of this post) that I presented at SpringOne2GX and OOPSLA. Thank you to all who attended, and for providing such positive feedback. I’ve also uploaded the code samples used to show the modularity pattern examples found toward the end of the presentation. The code [...]

Turtles and Architecture

Posted on November 3, 2009 under Architecture & Design, Development, OSGi

The story of software architecture reminds me of the following story.
“A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At [...]

Question on Module Design

Posted on October 30, 2009 under Architecture & Design, Java, OSGi

Like last year, in my Agile Architecture - Technologies and Patterns session at SpringOne2GX, I asked the attendees the same three questions surrounding class, package, and module design. This year, I had roughly 80 folks attend the session, and here is the rough breakdown of the hands shown after each of the questions.

How many spend [...]

OSGi Survey Results

Posted on October 22, 2009 under Architecture & Design, Java, OSGi

Update (10/23/09): There’s been some interest by folks in seeing the details for the free form questions (Question #5 and Question #10). Here’s the raw data, exported directly from the survey. These are each PDF documents.
Download response to Question #5 on OSGi frameworks currently being used and evaluated and download response to Question #10 on [...]

2nd Annual OSGi Survey

Posted on October 14, 2009 under Architecture & Design, Java, OSGi

Calling all Java Developers, please take the 2nd Annual OSGi Survey!
Last year, I conducted a survey to gauge industry acceptance, adoption, and understanding of OSGi. I posted a summary of the results on my site with more detail on the APS Burton Group blog. With SpringOne2GX approaching in less than one week, I decided to [...]

The Use/Reuse Paradox

Posted on October 7, 2009 under Agile, Architecture & Design, OSGi

There are certain paradoxes that create conflict when designing software systems. The paradoxes result in opposing forces that are counterintuitive, and require further examination to more fully understand how the tension can be resolved. Here, I explore the tension between use and reuse. Certainly there are others, too. What software development paradoxes have you encountered?
Use [...]

Lean and Kanban Collection

Posted on October 2, 2009 under Agile, Development

For those of you interested in Lean and Kanban, but not much knowledge yet, it can be tough filter the noise and find information explaining what they are and how they might be different from what you’re already doing (agile, Scrum, etc.). Since top 10 lists are rather passé, I’ve gone the whole nine yards [...]

Duct Tape Programming

Posted on September 25, 2009 under Agile, Development

Joel tells the story of The Duct Tape Programmer, and Uncle Bob offers his response. Now these are two pretty smart guys who know a lot about software development. But when we receive fundamentally different messages from a couple of industry luminaries like Joel and Uncle Bob, we’re left wondering - “Who is right? Who [...]

Agile Architecture, Lean Principles

Posted on September 22, 2009 under Agile, Architecture & Design, Development, OSGi

Most of my discussions surrounding agile architecture have been focused on exploring how modularity helps increase architectural agility. I claim that modularity is a required (and to this point, missing) aspect of agile architecture. The basis for this claim follows:

Architecture is design, but not all design is architecture (ala Booch).
Design is architecture if the design [...]

Modularity & Architecture

Posted on September 16, 2009 under Agile, Architecture & Design, Development, Java, OSGi

I recently wrote about eliminating architecture, and there were a few comments, especially by folks on JavaLobby, who thought I had my head in the clouds. Too much theory. Too many abstract concepts. Not achievable in a real world development scenario. That I’m making a play on words. Let’s take another angle.
Defining Architecture
There are numerous [...]

Agile Architecture Presentation

Posted on September 11, 2009 under Agile, Architecture & Design, Development, OSGi

The slide deck for my upcoming presentations at SpringOne 2GX, Agile Development Practices, and OOPSLA is complete. This presentation doesn’t spend much time talking about the “softer” side of agile architecture. I don’t make silly statements about avoiding the ivory tower, delivering solutions that work, or embracing change. These are given! I intentionally avoid the [...]

Eliminate Architecture

Posted on September 8, 2009 under Agile, Architecture & Design, Java, OSGi

I believe:
The best way to deal with architecture is to eliminate it.
Architecture’s Goal
Let’s start at the beginning. First, by defining architecture. Second, by understanding the goal of architecture. I’ll offer two perspectives, one from Fowler and the other from Booch. First, the Fowler statement.
In most successful software projects, the expert developers working on that project [...]

Modularity Pattern - Manage Relationships

Posted on September 2, 2009 under Architecture & Design, Development, Java, OSGi

Recently, I posted an entry introducing 19 patterns for modularity. The first of these patterns was ManageRelationships. ManageRelationships is a simple pattern stating that we should design module relationships. I categorize this as a base pattern, meaning it’s a prerequisite pattern for many of the other patterns in the list. For example, the Dependency Patterns [...]

Conclusion of the Stars

Posted on August 28, 2009 under Agile, Development

Yesterday’s conclusion of Programming with the Stars at Agile 2009 was an awesome event. A huge thank you to Jeff Nielsen and Joshua Kerievsky for coordinating the event and pulling together the great list of judges and contestants. A huge thank you to the judges and contestants, as well. All made quite a commitment to [...]

Agile 2009 - Day 3

Posted on August 27, 2009 under Agile, Development

After a great first day, day three at Agile 2009 is a wrap. I have some general observations about the conference, but I’ll save those until next week to offer an overall recap. I missed out on most of Day 2 due to a pretty full meeting schedule. I was hoping Day 3 for me [...]

Stars & Craftsmanship

Posted on August 25, 2009 under Agile, Development

The first day of Agile 2009 is in the books. While it’s great that the conference is packed with amazing sessions, it also means that it’s not possible to take it all in. Today’s highlights for myself included Programming with the Stars and the Software Craftsmanship tutorial led by UncleBob.
The Stars contestants did a great [...]

Modularity by Example

Posted on August 13, 2009 under Agile, Architecture & Design, Java, OSGi

There are lots of benefits to modularity, some of which I discussed when introducing modularity patterns. But here’s a simple example, which serves as a prelude to some upcoming posts explaining a few of the patterns.
In the diagram at right (click to enlarge), the top left quadrant shows a sample system with a relatively complex [...]

Agile Architecture at Upcoming Conferences

Posted on August 11, 2009 under Agile, Architecture & Design, Development

 
This fall, I’ll be speaking at a few conferences on agile architecture. Interestingly, a lot of the ideas expressed in these talks are not new to me. I gave a session titled From Code to Architecture at the now defunct SD Expo back in 2006 (give or take a year). Later that year, I gave [...]

Modularity Patterns

Posted on August 5, 2009 under Architecture & Design, Development, Java, OSGi

In The Two Faces of Modularity & OSGi, I talked about the OSGi runtime and development models. The development model has two facets - a programming model and design paradigm - that impact how organizations will use OSGi to build more modular applications.
In Reuse: Is the Dream Dead, I talked about the failed promise of [...]

Language Type Systems

Posted on July 28, 2009 under Development, Java, Ruby

All programming languages have a type system. Typically, we classify these type systems as either static or dynamic. A shift that’s taking place is to include type inference engines within a programming language that allows the developer to realize the safety benefits of static typing and the flexibility and expressiveness benefits of dynamic typing. I [...]

The Project Date - Kill It!

Posted on July 21, 2009 under Agile, Development

Tom DeMarco recently published an article in IEEE Software suggesting he may have been wrong in stating that metrics are a requirement for successful software development.
He questions his timeless statement, “You can’t control what you can’t measure”, realizing that control is not the most important aspect of a software project.
But there was a small [...]

When Bad is Good

Posted on July 17, 2009 under Agile, Development

A thought on a dreary Friday. There are two types of software projects - those that go well and those that do not. Typically, we think of those projects that go well as successful, and those that go poorly as failed. But it’s not quite that simple. What matters most is the point at which [...]

Agile Transitions - BANG!

Posted on July 14, 2009 under Agile, Development

A while back, I posted a blog summary of David Anderson’s thoughts on enterprise Agile transition initiatives. In general, big process improvement efforts really don’t work all that well. I’ve experienced this in many cases, as well. I touched on it briefly in a blog post where I stated that
Large process improvement efforts typically [...]

Reuse: Is the Dream Dead?

Posted on July 8, 2009 under Agile, Architecture & Design, Development, OSGi

Reuse is software development’s unattainable panacea. The ability to compose systems from reusable elements has long been our achille’s heel.  We want reuse so badly, yet our failures are spectacular. Almost all major technology trends of the past 20 years touts reuse as the saving grace. Vendors have sold billions of dollars in software through [...]

Source Code is a Corporate Asset

Posted on June 30, 2009 under Agile, Development

The goal of software development is to - SURPRISE! - deliver software. Fancy architecture diagrams, detailed requirements documentation, and comprehensive project plans mean little if we can’t deliver the software that realizes them.
The source code is the detailed specification for a software system, and it is the only specification guaranteed to offer an accurate representation [...]

Mac Migration

Posted on June 25, 2009 under General, Technology

Yeah…check out that battery life. That’s not 7 minutes and 26 seconds, that’s 7 hours and 26 minutes. Last weekend, I migrated to a new MacBook Pro.

Starting the Migration
Before migrating, I had some questions on the migration options. I knew about the OS X Migration Assistant, but I also create daily backups to a Super [...]

The Two Faces of Modularity & OSGi

Posted on June 23, 2009 under Agile, Architecture & Design, Development, Java, OSGi

There are two aspects to OSGi - the OSGi runtime model and the OSGi development model. Today, emphasis is on the runtime model. But eventually, the importance of the development model will take center stage.
The Runtime Model
The runtime model includes support for the dynamic deployment of bundles, different versions of bundles, dependency resolution, enforcement of [...]

The New Era of Programming Languages

Posted on June 17, 2009 under .Net, Development, Java, Platforms

Burton Group has just published the overview I authored titled  The New Era of Programming Languages. This is a timely document. The Tiobe Programming Index shows an increasing mix of different language types that are popular today. Also included is a graph that illustrates the shrinking gap between the use of dynamically and statically typed [...]

Agile Architecture Requires Modularity

Posted on June 15, 2009 under Agile, Architecture & Design, OSGi

A few weeks ago, I presented my view of agile architecture, and followed that up with a post on DZone that presented two aspects of agile architecture. A process aspect, which is temporal, and a structural aspect. Here, I embellish.
Temporal Aspect
The temporal aspect of architecture pertains to when architectural decisions are made. It involves making [...]

Java Modularity - OSGi and Project Jigsaw

Posted on June 12, 2009 under Architecture & Design, OSGi, Platforms

I’ve had some time to reflect on the sessions pertaining to Java modularity that I attended at JavaOne. This topic can be pretty confusing, so let’s take some time to clarify a few things.
The JSRs
Initially, there were three primary JSRs surrounding Java modularity - JSR 277, JSR 294, and JSR 291. Descriptions follow:

JSR 277 - [...]

The Agile E-Mail

Posted on May 26, 2009 under Agile, Development

I recently stumbled across the following e-mail. It was sent on Friday, March 01, 2002 at 2:12 pm to the project manager of a team I’d just joined. It has not been modified, aside from stripping out e-mail addresses and a few names in order to protect the innocent (and guilty) :-).
It was sent after [...]

The Enterprise is Broken

Posted on May 21, 2009 under Agile, Development

To only a fraction of the human race does God give the privilege of
earning one’s bread doing what one would have gladly pursued free, for
passion.
- Frederick Brooks in The Mythical Man Month
I like that quote. But let me ask…
How many software developers have a strong desire to develop enterprise business applications? How many dream of [...]

Agile 2009 Agenda is Live

Posted on May 14, 2009 under Agile, Industry

The Agile 2009 program is live, and it’s going to be a great conference. Thank you to the Developer Jam review committee for all the effort they put into helping select the sessions. The selection process for Developer Jam was not easy due to the quantity of amazing submissions, but I’m confident we put together [...]

Agile Architecture

Posted on May 6, 2009 under Agile, Architecture & Design, Development, OSGi

Software architecture is difficult to define. Ask five different developers their definition of software architecture, and you’ll likely get five different answers. Arguably though, we can agree that software architecture represents the significant technical decisions spanning the breadth of the system. For instance, managing the dependencies between modules is a significant aspect of software architecture. [...]

A Year of Failure?

Posted on April 30, 2009 under Industry, Metrics

We all like metrics, statistics, and measurements that let us know how we’re doing. Released about a week ago, the 2009 Standish CHAOS Report should have plenty of numbers. Jim Johnson, the guy behind it all, cites some numbers pulled from the report. It appears failure is on the rise. In fact, it’s the highest [...]

My Ruby Kata

Posted on April 15, 2009 under Development, Ruby

I was browsing through some older directories and stumbled across a Ruby programming kata I had done a couple of years ago. This is a simple kata where I calculate the payment for a loan based on interest rate, number of months, and loan value. I typically practice this code exercise for new languages that [...]

A Question on JAR Design

Posted on April 8, 2009 under Architecture & Design, Development, Java, OSGi

A while back, I posted about Jar Design over Class Design, which summarizes the responses I’ve gotten over the years when asking developers where they devote the majority of their design activity. The responses I get are always consistent - time is spent on class design, not JAR design. In fact, few teams spend time [...]

Software Rot - Manage those Dependencies

Posted on April 6, 2009 under .Net, Architecture & Design, Development, Java, OSGi

In Rotting Design, I spoke of how software tends to rot over time. When you establish your initial vision for the software’s design and architecture, you imagine a system that is easy to modify, extend, and maintain. Unfortunately, as time passes, changes trickle in that exercise your design in unexpected ways. Each change begins to [...]

Benefits of the Build

Posted on April 2, 2009 under Agile, Development

In browsing through some of the articles I’ve written, I stumbled across Benefits of the Build, which was published in the March 2005 issue of Software Development Magazine. SD Magazine was rolled into Dr. Dobb’s a while back, but I found the article is still on-line, and still very relevant. That article also forms the [...]

Programming Language Classification

Posted on March 30, 2009 under Development, Platforms, Technology

Below is a table that shows some popular and emerging programming languages classified according to the following:

Type system - Dynamic or Static type system
Problem space - A General Purpose language versus a Domain Specific Language
Runtime environment - A Managed environment (ie. garbage collection, etc.) or an Unmanaged environment.
Paradigm - Object-Oriented, Procedural, Functional, Imperative, or Declarative

Is [...]

OSGi Discontent - Part 2

Posted on March 26, 2009 under Architecture & Design, Development, Java, OSGi

For the first part of the story, see my blog post titled OSGi Discontent - No Migration Path.
I’m a bit surprised by the response I’ve gotten about that post. There has been healthy discussion on Javalobby, with folks standing on each side of the debate. Eric Newcomer has posted a partial rebuttal, stating that [...]

OSGi Discontent - No Migration Path!

Posted on March 25, 2009 under Architecture & Design, Development, Java, OSGi

OSGi has emerged as the de facto standard for modularity on the Java platform. The Eclipse RCP plug-in architecture is built on Equinox. Major application server vendors, including IBM, Oracle, and JBoss are leveraging OSGi to increase the modularity of their platforms. The ability to dynamically provision server-side modules reduces footprint and decreases start-up time. [...]

Certification or Craftsmanship

Posted on March 20, 2009 under Agile, Development, Industry

About 10 years ago I recall studying profusely so that I might pass my Java programmer’s certification exam. I purchased a copy of an exam cram book that had sample questions similar to what I might encounter on my certification test. I recall dealing with questions like the following:

Can an abstract class be subclassed?
What interface [...]

Big Teams & Agility - Take 2

Posted on March 11, 2009 under Agile, Development

In Big Teams & Agility, I talked about a macro process for agile development on large teams (those up to, possibly exceeding, 100 developers). The article was posted on AgileZone at JavaLobby (where I now help out as zone leader, though did not at the time the article was posted), where I was accused of [...]

Big Teams and Agility

Posted on March 5, 2009 under Agile, Development

In Grass Roots Agile, I talked about some of the details surrounding how development teams can increase their agility, and I presented a diagram similar to what’s above that discusses how to measure and manage a system’s tested features. Here, I want to talk a bit more about the macro development process, and how I’ve [...]

On SOLID Principles & Modularity

Posted on February 25, 2009 under Architecture & Design, Development, Java, OSGi

I stumbled across Uncle Bob’s SOLID principles of OOD quite a few years ago. They serve as the foundation of knowledge for designing object-oriented software. In fact, if you analyze the GOF patterns, you’ll find that virtually all of them adhere to the class design principles. I felt strongly enough about these principles that I [...]

OSGi Post Summary

Posted on February 19, 2009 under Agile, Architecture & Design, Java, OSGi, Platforms

Over the past several months, I’ve written quite a few blog entries about OSGi. Here’s a recap of those entries. If you’re not familar with OSGi, the posts under How OSGi might be of interest. If you’re familar with OSGi, but aren’t clear how it can help, the posts under Why OSGi will be of [...]

Embedding OSGi in Tomcat

Posted on February 16, 2009 under Architecture & Design, Development, Java, OSGi, Platforms

My last post embedded OSGi in an application server using Felix, Jetty, and PAX WEB. Here, I’m going to embed Equinox in Tomcat. I originally set out to embed Felix in Tomcat, but the dearth of tools and frameworks available for embedding Felix made using Equinox much easier.
I use the word “much” pretty loosely, [...]

Internal & External Releases

Posted on February 9, 2009 under Agile, Development

A recent post on InfoQ discusses a two part article by Israel Gat that argues in favor of internal vs external releases by decoupling the engineering aspects of a release from the marketing and sales aspects. By doing so, the engineering team can release the product internally on a frequent basis and the business is [...]

Big Blue & agile

Posted on February 4, 2009 under Agile, Development

An article on Search Software Quality discusses IBM’s transition to agile. There are a few key points to take away from this article.

Don’t worry about choosing a methodology such as Scrum, XP, or RUP. Instead, avoid dogma and focus on making people productive.  In other words, focus on little “a”, not Big “A”.
Continuous integration (CI) [...]

OSGi and Embedded Jetty

Posted on February 2, 2009 under Architecture & Design, Development, Java, OSGi, Platforms

There are two approaches to working with OSGi when developing web applications.

Embedding OSGi into the application server
Embedding the application server into an OSGi runtime

In this post, I’m going to embed Jetty, the application server, into Felix, the OSGi runtime. As with my previous posts (Simple OSGi Service, OSGi & Modularity, and OSGi & Spring), I’m [...]

Mobile Madness

Posted on January 30, 2009 under General, Mobile, Technology

I’ve always been obssessed with (or tormented by) portability and mobility. I want my information with me, accessible, all the time. This obsession began over 10 years ago.

The Early Days
I bought my first laptop around 1997 - a Dell Inspiron 3000. It had a “brilliant” 13.3″ XGA display, a “screaming” 233MHz processor, a “large” 3 [...]

Metriculation - Well-Chosen Average

Posted on January 27, 2009 under Agile, Development, Metrics

It’s very common for teams to use averages to communicate a measurement. The average number of lines of code per method or the average number of features delivered per iteration are simple examples. Most of the time, the average represents the mean, which is the arithmetic average of all samples from a chosen population. But [...]

Grass Roots Agile

Posted on January 22, 2009 under Agile, Development

This past week, I was glancing at a few older articles I’d written that have never reach publication. The first was titled The Typeless Parameter, which was a design pattern I’d authored in 1997 with the intent of submitting it to the PLoP conference. I recall participating in the shepherding process, but never submitted the [...]

Metriculation - The Faulty Assumption

Posted on January 19, 2009 under Agile, Development, Metrics

Metrics can be used to garner a lot of feedback that’s valuable to the software development team. And they can also be used as a convincing argument to push an agenda. You have to be careful that metrics are used legitimately, and avoid metriculation. Metriculation is a term I use to describe how metrics can [...]

The Paradox of Choice

Posted on January 15, 2009 under Development, General, Platforms

A couple weeks back, I watched the Barry Schwartz Ted Talk on The Paradox of Choice, and found it fascinating. He started by citing the official dogma of western civilization:
“If we are interested in maximizing the welfare of our citizens, the way to do that is to maximize individual freedom. “
He goes on to state [...]

JarAnalyzer on Spring OSGi

Posted on January 12, 2009 under Architecture & Design, Java, Metrics, OSGi, Platforms

I took the liberty of running JarAnalyzer on the OSGi bundles deployed as part of Spring 2.5.6. These are the JAR files found in the /dist/modules directory. Click the image at right to reveal the relationships between JAR files.
It’s interesting to see the dependency relationships and layering of the framework. Note that there are no [...]

Capers Jones Conversation

Posted on January 9, 2009 under Agile, Development, Metrics

I just got off the phone with Capers Jones, founder of SPR. We had a great conversation on software metrics, and he definitely gave me some interesting bits to chew on. One aspect of metrics that I’ve been particularly interested in is how IT can use metrics to show their value to the business. He [...]

When Metrics Lie - Metriculation

Posted on January 8, 2009 under Development, Metrics

A post on the Burton Group APS blog about how metrics can be used to push an agenda from a specific perspective. Metriculation is a term I introduce, derived from Statisticulation, where metrics are made to lie.

JAR Design over Class Design

Posted on January 7, 2009 under Architecture & Design, Development, Java, OSGi

In early December, I spoke at SpringOne Americas and delivered a session on OSGi. Whenever I speak about application design or architecture, I always ask the audience three questions at the beginning of the session. In this session, I had about 40 or 50 folks in attendance, and here’s a rough breakdown of the hands [...]

Agile 2009 Call For Papers

Posted on under Agile, General, Industry

The Agile 2009 CFP is open. This year, I’m the stage producer for Developer Jam. As you can see, Developer Jam has an impressive review committee. We’re hopeful that 2009 will be as successful as 2008.
Once again, we’re planning to run a series of clinics. They’ll be hands-on, instructor led exercises that will teach attendees [...]

JarAnalyzer in Google Code

Posted on November 20, 2008 under Architecture & Design, Development, Java

JarAnalyzer now has it’s own Google Code location. You can browse the source code online, check the source code out, and do all of the other exciting things that you can do with a subversion repository. The source in the google code repository is the same as can be found at the JarAnalyzer homepage (which [...]

I’m on Twitter

Posted on under General

I’ve jumped on the Twitter bandwagon. Possibly a little slow, but better late than never. I’ve started following a few people, and so far I find it fun and interesting. I intend to post mostly on tech stuff. I’ve also included my tweet feed on the right sidebar of this blog. Or you can subscribe [...]

OSGi interest via MarkMail

Posted on November 19, 2008 under Architecture & Design, Java, OSGi, Platforms

An image I swiped from MarkMail showing the increase in OSGi related posts on various mailing lists. No surprise that the most popular lists are Felix Dev and Spring-OSGi. The traffic shows the rise in interest in OSGi the past couple of years. Again, no surprise. It does appear, however, that most of the [...]

The XO Laptop - Give 1, Get 1

Posted on November 18, 2008 under Technology

The OLPC has instituted their “Give a laptop. Get a laptop.” program again this year. If you’re not familar with the XO laptop, it’s a cool little deviced in a pretty small package. The picture at left shows the XO sitting next to a Dell XPS with a 15″ display (click to enlarge).
The OLPC offered [...]

OSGi Progress

Posted on November 13, 2008 under Architecture & Design, OSGi, Platforms

It’s been a while since I’ve posted. Since I joined Burton Group, I’ve spent most of my time over on the APS Blog. I hope to spend a bit more time here going forward. We’ll see if I can pull it off.
InfoQ recently posted a great snippet on the progress of OSGi in the [...]

OSGi Survey Results

Posted on June 19, 2008 under Architecture & Design, Java, OSGi, Platforms

I’ve published a summary of the OSGi survey results on the APS blog at Burton Group. Definitely some interesting numbers. The highlights? 80% said they’ll be developing software using OSGi in the next 6 - 12 months, and almost 90% said they would today if their application server supported OSGi. Those are some convincing numbers! [...]

OSGi Survey Deadline Extended

Posted on June 2, 2008 under Architecture & Design, Java, OSGi, Platforms

If you haven’t taken the time to fill out the OSGi survey yet, I have to encourage you to do so. The survey will remain live until June 13th. Your feedback and help is greatly appreciated, and I hope to publish the results sometime in June or July

OSGi Survey

Posted on May 20, 2008 under Architecture & Design, Java, OSGi, Platforms

I’ve created a simple on-line survey to gauge interest in OSGi within the enterprise. I appreciate anyone who can spare a few moments to provide their input. I plan to leave the survey open until May 30th, 2008. At some point, I hope to share the results.

OSGi & Spring

Posted on May 6, 2008 under Architecture & Design, Java, OSGi, Platforms

It’s time to move on and show the simple elegance Spring brings to OSGi development using the HelloWorldSpec sample from the OSGi & Modularity post. But first, a little primer on Spring Dynamic Modules. Spring DM is not an OSGi implementation. Instead, Spring DM aims to make working with OSGi easier just as Spring makes [...]

Software Development Failure

Posted on May 1, 2008 under Agile, Development, IT Labor, Industry

Software failure statistics are abundant and serve as clear evidence that we must reform software development. While industry claims an IT labor shortage is the motivating force behind outsourcing, the greatest factor is directly related to our inability to deliver value-add software. As organizations continue to lose faith in IT as [...]

OSGi & Modularity

Posted on April 24, 2008 under Architecture & Design, Java, OSGi, Platforms

The .jar file has always been a great unit of modularity on the Java platform. Unfortunately, it also comes with the classpath baggage, and .jar files were never treated as first class components. OSGi is the next generation component platform that will bring greater modularity to the Java platform. In my previous blog, I showed [...]

Simple OSGi Service

Posted on April 17, 2008 under Architecture & Design, Java, OSGi, Platforms

Lately, I’ve been experimenting more with OSGi, and I want to share some of the examples I’ve put together. The examples involve Felix, Spring Dynamic Modules, and Jetty, though could easily be used with Equinox. Once I’m finished with these exercises, I’m hoping to compare and contrast the different approaches I’ve [...]

The H-1B Fraud

Posted on April 3, 2008 under IT Labor, Industry

Some of you may have seen this video explaining the placement of phony job ads that are subsequently used to prove to the Department of Labor that there is an IT labor shortage. Lou Dobbs also got in on the mix as shown in this YouTube video, or take a look at [...]

IT Labor Shortage Myth

Posted on March 27, 2008 under IT Labor, Industry

There is no IT labor shortage in the U.S. There is no dearth of software developers. Instead, this shortage is reinforced through repetitious pronouncements by industry of the impending labor crisis, and is used as outsourcing ammunition. In reality, organizations outsource because of two simple and related factors:

Business believes IT [...]

New Job New Skin

Posted on March 25, 2008 under General, Industry

March 31st marks my first day as an Analyst with Burton Group working in the Application Platform Strategies group. To an extent, this is a career change for me. Since I’ve been in IT, I’ve worked exclusively on enterprise development projects. Over the years, I’ve played most roles on the software [...]

The Agile Roadmap

Posted on March 12, 2008 under Agile

For the past two years, I’ve been writing The Agile Developer column at Agile Journal. Most of the articles are small focused pieces that share my experience with a specific agile practice. This month’s theme is sharing agile successes, so I took the opportunity to traverse back through many of my previous articles and discuss [...]

Code Quality’s Singular Metric

Posted on February 14, 2008 under Agile, Development, Metrics

I wonder if Andy has seen this.

Agile Journal

Posted on January 30, 2008 under Agile

Since it’s inception almost two years ago, I’ve been writing the Agile Developer column for the Agile Journal. Shortly thereafter, I started the Agile Junction blog. While I’ve continued to write the column, I haven’t posted a blog entry in damn near a year. In my new role as Online Editor [...]

Eat your own Dogfood

Posted on January 18, 2008 under Development

Quite a few moons ago, I interviewed a gentleman working for a CASE tool vendor. They had just shutdown one of their development shops, and employees had two choices. Find another job, or be relocated. This chap decided to go searching, and our paths crossed. It didn’t take long for me [...]

Fluff Season Kick-Off

Posted on January 11, 2008 under Development

The Greater Wisconsin Software Symposium marks the kick-off of the 2008 No Fluff Just Stuff Software Symposiums. The session schedule looks amazing. Traditional sessions on good ole J2EE are still aplenty, but there is also a lot of exciting content surrounding Groovy and Grails, DSLs, Ruby and Rails, Ajax, and agile development that keep things [...]

Importance of Continuous Integration

Posted on December 28, 2007 under Agile, Development

I encountered an incredibly interesting situation recently that clearly illustrates the importance of Continuous Integration. Two separate teams were each working on separate software modules. Eventually, these teams knew they’d need to integrate the two modules into a larger whole. Unfortunately, communication wasn’t that great between the two teams, and [...]

SpamBots Getting Through

Posted on December 6, 2007 under General, Technology

I use WordPress as my blogging system, and a while back, I installed the Challenge Captcha. But recently the SpamBots broke it and have been able to find the correct answer to the math questions. As a result, they’ve been leaving their nasty comments. So, I’ve reconfigured the Challenge to ask the question in a [...]

Agile 2008

Posted on December 5, 2007 under Agile, Development, General

Agile 2008, being held in Toronto August 4 to 8, seems like a long ways away. However, the submission system just went live this week. I’m excited because I have the opportunity to help organize the Developer Jam stage. There are a few changes surrounding the conference for 2008, starting with the submission system, which [...]

Crap4J - Alarming EULA

Posted on November 2, 2007 under Agile, Development, Metrics

Updated (11/02/07) : Please note the responses from Alberto and Bob attached to this post. They’ve offered some assurance that Crap4J does not transmit any code to their servers, and that the licensing snafu was due to a simple oversight. They also resolve to correct the licensing agreements. Thank you, Alberto and Bob! : End [...]

Big Software

Posted on October 31, 2007 under Architecture & Design, Development

I saw the news item on InfoQ regarding MicroSoft Oslo. There was quite a bit marketing mumbo jumbo surrounding Oslo, SOA, BPM, composite applications and MDD, and not a lot of it resonated with me all that much. However, one quote did stand out.

We want to send the model to the server not the printer.

This [...]

Enterprise OSGi

Posted on October 17, 2007 under Architecture & Design, Java, OSGi, Platforms

For years, OSGi technology has flourished in the embedded systems and networked devices market. Till now, it’s remained a relatively obscure technology for the enterprise developer. Now, in part thanks to Eclipse, OSGi is emerging as a viable and valuable technology in the enterprise.
In 2003, the Eclipse team began looking for ways [...]

Rotting Design

Posted on October 8, 2007 under Architecture & Design, Java, OSGi, Platforms

Design Rot
We’ve all experienced that sinking feeling when maintaining a piece of crappy software. Has my change broken the system in some unintended way? What is the ramification of my change on other parts of the system? If you’re lucky, and the system has a robust suite of unit tests, they can offer some [...]

Java Components & OSGi

Posted on October 3, 2007 under Java, OSGi, Platforms

Because of it’s emerging significance and my increased interest, I’ll be posting a number of entries related to OSGi. I’ll share some ideas on how OSGi stands to transform enterprise Java software development and application delivery, present some samples that illustrate these ideas, and offer a few opinions regarding the JCP and the various JSR’s [...]

Getting Blasted

Posted on September 27, 2007 under General, Industry

I got blasted for the following quote in a recent eWeek article:
“If you’re in a large environment that is bureaucratic, filled with politics and has a [software development] process like the waterfall flavor of RUP [Rational Unified Process] what do you do?” Knoernschild asked. “It’s been my experience that the number [...]

Class, Component, Service

Posted on September 12, 2007 under Architecture & Design, Java, Platforms

A class defines the variables and methods available to it’s specific instances. A class serves as the blueprint for an object. An object is an instance of a class with state. In Java, a class is a .class file
A component is a unit of deployment. A component contains classes. Components are invoked in-process (locally). Components [...]

New JarAnalyzer XSL

Posted on September 7, 2007 under Development, Java, Metrics, Platforms

JarAnalyzer has always had the ability to create a dot-compliant output file that could be used with GraphViz to generate a component diagram. In the past, this had always been done using the DOTSummary class. Unfortunately, this meant that if you wanted to generate output files in both xml and dot, [...]

Palm Treo 700p

Posted on August 29, 2007 under Technology

About a month ago, I went out and purchased a Palm Treo 700p (yes, I purchased it even after the release of the iPhone). Prior to the Treo, I had a regular ole’ LG (model unknown) that I used as a phone, and a BlackBerry (model 7250) that I used for my data [...]

Agile 2007 Recap

Posted on August 23, 2007 under Agile, General

A bit later than I had hoped, but I wanted to take a moment to reflect on Agile 2007 in Washington, D.C. last week.
I arrived at Agile 2007 on Wednesday, midway through the conference. After a few conversations with attendees , I’m certain I’ve captured the essence of the conference. Immediately upon arrival, I jumped [...]

TeamSoft

Posted on August 14, 2007 under General

After being gone for about a year and a half, I’m back at TeamSoft, a high-end IT consulting firm. I know it sounds cliche to make the statement, but TeamSoft prides itself on the quality of it’s people. On average, TeamSoft professionals boast 13 years of industry experience. We also have a world-class training program, [...]

Rake TestTask Hangs

Posted on August 10, 2007 under Development, Platforms, Ruby

Here’s the test task in my rake file. Works on Windows, but not on my Mac. It just hangs. What’s the problem?
Rake::TestTask.new do |t|
t.libs << “./app;./test”
t.test_files = FileList['test/test*.rb']
t.verbose = true
end
Two hours later, I tell you that I need this on my Mac.

Rake::TestTask.new do |t|
t.libs << “./app:./test”
[...]

JarAnalyzer Upgrade

Posted on August 3, 2007 under Architecture & Design, Java, Metrics, Platforms

I’ve updated JarAnalyzer to correct some of the problems reported when analyzing applications written on J2SE 5.0. The issues were primarily surrounding the use of Generics. If you’ve been experiencing any of the following problems when running JarAnalyzer 1.1, upgrading to JarAnalyzer 1.2 should make them go away and put [...]

Java and .Net Communities

Posted on August 2, 2007 under .Net, Industry, Java, Platforms

For the past 5 months, I?ve been working on a .Net project, my first of the sort. Until then, I’d always been a developer on some pretty large Java efforts, some small PHP efforts, and some personal experimentation with Ruby. But I had done absolutely nothing with .Net, and the opportunity to gain experience with [...]

Architecture & Design World

Posted on July 26, 2007 under Architecture & Design, General, Industry

I spent yesterday at Architecture and Design World in Chicago, and led two talks – the first on Continuous Integration and the second on GOF Patterns. If you’ve not been to a conference organized by Dr. Dobbs Events group, I’d highly recommend one. For the past few years, I’ve been attending SD Expo, Architecture and [...]

New Blog Home

Posted on July 22, 2007 under General, Technology

If you’re reading this, you’ve found the location of my new blog. I’ve just recently switched from Nucleus to Wordpress, and so far couldn’t be happier. The URL for the blog has changed to http://techdistrict.kirkk.com, so be sure to update your bookmarks and rss feed (http://techdistrict.kirkk.com/feed/). Here’s why I like Wordpress:

Easier to modify the look [...]