Archive for December, 2007
Opinionated architecture - blue prints without the middleman
December 16th, 2007While at the Spring Experience this past week, I was delighted to learn a few things.
I got a good look at an OSGI environment, discovered what it felt like to turn rapidly in a circle on a cigarette boat doing well over 40 knots, and was introduced to the term “Opinionated Architecture”.
To my new understanding, an opinionated architecture, or framework, or solution, is one that proclaims a mandatory set of conventions in various things such as directory structure, configuration and code artifacts, naming conventions, and patterns of use. Due to the specification of these and possibly other things, the adopter of the solution will benefit from the use of the naturally occurring wizards and reusable templates that exemplify the mandatory bits and pieces. More than the traditional “blue-prints” offered by some, the essence of the available and proper use of the
opinionated solution depends on the erasure of alternative paths lest disaster strike.
This is not a trivial course to take. The author of the solution must have effective and real knowledge of the problem domain addressed by the solution - hopefully informed by enough failures that the successful path as declared is completely valid to the limits of the conceit of the solution.
For instance, web frameworks such as Grails provide rapid application development to those who agree to adopt the programming paradigm made possible and pushed by the elected framework. The result is a religious fervor adopted as those who share the faith and bend to the will of the higher, more-knowing, technological power are validated by their successes and spurred to greater adoption and recognition of the awesome power of the solutions’ prescription.
Caution: some wordiness follows:
The topic of the effect of poor planning and proceeding with lack of effective guidance down the enterprise architectural path was touched on in a BOF on high-performance Spring apps that took place late Friday night. (After the keynote filled with Monty Python references) During this talk, it was made clear that only experience can fulfill the needs of the architect challenged by a huge problem. What was also revealed is that humans frequently fail to avoid making the same mistakes numerous times even when presented with compelling alternatives. Old habits die hard it seems.
I am (tonight) of the opinion that unless your solution infrastructure mandates a path of best results and guides you to a proven successful state, you are more than likely to wander into the woods of competing best practices overgrown with budget constraints, lack of innovative and experienced resources, and just plain lack of understanding. It is therefore better to adopt a winning solution set whole-heartedly and when all the Kool-Aid is gone, agree to be dictated to by a benevolent dictator who has the right stuff.
The experience of a journeyman or artist is really very similar. In classical Ballet, for instance, the student rarely questions the validity of the techniques demonstrated by the Maestro leading the class/company. There is an element of necessary blind faith in the chosen path and the guides you choose to follow down it. Once one determines that the task at hand is indeed Ballet, one really has no choice but to turn out hips, point feet, and develop habits of posture that will sustain them through the most grueling choreography - for it will surely come and in spades. The student/apprentice is not well served to strike out on their own until a mastery is attained of the subject matter *through experience* that validates new choices and proves that through their adoption, greater success is to be found. The opinion therefore exhibited must be one based on hard-earned experience and still based predominately on a foundation made real and sustainable by the experiences of many others.
As it happens, I have watched the growth of OpenSpaces over the last many months with the skeptical eye of a - er skeptic - not realizing that the purpose of the framework is not only buzzword compliance and the implementation of popular development practices, but in the context of GigaSpaces and what is offered to our prospects and customers, a truly opinionated framework that takes the vastly flexible GigaSpaces infrastructure and service implementations and distills *the* successful use of it all into enforceable use of the Spring programmatic approach and technologies, thus empowering the neophyte and thought-leader alike with the unmistakably opinionated path to success.
The beauty of the switch to the prescriptive and formulaic from the free and often flailing style, is the stunningly rapid improvement in adoption rate, early prototyping successes, and sustained production-systems that continue to reinforce my growing certainty that we got our bit of it right this time.
Yes, OpenSpaces and by our support of it, GigaSpaces, has become an opinionated architecture/solution. As more and more tools and samples become available, and more wizards like my somewhat primitive, yet highly effective Project-creator, are built and offered, that fact will be obvious to all and joyfully so to the initiates and practitioners of the Linearly Scaling Aplication Arts. (The LSAA)
Write Once, [our way]
Scale Anywhere
Cheers,
Owen.
My Perspective Of JavaPolis07
December 14th, 2007
I had, again, the pleasure to attend the JavaPolis event in Antwerp, Belgium. This conference is characterized by it’s great atmoshphere, very much open and friendly. Also, the exhibition was very prodcutive for me, and in the evenings Red Hat and Sun competed on who is getting us most drunk with their free beer.
My "Agile" session, on Monday, went really well. And in fact, this year there were many sessions about the "soft" side of software development, technieques and practices. It may sound weired at first, and I keep getting the following question a lot: "Why is it that so many people are more and more interested in others experiences of agile and lean methodologies implementation". Well, I’m not sure that I have the full answer, but it is clear that this is indeed the case. More and more people are trying to build software better. There is no common denominator to the software being built, the problem domains vary between Command And Control Systems, middleware products to business applications, all are trying to improve their practices and to learn from one another. This atmoshpere of knowledge sharing and experiences exchange seems to be the core value of JavaPolis, and I really like it a lot!
Many of the tools is this area have been presented as well; It was also very nice the see the progress the Rational guys had with Jazz. What I liked most in Erich Gamma’s presentation about Jazz was the analysis of the rational (no pun intended) behind the tooling, and the fact that these guys are actually using their own tools. In fact, most of the companies who deal with tooling around software development management are heading to similar directions. TeamCity is now at it’s third release, and Atlassian is also putting their products more tightly integrated.
I personally think, that the tools that are going to be the most agile in their core will get the most adoption. The key for "Kaizen" - continuous improvement, is to review your practices and improve on them immediatly as you need to. Tools tend to be very good as a starting point, however, it is yet to be seen how well they can be adpated to organizational changes in practices. Time will tell.
Roberto Chinnici of Sun presented the direction of JEE. They call it "Right Sizing JEE", and by that they intend to reduce the bloat of the platform. The proposed way to do it is through profiles. Where the first one to be defined by the expert group is the "Web Profile" - probably Servlet, JSP and JPA. Sun essentially adopts the trend of Jetty/Tomcat Spring Hibernate/JPA as the defacto stack for web applications. The JEE expert group is relaxing the spec by only well defining the integration points. I think it is a very good move from Sun.
The presentation that got most of the attention, was of Joshua Bloch, which was initially called "Effective Java Reloaded" and than changed to something like "Will Java adopt closures". Bloch was expressing his concerns that Java may get to a state of over complexity that will make the language unusable. This is why he is reluctant to support addition of closures into Java. In his opinion there should be pre-spec implementation of closuers that will enable getting feedback about what/which/how/if closures should be supproted in the language. One of the interesting questions from the audience were about his current position inside Google. He didn’t provide a clear answer, however, his immediate next act on stage was to recruit people to Google. So, you can guess by that what is it that he does for Google.
One last thing, for those of you who attended my sessions, I would really love to get some feedback, please feel free to do so.
I really enjoyed JavaPolis, see you all next year.
Update on Virgin Mobile post (thanks to Julian Browne)
December 13th, 2007A while ago I posted a note about the success Virgin mobile experienced from switching to a Space-Based Architecture.
I received a comment from Julian Browne that I think is informative and so I make it public here:
***
Hi Owen - a backend system was unavailable for a few hours (honestly I
can’t remember the exact time). It was towards the end of the day’s
activity and it wasn’t back online until after midnight.
We knew this because one of the business managers thought they spotted
a bug in our reporting software after it informed him that more than
100% of orders had just been fulfilled. Never having seen anything
more than a 100% fulfilment rate, he naturally suspected an error.
On investigation we discovered that some of the previous day’s late
orders had been held in the space until the legacy system came back up
and submitted to the warehouse that morning. The system that was
replaced by the space-based approach didn’t do this and would often
lose orders entirely. What he really loved about this was that
managing orders safely in the event of a backend system not being
ready hadn’t even on his list of requirements.
I think there’s been some confusion created by other posts about the
project around order numbers generally. The number of online orders
increased by around three times almost immediately we went live (IT
wasn’t aware of this for a while, the system just scaled up without
any complaint) and over the Christmas period (a stressful time under
the pre-SBA solution) we handled a massive increase in orders
completed (unfortunately I’m not at liberty to say by how much because
it’s commercially sensitive).
I spoke to the online director only a couple of weeks ago and he still
loves it nearly two years later.
***
Thanks Julian,
It is great to know that what was once only a few lines of test code has survived and blossomed into a reference implementation.
Cheers,
Owen.
OpenSpaces.org is alive — project creator will move there soon
December 11th, 2007GigaSpaces has started work on OpenSpaces.org and associated with the pending launch of the site is a call to arms for all who hack.
Check out: Open Spaces Developer Challenge I think there is even a sizable prize involved!
As soon as I can, I will make project creator available on OpenSpaces.org so anyone who wants to can improve it -extend it etc…
Cheers,
Owen.
Launching the OpenSpaces Developer Challenge
December 10th, 2007Today we launched the OpenSpaces Developer Challenge, which will award $25,000 in prizes to developers who build the most unique and innovative applications or plug-ins for the OpenSpaces Framework. OpenSpaces is an open source development solution from GigaSpaces for building linearly scalable software applications. It is widely used in a variety of [...]







