Tagged: soa

Welcome 2015!

London Fireworks 2015M25 Carpark

It’s been quite a while since I’ve posted much, mainly due to a contract which requires me to drive on the M20 and M25 (aka “the carpark” for those outside the UK) and as a result, I just don’t seem to of had the time and energy…

Javelin TrainOh, how I long for those lovely trains, and will never complain about a 30 or even 60 minute delay – the worst I’ve had in a car is a 1h trip taking 4h!!!

I look forward to getting on something where someone else is doing the driving so I can use my time effectively

Amazingly, it seems like only 7% (4.5 Million) people in the UK use public transport. Given that nearly 1/3 (22 Million) live in the South-East, where transport is generally pretty good, that seems pretty low. No surprise given the number of people on the motorways – I’ll be happy to take one more off them next contract.

So what’s up for 2015 for me and this blog?

For one, I plan to start getting back in to a bit more of a rhythm, both with my posts and the associated (play) work (generally outside “real work”), and I will continue to post based on my experiences – recent and past…

theme : ecologyWhat are the themes though? Here’s a list of where I’d like to go:

  • Lifestyle & Reviews
  • Process & People & ScramJet
  • Clojure
  • Architecture, including Enterprise & SOA aspects

in no particular order. I won’t get in to specifics as much of it is not yet planned, or I’m working on it but don’t want to reveal it until I have enough meat on the the bones so I can be sure it will fly.

teaserHere’s a few teasers though based on posts I know I’ll write or have in draft form:

  • Review of Bob Marshall’s “Thinking Different” happening last year
  • Review of the: BMW i3 electric car; Samsung Galaxy Alpha
  • Corporate Subversion – in a positive manner of course :-)

and that’s really just the “boring stuff” – there should be some very interesting posts coming as I hit my stride.

I hope you’ve all had a great XMas & New Year break and look forward to some great interactions in 2015!

Agile Baby Steps – Iteration 4

Baby Step 4Return to the Motherland ;-)

It’s amazing how time flies as it seemed like yesterday, but it’s now been 8 years. Must be that old adage as I’ve certainly been having a lot of fun here. When I’d finished my last post on this, Agile Baby Steps – Iteration 3 (2 & 1), I’d finished up in Australia and moved to the UK. By coincidence it was where my Agile journey got a bit of a Turbo-Boost

After a few months of being a tourist and “kinda looking for work” I finally ended up in Andover which is a nice “little” market town just over an hour out from London working with Lloyds TSB. The role was initially as a Service Designer, but due to some enlightened management there I was able to introduce Scrum. Remember that in Aus I’d only just used it with a Scrum Master to integrate with Rational Unified Process, so I’d only just started down this route. To do a proper implementation we ran training with about 15 people and a Scrum Alliance trainer. This was the first time I’d been exposed to “pure Scrum” and it absolutely blew my mind! During the time there we rolled Scrum out across the various projects in the Business Process Re-engineering programme, even scaling it. Probably the key reason things went so smoothly was that the programme was Agile in it’s BPR activities and there had been a Lean effort in the past. Also, the programme had the concept of “Daily Prayers” that were like a Scrum, only unstructured so Scrum was really just a refinement (as the DP’s weren’t scaling) and extension which made sense as the program was just starting.

Next along was TNT and I had no intent originally for any process work as I was just there to do some performance tuning and architectural refactoring. After a few weeks though, it emerged that the team they were building up was having problems keeping track of things. One of the lessons I learnt from the previous engagement was not to be too prescriptive, so I said I knew a simple technique that could help. I told them the basic rules of Scrum and had Backlog, Doing, Done but did not tell them what to put on the stick notes! In the beginning it was just the task but after the first retrospective someone suggested adding the person responsible – “great idea” I said ;-) After the next retrospective, they suggested adding time! They’d invented Scrum Sticky Notes! I think this is a great example of what happens when you trust people and let them own “the process solution”.

Even better, was the fact that this was integrated with their existing Project Management process as at the end of each sprint I gathered up all the sticky notes and gave them to my enlightened PM who then did whatever she did with Gantt charts, reports etc… As the Scrum Master, I worked hand-in-hand with my PM and it only took less than 1h per day for me as the PM handled all the issues. Oh, but it didn’t stop there – we had an offshore team also. Again, thanks to enlightened management, we had a number of devs from offshore being rotated in and the timing was perfect. After a few weeks some of them went back to India and because they knew the process (it was theirs after all) Scrums were quickly up and running over there. We’d then have a teleconference Scrum to sync everyone up which worked a treat.

The interesting thing about the TNT implementation was that the “pure Scrum” people would be frothing at the mouth as we’d probably broken a number of “rules” – e.g. estimating in time, rather than story points, bananas, etc… Yet, I’d regard this as on of my best Scrum implementation so far as we’d cracked two of the classic problems that people have:

  1. Working in a more conventional Project Management process and
  2. Working with offshore teams

Most of this was not to do with me, it was obviously the management chain running through 3 levels who all supported this as what they’d been doing obviously didn’t work as well – they were ripe for change.

After a “pure SOA Architect” role I then ended up in Agile Land, this time at Yell (RIP ;) which was an Agile environment – and I really mean this! They were running a whole BPR programme using Agile with some of the best coaches I’d worked with. Needless to say, I learnt a lot about the subtleties of Agile and was even able to contribute at the end in helping develop a more scaled version of agile based around Dean Leffingwell’s Scaling Software Agility for the entire enterprise. One of the key lessons though was that you can be “too agile” – at one stage, as an Agile SOA Architect, I was continually (every few weeks) altering service designs for the Implementation teams. In the end, they (nicely) screamed “Enough! We can’t absorb this much change!”. As a result of a retrospective workshop we did on this issue, it was agreed that there should be a bit more up-front work and broader investigation in order to minimise the change to the designs they were implementing.

Coming off the pure agile role, I landed in what was at one stage one of the largest Agile projects in Europe at British Gas. Due to it’s scale (we’re talking thousands of people) there were some waterfall elements to it, but the base rule was that wherever Agile made sense, we’d use it. Again, more amazing scum masters and even some of the ones from Yell. For me, this role followed on nicely from Yell to a place that had implemented Agile at scale. There has been a lot of debate as to how Agile their approach was, but from my perspective, I was at a transition point from Waterfall into Agile and it was working, but it wasn’t easy. There were some great features though, especially where they’d applied an “Agile Mindset” to a “Waterfall Mechanism” which resulted in a more people-centric and communicative process.

For a while though, I’d been reading and learning about this new “Kanban Thingy”. It certainly had an appeal and I realised that I’d actually been using some of it’s practices in Scrum, so I decided to start injecting some Kanban tools in to Scrum (this was before I’d heard of Scrumban). I then managed to use this approach successfully in two Enterprise Architecture assessments for global organisations topped off by an Agile implementation of Agile Governance for SOA a few years ago.

As I went through this beginning of my Scrumban phase (which I’m still technically in) I had a dawning realisation: there is quite a disconnect between the work I do in Solutions, SOA and Enterprise Architecture (where I’ve used Agile, Scrum, Lean and Kanban most of the time over the last decade) and what I was reading and hearing about in “Cool Agile Land” (that’s where all the cool hipsters are xDD’ing ;).

It was then that I realised that there was just as much of a need in these areas – the problem was that this was not where the majority of “activity” was happening and that in general the mindset was more waterfall. There were however, some mavericks (who both backed and worked with me) like my self who believed that there was a middle path – we could use Agile techniques in Architecture in Big Organisations without conflict and hopefully start a revolution…

skramjetThis,
was
the
beginning
of
Skramjet

Skramjet – Setting the Stage

Skramjet StageSo far, I’ve only given you the 100,000ft view (as one would have with a Scramjet :)

A personal exploration of the use of Kanban, Scrum and Lean Principles to create a Service Oriented Architecture within a large organisation.

What does that really mean though? Why should you keep reading or even tell your friends? Like anything I do, this will be iterative, lean and hopefully have a good feedback cycle (it’s appreciated whenever you want as a comment here or tweet to me).

My immediate plans are that there will be two arcs:

  1. A personal narrative about Fellowship and hopefully some use of Antimatter in working with and transforming a team*
  2. Notes and guidelines around the use of lean/agile that I observe or think of along the journey

Anything could happen as I have no real plan for this except for the vision of a Skramjet

*Disclaimer: Any resemblance between the company, team and any people described in this narrative are purely co-incidental ;-)

FuseDay – Installation

JBoss FUSE cloud
I’ve decided to do a bit of a “deep dive” in to the Fuse ESB, which is now owned by Red Hat, to upgrade my technical skills in this area. I’ve actually ended up using a product called Fuse Service Workbench instead of this and will eventually do a post similar to this on how to install it. The directions given here will work though if you want to set up “Basic Fuse” along with the Developer Studio.

One thing I have discovered (by getting FSW up and running) is that due to various bugs in Oracle’s JDK 1.7 on Apple – you should use it, at least for this. Instead, you need to use Apple’s JDK 1.6, making sure that you set JAVA_HOME to the real path, not a symbolically linked one (of which there are many). I’m assuming 1.7 is OK on Windows (as the doc says it should be) – feel free to let me know your experiences in the comments section.

Installation

For simplicity, I’m using the RedHad FUSE ESB which includes: Installers, Testing, Performance, Third party verification, Centralized management of uniquely configured brokers with Fuse Fabric and Incremental patching. It’s a 30 day trial, but I’m just using it for the quick and easy installation.

1. Install JBoss FUSE Beta (6.1)

Get it from http://www.jboss.org/products/fuse, unzip the file, uncomment the (last) admin user line from etc/users.properties:

admin=admin,admin

and start the ESB, so you should get something like this:

JBoss-FUSE rwest$ bin/fuse	 	 
Please wait while Fabric8 is loading...	 	 
100% [=============================================================]	 	 
      _ ____                  ______	 	 
     | |  _ \                |  ____|             	 	 
     | | |_) | ___  ___ ___  | |__ _   _ ___  ___	 	 
 _   | |  _ < / _ \/ __/ __| |  __| | | / __|/ _ \	 	 
| |__| | |_) | (_) \__ \__ \ | |  | |_| \__ \  __/	 	 
 \____/|____/ \___/|___/___/ |_|   \__,_|___/\___|	 	 
  JBoss Fuse (6.1.0.redhat-328)	 	
  http://www.redhat.com/products/jbossenterprisemiddleware/fuse/	 	 
Hit '<tab>' for a list of available commands	 	 
and '[cmd] --help' for help on a specific command.	 	 
Open a browser to http://localhost:8181 to access the management console	 	 
Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown JBoss Fuse.

As mentioned above, you can then go to http://localhost:8181 and login

JBoss FUSE login

which should give you the welcome screen!

JBoss FUSE welcome

Congratulations – you’ve almost got FUSE running as what you have at the moment is a Fabric, which is kind of like a ‘mini cloud’

Now you should shut FUSE down using

JBossFuse:karaf@root> osgi:shutdown
Confirm: shutdown instance root (yes/no): yes
JBossFuse:karaf@root> JBoss-FUSE rwest$

so you can …

2. Install JBoss Developer Studio 7.1

Get it from https://www.jboss.org/products/devstudio.html and just open it – as it’s a jar file, on a Mac (which I use) it will just run the installer:

JBoss DevStud first

If you’re on a Mac, then the JVM/JDK will probably be set to your browser’s JVM, which is not correct – it should be set to your JDK. In the case of Apple, it should be 1.6:

>> TODO: Update Diagram Below

JBoss-DevStud-JVM

Contrary to the screen above, you can use the “Visual Page Editor” on a Mac if you do a 32-bit installation. At the end you can then start the IDE and at a minimum you should install all of the “Integration Stack” items as some of these work with FUSE:

JBoss DevStud updates

and there’s some pretty cool stuff such as support for Rules systems like Drools and Guvnor. You’ll probably get a warning about “unsigned content”, but that’s just someone (in Red Hat) being lazy.

After the installation, JBoss DevStudio will want to reboot and then you’ll be right for development with FUSE which we’ll cover in the next installment…

NOTE: Still a bit more updating to do, but most of the above should be correct.

Agile Baby Steps – Iteration 3

If you’ve just landed on this, you may want to first read Agile Baby Steps – Iteration 1 and Agile Baby Steps – Iteration 2 which outline previous parts of my agile journey.

I’d just finished up at Web Media and things were starting to get a bit tight (economy wise) and I started looking at permanent positions, ending up at SilverStream, who were subsequently acquired by Novell. Although there were no real process parts to this role, it did get me going with Web Services, or what was to morph in to SOA using some great orchestration and portal tooling (now part of the dustbin of history…). It was the next role at MYOB (an Australian accounting package) that took me a little further down the road of Agile. MYOB were riding a high after the introduction of the Goods and Services Tax (GST, aka Sales Tax, VAT, …) which meant people really needed to use an accounting package for in order to compute their quarterly statements. There were two major events here:

  • I was introduced to Apple (back before the original iPods – I was sent to WWDC within a few weeks of  starting there!)
  • I was fully trained in Rational Unified Process (RUP) and subsequently “successfully implemented it”

The interesting thing is that my “successful implementation” was a termination of the whole project! The simple reason was that due to the usual lack of stakeholder buy-in, “role protection” and internal politics it was a no-goer. The great bit was that due to RUP’s bias to addressing risk up front, we had about 30 major risks, over 25 of which were being manifested! I think that’s a success as unlike so many “bad RUP” implementations, we had the sense to quantify the fact that the organisation was not ready for iterative development. It also wasn’t an entire failure as the dev teams loved the concept of iterative planning and development, so what was implemented was not RUP, but probably the “Agile bits” of it. It was a start however, and that’s better than nothing as I’ve commented in Egoless Change and Agile.

HMAS Sydney

After a few technical engagements, the next real chance I got to work with process, was ironically with my good friend Peter Tighe, who was the Development Manager at MYOB and had since moved to Tenix Defense, Marine – the people who build Australia’s Frigates. Pete asked me if I’d like to help out with some work there and seeing as he was one of the key reasons for me going to and staying with MYOB, I quickly accepted. Having both used RUP, it was an obvious choice (remember, we used it properly). Needless to say, the project went quite smoothly and I found a great little tool called XPlanner as I’d been reading eXtreme Programming Explained: Embrace Change by @KentBeck. This wasn’t agile yet, but it was RUP with quite an Agile flavour.

After a bit more defence work, I then got back in to the “mainstream” doing a bit of work in Risk Management and Enterprise Architecture around ESB’s, but it was my final gig in Australia, bought in with someone I knew at SP AusNet that really got me in to Agile. Our team had a former ThoughtWorker who was needless to say very pro Scrum. Coming from a RUP background it was certainly a “clash of cultures” in the beginning. After taking out all the “religiousness” from this individuals view I started to see the sense though. We could use the practices of Scrum (which I didn’t really know that much about apart from Stand Ups and Stickies) that went for weeks within a RUP Iteration which could last for months and in fact used Rationals RUP Rational Method Composer to create this hybrid process. Unfortunately our whole team (about 20 people) were terminated due to a political slip-up but it ended well with the guy who bought it all together founding Intunity who have become an Australian success story and me heading off to the United Kingdom…

PS Wondering where all this is going? Apart from being an Agile Ramble…? Stay tuned as like any good thriller, it will all come together in the last parts and they’re next (whenever that is – check the timelines on these posts and you’ll see they’re a bit sporadic)

Hitler’s SOA Project

So I’ve probably spent a bit too much time over the weekend looking at “Hitler Bunker Videos”. If you’re not familiar with them, there’s a classic scene from the movie Downfall, which strangely enough is about the last ten days of Hitler’s reign. There’s a huge community doing subtitles about various subjects over this scene (just Google). For my subject, I chose one close to my heart – SOA Architecture and Governance. Have a look, but it does have some swearing in it (which is pretty obligatory in HBV’s):

I suppose the other thing I should note is that my current contract is great and that the work I’m doing there is nothing like this or in that sort of environment. Also, I have tremendous respect for Thomas Erl and Gregor Hohpe, using material from them in much of my work. The video is more a compilation of the worst behaviors and attitudes that I’ve seen over the years I’ve been involved with SOA, Governance Committees and Senior Stakeholders ;-)

Finally, if you are interested in doing you’re own HBV, then the best starting point is this classic “Hitler and Friends Explain How to Make a Hitler Parody”

and that’s pretty much it! I did mine on a Mac and the instructions are pretty much the same but using iMovie. I put mine up on Vimeo as YouTube will give you a warning because they can match the clip to the movie and they’re pretty evil anyway. At one stage they did threaten to take down all the HBV’s. There is no problem with posting these though as something like this constitutes “fair use”.

Hello world! Of Architecture and Change

If you’re interested in IT, Privacy, Science, Maths, Process, Systems (of people and technical), Programming, Organisations and any other topics that grab my attention, then you may want to follow this.

I did have a site called Architectural musings (which I’ll be reposting content from) but thanks to much listening, twittering and thinking I’ve decided to broaden my remit a bit because I do work a lot with change and at the end of the day, most of my architectural work does involve change in some form.

Most of my work is in large corporates, doing either (or both of):

  • Architecture (Yang): Enterprise, Solutions, SOA and Application / Technical (Java & J2EE)
  • Process (Yin): Waterfall, V, Agile, Lean, Scrum, Kanban and anything else that seems useful

And just like in life, I’m after achieving some sort of balance :-)