Skramjet – The Middle Path

Middle Pathདབུ་མའི་ལམ།

Before I get in to the guts of Skramjet, there was a final piece of philosophy that was missing. I couldn’t put my finger on it until recently whilst watching a brilliant PBS program The Buddha. One of the interesting facts I didn’t realise was how The Middle Way or Path was come up with – it was when he was attaining enlightenment.

BuddhafastingAfter his initial life of total indulgence, then his Ascetic phase where he was almost dead (see right) that The Buddha realised that the way to enlightenment lay in between these two extremes:

 Neither a life of self- indulgence, nor one of self-mortification can bring happiness. Only a middle path, avoiding these two extremes, leads to peace of mind, wisdom, and complete liberation from the dissatisfactions of life

 An Agile Ascetic – well versed in Scrum, Kanban, TDD, BDD & NVC  ;-)

THIS WAS THE MISSING LINK!

Most (if not all) agile processes, be they Lean, Scrum, Kanban or whatever assume usually quite a bit of discipline and adherenceto “the process” Don’t believe me? Try telling:

  • A Lean / 6 Sigma adherent you won’t Define, Measure, Analyze, Improve, and Control
  • A Scrum Master you’re not going to do the 3 questions or have a Product Owner
  • A Kanban Kraftsperson you’re not going to limit WIP

In most cases, good luck with that… Does it have to be that way?

What is The Middle Way?

When I did my first official SDLC process training with Rational Unified Process, the 1st rule was “use the process to configure the process”. Unfortunately, many “agile people” don’t do this! They use a Waterfall process to configure an agile process. This, I suspect, is a key contributor to why many Agile adoptions fail. One of the lessons I learnt early on, after my first successful Scrum failure was to let the process emerge. My 2nd attempt was a dream run as we started with sticky notes and tasks – that’s all! No people against tasks and no estimates. The interesting thing is that the team added these two features in the next two retrospectives, which just shows that is you have faith and give control over to others in the “right context”, there shall be rewards.

Posted in Agile, Change, Kanban, Miscellaneous, Process, Skramjet | Tagged , , , , , , , | Leave a comment

Changearc – the thinking person’s RiczWest ;-)

Today I’m (@RiczWest) starting a new twitter account. It’s called ChangeArc. For those who follow me, you’ll recognise this as my “Blog Name” – so what’s the purpose?

Simple – when I started using Twitter, it was primarily as a bookmarking tool. To some extent I still use it as such, but also for so much more…

There’s one problem though – as I look at a lot of content, that means a lot of tweets, and not everyone likes that, including me! There are a number of great people I’d like to follow, but I can’t because they tweet too much.

To that end, I’m going to start a much lower volume (only a few tweets per day) account which is ChangeArc. So what can you expect apart from less tweets? Extremely high quality tweets that will include any posts I do.

I don’t know how this will evolve, but it will be interesting to see…

Posted in Agile, Architecture, Art, Artificial Intelligence, Business, Change, Clojure, Coding, Comedy, Computing, Future, Hardware, Health, Life, Miscellaneous, Music, Networking, People, Process, Products, Review, Skramjet, SOA, SocialMedia | Tagged , , , , | Leave a comment

Free “Mathematica”* in the Wolfram Cloud

Wolfram CloudMy history with Mathematica goes back about 20 years, when I was doing Masters research and using Mathematica for both programming and visualisation.

One problem was that it was expensive unless you could justify it. Also, there were no free or “community” editions available…

Well, THAT’S ALL CHANGED NOW!

Almost a week ago, Stephen Wolfram announced the Wolfram Programming Cloud, which as you can see from the image below is extremely powerful – try doing that in a programming language…

MySurface3DMy SurfaceYep, Mathematica just integrated for two variables and then just assigned that to MySurface which represents that expression and plotted it in 3D

“Ah…”, I hear you say, “that’s just some fancy trickery with a good library, but it’s not real programming”. Well, that’s kind of right, except for the fact that Mathematica has a huge range of such libraries, spanning across most disciplines: Applied Mathematics, Arts and Humanities, Business and Economics, Education, Engineering, Information Science and Technology, Mathematica Technology, Mathematics, Science and Social Science.

Also, those two lines above are written in the language for Mathematica which is now called Wolfram that is a “symbolic, functional, and rule-based multi-paradigm programming language“. Pure language wise, it’s pretty hard to match.

It’s fully functional, being able to pass around functions to functions in whatever way you want, like above. But it doesn’t stop there as you can do conventional procedural programming:

For[i=0,i<4,i++,Print[i]]
0
1
2
3

or, rule and pattern- based programming:

rule = {a_, b_} :> {b, a}
{1, 3} /. rule
{3, 1}

and purely functional programming like this classic fibbonaci example:

f[1]=1;  f[2]=1;
f[n_] := f[n-1]+f[n-2] // Define Fibbonaci Function
f /@ Range[10]       // Now get the first 10
{1,1,2,3,5,8,13,21,34,55}

So that’s pretty much all of the major programming paradigms covered! Also, with all the talk about REPL’s these days, Mathematica has had one since it’s inception, except it’s not the REPL you’re used to. Apart from the normal ASCII behaviour, it can typeset and edit equations along with displaying graphics and widgets making it more of a SupeREPL.

Mathematica REPLI’ve not even scratched the surface here in order to keep the examples short and understandable, but you can easily find more by searching for “Mathematica programming example” or “Wolfram programming example“. Or, if you just want to see what it’s capable of doing or just get some inspiration, check out the Wolfram Language Code Gallery.

Interested? Then just head on over to the Wolfram Programming Cloud https://programming.wolframcloud.com/app/ and get started with the free version which is more than adequate to work out if you should upgrade to add extra options like an offline desktop version or even the mighty Mathematica itself.

Oh, and one last thing…

The Wolfram Cloud works on an iPad!

Yes, our (some very geeky people & me :) dream of being able to do complex computation and programming on the iPad is here – as long as you’re connected… Hopefully it won’t be that long before an offline “iPad Desktop” version comes out :-)


* Technically, the whole of Mathematica is not all in this product yet, but it seems quite a bit is and hopefully it will only be a matter of time before the whole thing is

Posted in Agile, Art, Coding, Computing, Future, Products, Review | Tagged , , , , , , , , | Leave a comment

Architecting: It’s (not) what you think with Ruth Malan

Firstly, this post is not really mine, it’s more an “ad” for a workshop coming up in the UK during the Software Architect Conference in London in October presented by the legendary @RuthMalan who was behind the Visual Architecting Process

I’ll be going to the conference and Ruth’s workshop – if you’re in to Architecture , you may want to check out the conference and workshops. Now, over to Ruth:

Abstract: We will spend time with the usual suspects — (re)factoring, dependencies, naming, forces, trade-offs, mechanism design, system and component boundaries and interaction surfaces… And some sketchy ones — making the system design visual and drawing people in. We will take some silver bullets* — relationships of goodwill and commitment to objectivity — to heart, and be playful, exploring (the interaction between) the various facets of architectural design:

  • strategic and structural significance: identifying strategic outcomes and defining challenges; design of system capabilities and system structure; system qualities and mechanism design;
  • decision scope: decisions at broader scopes (system, mechanism, service) and decisions at narrow or local scopes (units) considering intentionality and emergence;
  • timing of decisions: clearing the fog of uncertainty/putting ground under the feet and the “last responsible moment”, iteration and evolution

And we will take our fallibilities, biases, foibles into account. How? That is indeed it. Our focus will be on how. We will use creating a draft (set of views of the) software architecture to situate our discussions and practice system thinking and modeling, strategic thinking (understanding what is shapingly important in the user context and business and technology space), and design improvement strategies. Our orientation is to co-creation of systems that have desired structural integrity properties, including resilience, but also design integrity and dynamic unity.

Our goal is to surface key matters of architectural judgment, drawing out myths and misconceptions, and sharing, positioning and connecting useful conceptions, strategies and techniques, and laws, principles, heuristics and other guidance.

Pre-requisites: The main prerequisite is to be open, playful and engaged. I facilitate moving through really vital shifts in perception and put useful tools in the architect’s toolbelt, but we have to throw our lots in together, co-create together, playing when it is time to play — to explore and get options on the table — and, when it is time, getting serious and making strategically significant decisions the group coheres around.

About: Having worked in the software architecture field since the mid-90’s, Ruth Malan has arguably played a pioneering role, helping to define architectures and the process by which they are created and evolved, and helping to shape the role of the software, systems and enterprise architect. She and Dana Bredemeyer created the Visual Architecting Process which is recognised by the Open Group and emphasizes: architecting for business agility, system integrity and economic, technical, organizational and environmental sustainability. Creating architectures that are good, right and successful, where:

  • good: technically sound;
  • right: meets stakeholders goals and fits context and purpose; and
  • successful: actually delivers strategic outcomes.

Translating business strategy into technical strategy and leading the implementation of that strategy. Applying guiding principles like:

  • extraordinary moment
  • minimalist architecture
  • connect-the-dots

So we can Be Agile and Create Options…

Posted in Agile, Architecture, People, Process | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Western Digital My Cloud Review

Western Digital My CloudRating: 4/5

I rarely impulse buy anything. I always want to thoroughly research anything thoroughly before I buy it. In the case of the Western Digital My Cloud, I  didn’t thoroughly research it (I did do a quick review check in Maplin’s though which showed it got 4/5) it was an impulse buy. I’d remembered those ads from the trains though which had got me curious, so full marks to WD’s marketing people. 

Styling wise – need I say more? It’s a nice minimalistic design about the size of a hard cover book (remember those? ;). The setup is surprisingly easy* on iOS, Android, Mac and even Windows.

Usage however, is dependent on the OS so the experience on Windows (7) is not as good, with drives sometimes dropping off and difficulty uploading files. On iOS and Android you run a client which is pretty close to DropBox, except of course it’s connected to your cloud :-) On Mac and Windows you get a custom app, shortcuts to the Web Admin console (below) and the ability to map your cloud drives.

WD My Cloud

So what’s actually in the box? This is where it gets really interesting as it’s running Debian Linux! Yep, all you need to do is activate SSH and after accepting the fact that you may void you’re warranty by using the command line, you’re in! You should theoretically be able to install anything using apt, but you’d need to be careful not to clobber or mis-adjust any of the existing packages which the WD My Cloud software depends on.

Security

The physical security seems pretty good as the connections to your drives (if over the internet) are encrypted using SSL. My only gripe is that the default settings for “user folders” (which are automatically created for each user you add) are to “Public”, which is probably not what you want as there is already a Public Share shared folder on the device. It’s just a matter of remembering to unshare user folders when you create the user. The permissions (on the interface – you could probably tune them using the shell) are quite basic – No Access, Read or Full Control but it’s pretty easy to set up a few users with private areas and shares amongst a group. You need to do it manually though as there’s no such thing as groups.

Summary

WD My Cloud is a great little device and fairly consumer friendly. I wouldn’t recommend it to someone with no knowledge of computers, but anyone with a bit of experience and enthusiasm could easily set up and maintain this securely. As for value, I got mine for £170 (for a 4G unit) reduced from £250 at Maplin, so with the sale price it really is a bargain. At the full price I’d be investigating other alternatives.

Later, I’m planning on carefully enhancing this and will do another post outlining my adventures. In the mean time, if you don’t like command lines or are worried about voiding your warranty, you may want to check out the WD My Cloud EX2 which would set you back £260 at an equivalent sale price and has the ability to install some “apps” like WordPress, Joomla, PHP BB and a number of torrent programs. There’s only 8 in all, so you’ll probably want to do some custom installs anyway.


* One piece of information which I didn’t see anywhere is that the “user” you set up on installation has no real “home directory” so it’s ideal to have as an Admin user if you’re planning on having more than one user on the system. Later users will be allocated their own home directories which have public access by default.

 

 

Posted in Hardware, Networking, Products, Review | Tagged , , , , | Leave a comment

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

Posted in SOA, Process, Agile, Kanban | Tagged , , , , , , , , , , , , , , | 1 Comment

Skramjet – Heroes

Lego Superheroes

“The obligation of any component is to contribute its best to the system, not to maximize its own production, profit, or sales nor any other competitive measure. Some components may operate at a loss to themselves in order to optimize the whole system, including the components that take a loss.”
~ The New Economics, page 100, Dr. Deming

Deming wasn’t alone in talking about “Local Optimisations”, you’ll hear similar things from Ackoff, Argyris and Senge as pointed out by Matt Barcomb in his brilliantly named post: Stop B*tching About Local Optimizations.

Empty BoardRecently, I’ve had a similar realisation as Matt because like any good “radical agilist” I kind-of believed in the “party line” about local optimisations – i.e. bad. There’s one problem though – I have spent almost my entire career doing local optimisations!

Has it all been for nothing???

Rosa ParksI’d like to hope not
In fact I think history is littered with examples that show otherwise. Take for example, the legendary Rosa Parks: “the first lady of civil rights”, “the mother of the freedom movement”. If she was worried about “local optimisations”, then she wouldn’t of refused to give up her seat for a white person. If she was thinking like Deming and Taiichi Ohno, she would of said “Oh, this whole bus seat thing would only be a local optimisation, so it won’t really make a difference – I should try and change the system overall rather than wasting my time here”
– Thank goodness she didn’t!

In some ways, we in the “real (software) change movement” are engaged in a similar battle – it’s the one that has always been waged and is probably a fundamental principle of the universe:

Control vs Self Organisation

You Are Here - Seripski CarpetThere will always be “forces”, some of which are immutable and others mutable, that will be implicitly working against us. Just because we’re doing something in the corner of a corner of a corner ^ 10, does that mean we should give up?

NO!

super woman and manand that’s where my call for heroes goes out – “our world” needs more heroes! Not people that are going are going to give up or try their absolute best because some other people said something about local optimisation…

Rosa Parks was actually one of many  – others had taken similar steps, including Irene Morgan in 1946, Sarah Louise Keys in 1955, and the members of the Browder v. Gayle lawsuit (Claudette Colvin, Aurelia Browder, Susie McDonald, and Mary Louise Smith) who were arrested in Montgomery months before Parks. Your effort at introducing or changing whatever it is may not “succeed”, you may be a Mary Smith, or you could be a Rosa Parks!

Either way, you will of been someone who participated in a revolution and you can be proud of that – I bet Irene Morgan’s family, friends and community are – if you google her you’ll see there are still people that know she helped to progress a cause also.

Skramjet is designed to be done by hereos, or hopefully to help people become one because hey, we all want to make the world a better place :-)

Posted in Agile, Change, People, Process, Skramjet | Tagged , , , , , , , , , , , | Leave a comment