Architecturally Significant

“Architecturally significant” is a simple and useful concept that covers a few things…

It’s anything the architect (or anyone doing the architecture) needs to actively spend time and effort on.  It’s relatively more important, and getting it wrong would be “sub-optimal” – it won’t be easy to change and would have far-reaching consequences (e.g. costs and re-work).

Sometimes its about “picking your battles”.  Designing and developing solutions can be described as one long stream of decision making; in such a context the architect is going to be heavily involved in making these decisions, and sometimes the number of decisions that need to be made are more than they can easily handle – so picking the right ones is important.  (Putting aside for a moment the extremely valid point that decentralized decision making is a useful approach and so maybe the architect shouldn’t be the one making all of these decisions – at least not alone).

Working out when something is architecturally significant is a key part of an architects role (if you aren’t going to do it, not one else is), and given all too familiar time-pressures you’ll want to spend your time where it adds the most value.

randomwhiteboard001Confused?  Being able to “separate the wheat from the chaff” is a key skill for anyone performing the role of an architect.

Let’s take an example

Imagine you were talking with someone about what they needed, and they said:

  1. We need an online form that the user can fill in.
  2. The submit button needs to be red.
  3. The form needs to load in [x] seconds.
  4. As part of the form they need to upload a file.

Which of these is architecturally significant?

“We need an online form that the user can fill in”

The lesson here is that, like a lot of things, this is unlikely to be architecturally significant in of itself, but, hiding underneath this might be something which is significant.  It’s one of those situations where you just need to keep a watching brief on it in case something comes out of the wood work.

As always, context is critical.  If this is part of a solution where there is already an identified way of implementing forms, then it’s less likely to be architecturally significant as there is already a solution in place.  If this is a “first” for the project and there isn’t an identified way of implementing the form then it probably is architecturally significant.  How many forms are you building, one?  Probably not so significant; 50 – that sounds significant.

“The submit button needs to be red”

Aesthetics aren’t architecturally significant – red Ferrari’s might go really fast, but red doesn’t have the same implications for databases (yes, shocking, I know).

But there might be a wider need here, one that as an architect and thought-leader within the project you are well placed to raise: “Is using red for the submit button good from a usability perspective?  Isn’t there something about colour-blindness we should think about?  Who’s looking after usability anyway”?

Sometimes being an architect isn’t to solve all the problems, it’s to help identify the skills that you need.  “Yes, because this is a new 30 million dollar multi-region, multi-language e-commerce initiative we think having a usability lead is a good idea”.

“The form needs to load in [x] seconds”

In general terms, anything that involves System Quality Attributes¹ (SQA), i.e. the concepts that underpin non-functional requirements (NFR), should immediately receive the attention of the architect; they may not be architecturally significant, but NFR’s are usually one of the architects key areas of attention.

In this case is it architecturally significant?  It largely depends on what the value of X is, and how the architecture and infrastructure compares to that.

As a stake-in-the-ground, I suggest to you that the 80/20 rule applies: 80% of the time a new solution will meet the performance needs of most users, without needing any “special” performance enhancing work.  In such cases performance isn’t architecturally significant.  It’s often something that is discussed – but it’s not common (in my experience, i.e. in more than 20% of projects) that something “serious” needs to be done for performance reasons.  By all means keep an eye on it but don’t loose sleep over it.

When might it be architecturally significant?  If the value of X is especially high, you know the infrastructure is especially poor (slow, known to not meet the requirement), or if there are other functional or computational factors which are out of the ordinary – then yes, it might be architecturally significant.

Don’t forget that you can always push-back: “yes we understand the performance targets you want to hit, but are you aware it looks like it may cost between $x-y,000,000”?

“As part of the form they need to upload a file”

This is an interesting one, for which I have a real-world example.  So before we continue, do you think this sounds architecturally significant?²  After all, handling file uploads is nothing new these days.

For this project:

  1. We were using a COTS package which allowed users to upload files.
  2. The client was relatively large organisation and successfully managed their own infrastructure.
  3. Internal policy required all files coming into the organisation to be virus-scanned.
  4. Their infrastructure included a server-based anti-virus solution that was used to verify email attachments going through the email server(s).

Unfortunately, whilst the anti-virus solution had no problems scanning attachments in the email flow it wasn’t able to scan the files being uploaded through the application – as these were embedded in a custom application web-service call from the client back to the service layer, and got inserted into the application database as a blob, and not as a separate file that the scanning solution could read.  And as strange as it might seem, yes we were the first project where web-based file uploading was a thing.

Without doubt, this scenario is of architectural significance.

For a start, what’s going to happen if we are unable to scan the embedded files?  Will functionality be disabled, affecting users?  Or will the entire solution scrapped for one that can? (not likely after >18 months work & associated costs).

Can we get dispensation to just not apply anti-virus scanning?  If so, the architect will be leading those discussions from the projects point of view, probably taking it to the relevant design authority, and documenting the decision(s).

In scenarios like this there’s often no immediately obvious “slam-dunk” technical solution, instead there’s probably going to be a number of technical solutions – all with trade-offs and implications that need to be considered (i.e. “it depends”).

There’s also the non-technical / “business” angle to consider.  If the business/client/users are happy to change the way they do things this can open up new technical solutions, or make existing ones more viable.  Remember that bending the business to meet technology half-way is not always a bad thing, the more aligned the two are the better the end result usually is.

To briefly expand on the technical options, in this case we could change the way the COTS package works and obtain a new module for the existing anti-virus solution so that it can be called by the COTS API.  But even then there’s still a raft of technical options and detail to work through (starting with a proof-of-concept would be wise), and not forgetting we’d also need to convince the COTS vendor that they should change their product and the client that they need (and pay for) this new component.

In situations like this “architecturally significant” takes on new meaning as we’re now impacting the wider organisational architecture – not just the projects.  This is not a totally uncommon thing to happen – in larger organisations change affecting the wider organisation can come from within individual projects, as they are often the ones driving new needs and capabilities.

So to close

  1. Constantly be on the look-out for the things that matter.
  2. Focus your time and effort accordingly.
  3. Keep a watching-brief on things which seem innocent now but could be significant later or if circumstances change.

 

Footnotes:

  1. An SQA is a way of describing, defining and thinking about a solution.  Examples of SQA’s include performance, security, maintainability and so on (aka the “illities”).  SQA’s are not NFR’s, just as “Performance” is not a NFR on it’s own: an NFR is testable.  SQA’s are the basis for NFR’s – but they aren’t the same thing.
  2. If you said ‘no’, you’re wrong, if fact if you said ‘yes’ you’re also wrong.  Based on that much information (i.e. no where near enough) the correct response is something along the lines of “it depends”.  Once you learn to prefix any response to any question with “it depends” you are half-way to being an architect (yes that’s only partially serious).  Whether the rest of your subsequent response is actually helpful or not remains to be seen.

The Experience that is Bonriki International Airport (Departures)

 

Another luxury travel review for the internationally renown, Paris-London-Whakatu-Wutunugurra based magazine Luxury-Leisurecation .

Yes it’s slightly satirical.

Bonriki International Airport (departures) in Tarawa is an absolute scream, and fully lives up to the high expectations set by arrivals.

First you go into the departures area, a sweeping statement of Kiribati interior decoration and architecture.  The customs and check-in facilities are both very handy – no long tortuous walks in air-conditioned banality so often encountered in the West.

wp_20170112_09_06_40_proThe immigration portal is ergonomically blended into the check-in lounge next to the relaxing check-in space.

At first glance, it appears that travelers are free to choose which they do first – check-in or customs – as there is physically nothing to stop you choosing which to do first, however, completing check-in formalities first is recommended.  Conveniently there’s a fairly long relaxed queue, so travelers needn’t feel under pressure if they don’t arrive at the airport by the scheduled check-in time.

Once all formalities have been completed, you pass into the executive-class departure lounge.  As with check-in, conventional Western pretentiousness has been fully rejected in favor of a culturally rich fully immersive experience; here you are not only free to mingle with local plane-spotters but you have complete access to all of Kiribati, as there are none of the access restrictions so common-place in I-Matang cultures.

wp_20170112_09_37_54_proLocal executives relaxing in the Bonriki international executive lounge.

Kiribati plane-spotting is a very well patronized pastime.  There is always a large number of enthusiastic plane-spotters of all ages, calmly passing the time until the scheduled arrival of the next plane: waiting cross-legged on traditional woven mats, enjoying conversation and children running with screaming delight along the concourse.

wp_20170112_09_55_22_proEarly-bird plane-spotters starting to take up the prime spots.  

The arrival of the plane is nothing less than an eruption, twofold.  First the unannounced roar of the engines as the de-accelerating plane rushes past the panoramic open windows of the executive-class lounge.  This is immediately followed by the roar and agile movement of the plane-spotters, particularly the younger less experienced ones, moving swiftly to the windows to greet the plane with gentle words of welcome, uttered in measured 120 Decibel screams.

Having then passed an idyllic hour-and-a-half in the executive lounge (or nearby location of your choice) you are free to pass through security and board.   In typical Kiribati style, the original departures area is cunningly transformed into access to the security area – through a door at the rear of the departure area.   Here at least the locals have subtly blended in Western décor with the addition of the security equipment and stark walls.

You then proceed across the gently warmed tarmac to the waiting aircraft, where you can prepare for the final stages of your emotional journey before beginning the physical one.

kiribati-jan-2017-b-0025b

Career Progression into Architecture

In terms of career progression into architecture, people typically start off from one of several common “starting positions”. For example, a solution architect or application architect this is likely to come from a software development background.
Here a map of some of the more common paths:

typical-career-progressionThere are more types of architect and pathways than what’s depicted here, but based on conversations with architects I have met (or interviewed) this is a fairly accurate summary of some of the more common paths.

The Architectural Role Meta-Model

For simplicity, I define it in three parts (outlined below). In broad terms, Enterprise and Solution architecture disciplines cover the full range of domains but operate within a specific level of abstraction; whereas Domain architects cover all levels of abstraction but within a specific domain.  An in-depth write up on this can be found here, but in summary:

  1. Enterprise Architects – who typically operate at the highest level of architectural abstraction and across a broad range of domains.
  2. Solution Architects – who typically operate at a project or programme level. Although solution architecture covers the full breadth of domains, an individual solution architect will typically be relatively narrow in their focus – either providing general technical leadership within the scope of a specific project, technology or domain.
  3. Domain Architects – typically operate simultaneously across the spectrum of enterprise and solution architecture, but within a single specific domain. They will support both enterprise and solution/delivery specific needs.

Progression

We typically see common paths into and through architecture, such as the software developer into the application or solution architecture space; business analysis into the business architecture space, and so on.  Once in the architecture space it is possible to side-step into related roles – this might be done as a conscious and fundamental career choice, or may simply represent shorter-term variety driven by the work available.
The progression from solution architecture to domain architect to enterprise architect is common but by no means the only career path.

To a certain extent there’s a drift upwards in terms of abstraction (developer to solution architect; solution architect to domain or enterprise architect), but this isn’t always strictly the case.  It’s fair to say that each role has a set of skills and a temperament that suit it – some people will mature from one role into the next, others will take an alternate path.

The Product Specialist

One of the assumptions behind the solution, domain and enterprise architect roles is that these people often have a breadth of experience that goes beyond a single product or technology stack.  In other words, their careers are not defined along narrow vendor specific lines.  This is largely borne out by what I have seen in the market in terms of the experience people have and the career paths they have taken.

Such specialists will be genuinely skilled at what they do but lacking breadth of vision and depth of understanding that someone with a more diverse background is likely to have.

Is this good or bad?  Well I think that depends on what you need for the problem at hand; sometimes you need a very specialized tool for a very special problem, whilst other-times a more flexible tool is best.

One thing to be sure of though, as the technology market grows in breadth and diversity, areas of specialization will deepen.  As anyone familiar with web development in the early 2000’s can tell you, the number of stacks and architectures available has grown considerably; as that range increases so does the potential for individuals to specialize; so does the possible combinations of skills a specific job description might call for.

This specialization is reflected in the vendor space where larger vendors have their own subset of roles (think marketecture) that mirror the role hierarchies found in the general market. We therefore have product specialist roles starting to emerge, with people operating at the level of a solution architect but with a background that cannot assumed to be as broad as those from a more general background.

 

The Layman’s Guide to IT Architecture Roles

Most roles within information technology are fairly well understood and defined but this can’t always be said of architects.  This can be a problem for anyone considering a career progression into architecture – exactly what are the options and how do you get there?

Here’s my view on what the architecture roles are that you’ll typically see in today’s market, and how you might progress to them.

How to define architecture roles

There’s two ways we can define architecture roles…

The first concept I want to clarify is that of the domain.  An architectural domain is simply a conceptual area within the wider IT / architecture landscape, for example: infrastructure, applications, data, security and so on.  These domains are essentially areas within IT and architecture just as disciplines such as cardiology and neurology are areas within medical science.

A simple way of understanding architecture roles is to consider them against these domains, specifically in terms of breath and depth:

  • Breadth – how many domains the role covers.
  • Depth – at what level of detail does the role typically operate.

structure-of-architecture-roles-breath-and-depth

Please note this is not a definitive list of all architecture domains.

The second way we can classify architecture roles is by placing them on a marketecture-tarchitecture spectrum.   In the simplest possible sense:

  • Tarchitecture (technical architecture) – deals with the actual components a solution is made up of, how it will actually work and how that technology is managed.
  • Marketecture – (a portmanteau of the words marketing and architecture) typically deals with views of the solution that are more readily understood by laypeople, and tend to focus on non-technical aspects. There are 2 or 3 different definitions of marketecture but the exact differences are not critical for an introductory understanding to architecture roles; see the end of the article for more information.

It would be correct to assume that there’s often tension between these two perspectives, however, it would be wrong to blindly assume that all marketecture is inherently evil and adds no value.

Architecture roles and how to classify them

In my world view, there are three broad types of architecture work:

  1. Enterprise Architecture
  2. Domain Architecture
  3. Solution Architecture

I want to call out these three because they account for the majority of architecture work out in the market, even if the person doing the work has a job title that sounds different.  In addition to these there’s a few outliers that are organically linked to these but which aren’t your classic architect role, or which defy the classifications I’m using here.  Let’s ignore those for now.

structure-of-architecture-roles-3-broad-examplesNote, the basis of this diagram isn’t necessarily new and it might be something you’ve seen before.

What about the whitespace between enterprise and solution architecture?  Diagrammatically the whitespace exists to make the diagram easier to interpret, however, in the real world the exact point at which one ends and the other begins will vary from one organisation to another, partially based on what work needs to be done and the people available to do it.   In simple terms though, solution architects tend to focus on project specific work, enterprise architects do not.

We’re now at the point of fundamentally understanding the difference between architecture roles (please forgive the role descriptions which aim to give an idea of what the role is about in less than 30 words).

Role Description Relative Breadth and Depth Marketecture – Tarchitecture
Enterprise Architect Strategic, high level analysis and architecture across the entire organisation. Broad, high level 90/10
Application Architect Strategic, high level analysis and architecture within the given domain, plus supporting delivery / project work. Narrow, all levels 50/50
Business Architect Narrow, all levels 50/50
Data Architect Narrow, all levels 50/50
Infrastructure Architect Narrow, all levels 50/50
Integration Architect Narrow, all levels 50/50
Network Architect Narrow, all levels 50/50
Security Architect Narrow, all levels 50/50
Solution Architect Analysis, architecture and design for a specific project. Broad, low level 10/90

Please note that the roles listed above is not definitive, you’ll frequently come across variations to these.  How I suggest you understand those variations is to start by understanding the concepts described above, and then figure out where those variations sit in that context.

A further word on Solution Architecture

It’s important to remember that for solution architecture, although in definition the scope of the role is broad, the practical scope of the role in terms of a specific project is relatively constrained.  This is why the term solution architect has such broad usage, and why many people struggle to accurately define it.

Consider this hypothetical example:

structure-of-architecture-roles-solution-architect-example

For this hypothetical project, the “scope” of the domains that the solution architect is dealing with is heavily focused on the application domain, with a notable amount of security work and a bit of data and infrastructure thrown in.  The point is that whilst the level of “depth” they will be working at will usually be relatively consistent, the pieces of the “breadth” they focus on will vary greatly.

The exact mix of domains that the solution architect will cover on a given project will depend entirely on several factors, such as the what the project is trying to achieve and what other skills are available to support the project.  Consider the example above; if the organisation has dedicated infrastructure and data architects then the relative effort the solution architect is likely to spend on those domains is much less than if the organisation does not have infrastructure and data architects.

Appendix: The Mysteries of Marketecture

There are a number of definitions of what marketecture is, the three below being the most relevant; you might find that in a given your specific context what marketecture means is a hazy combination of these:

  1. The Hohmann / Fowler view: the business perspective of a systems architecture, including concepts such as licensing, the business model, technical details relevant to the customer (i.e. not necessarily ‘real’ ones). Brand elements, and so on.
  2. The Ian Gorton view: an informal depiction of the systems structure, interactions and relationships, possibly augmented by labels that espouse the philosophy behind the architecture.
  3. The Urban Dictionary view: a fairly cynical view in which the architecture is dreamed up by the marketing department and has little to do with reality.

Done properly, marketecture should fall into definitions 1 & 2, and serve as an excellent support to stakeholder discussions throughout the life-cycle of solution development.

Further reading on Marketecture:

Volunteer IT Consulting in Kiribati

As I mentioned recently, I had recently had the privilege to visit Kiribati, and do some volunteering – helping the Kiribati Family Health Association (KFHA) with a couple of nerdy things.  It would be extremely selfish of me to not share some of those experiences.

Not only are technical skills scarce in Kiribati, there’s also a desire to stay up with current trends both in technology and methodology.

Some Context – “The Work”

The main points of interest I want to share are centered on a workshop I ran, but before we get into that it might help if I briefly frame-up the wider “engagement”.

KFHA is a great organisation – lots of passion directed at meeting local Kiribati needs regarding family planning, sexual and reproductive health, HIV testing, and more. Importantly, that passion is also backed up by some real skill, all the medical staff are top-notch and are regularly developing their skills.

The IT department consists of one, a chap by the name of Toani.  His background is in networking – which is great since mines not; they needed help with some data collection and their website – areas that happily I can help with.

First off ,they collect a bunch of data around people who visit their clinics – both the single “static” clinic which also houses the main office, and mobile clinics which operate across all of the 22 inhabited islands spread across the 3.5 million square kilometers of Kiribati waters.  The data is collected by hand, with information hand-written by a nurse into a form, The IT department (i.e. Toani, when he’s not fixing the internet) is then entered into a spreadsheet.

kiribati-jan-2017-b-0349b“Toani’s the man, he can fix the internet”.  “Adrian’s the man if you need sunblock, see how much he puts on his face”.

There’s not a lot to talk about as far as the clinic data solution is concerned – basically I just did the usual: talk with a few stakeholders about what they actually did and why.  I then tightened up the spreadsheet by rationalizing the schema, designed new data capture forms that were print friendly, adding some data validation, added bit of a data dictionary, added some other random bits of goodness, and a pivot table (and chart) to handle the analysis and reporting basics.  I then rounded this off with a 12 page design doc and 19 page user guide.  Completing this all just minutes before the farewell party held in my honor was a relief and immensely fulfilling – especially given the 30+ degree heat (and the humidity).

The Website

The brief I got for the website was not a 158 page request for RFP, but something more along the lines of “We think it’d be good to do something with our website, but we’re not sure what.  What  ideas do you have?”

Their site at that time was arranged along the ‘classic’ lines – i.e. our services, about us, etc.  Definitely not a bad start, but in immersing myself in the culture and talking with locals a few things became clear:

  1. Internet performance in Kiribati is not impressive.  The site had some great images and content but the overall load-time in Kiribati was sub-optimal.  Given KFHA’s primary objective is to serve locals this seemed like an important issue.
  2. The site is written in English, and although English is not uncommon content aimed at locals really needs to be in the Kiribati language.  Many of those who most need KFHA’s services come from a impoverished background – meaning there’s less of a chance they’ll speak English (true, they might not also have internet access, but KFHA need to be as inclusive as possible).
  3. Internet access is on the rise, especially amongst Kiribati youth, and most of that access is via mobile phone.

The Workshop – Inception

After mentally getting to this point I ran my ideas past Toani, and then the Executive Director, Norma.  I floated the idea of a workshop, which she said was a great idea, and so it was arranged.

My objectives were… what were they?  Actually I had a few of them, to get my head straight I did some architectural diagrams and mind-maps, and then put together an agenda and eventually a PowerPoint deck to really get my thinking clear.  I had no idea if we’d be able to get hold of a projector, but I knew I could improvise with paper if I had to.

So, objectives:

  1. Regardless of what I do, KFHA need to be as self-sufficient as possible.  I’m certainly happy to support them long-term, but the less I have to do the more sustainable it will be for me.
  2. I needed to get KFHA mentally onboard with my high-level concept for the website, specifically:
    1. Tailor the sites structure, content and tone for those who need it, i.e. focus on local I-Kiribati.
    2. Optimize for mobile, low-bandwidth internet access.

The Workshop – Kick Off

Anyone familiar with Pacific island culture in general may be familiar with “island time” – the time vacuum created by the ocean’s presence.  Given the heat it’s not hard to imagine why.  I often thought about my time in Singapore and how much the GDP would fall if all the air-conditioners failed, office productivity would surely plummet.

Anyway, we were initially delayed for reasons that need not be discussed, but eventually “Ok, let’s start”.  I think we were only 45 mins late in starting, which by some measures means we actually started early, ha ha.

So I stood up and kicked the session off, about 5 seconds after I did this 4 of the 6 attendees started video-recording me on their phones!  This is not something that usually happens when I facilitate workshops with government departments in Wellington.

I introduced the workshop agenda as an “I-Matang” (foreigner) agenda, and invited them to change the format if they wanted.  Of course just because you make offers like this does not automatically mean that people will take you up on them – particularly in cultures that are more conservative.  There’s also aspects such as gender to consider; as with many other cultures men tend to dominate in Kiribati (although that is slowly changing), and so the women might not volunteer suggestions to the floor due to the fact that a man is leading the meeting and other men are in attendance.  In the event everyone seemed okay, perhaps even enthralled by the prospect of an I-Matang agenda, so I just forged on.

As A, I Want, So that.

The first “real” exercise we did was based on Agile user stories.  I wanted them to start thinking about who was actually coming to their website, why, and what they were trying to achieve.  My assumption was that once they understood this they’ll be in a better position to form a good site structure and create content.

I introduced the concept of a user story, and gave some examples.  I then explained why I wanted them to think in this way and how it would help them conceptualize the site and it’s content.  We also spent some time talking about the “so that” and why that part can be really hard and so crucially important – because often the reason why people want something isn’t as straight forward as how it first appears (i.e. the five whys).

“As A…”

We then explored who they thought actually needed to come to the site.  I gave them some examples to get them started and then pushed them firmly to go beyond the easy answers.  Some of the user groups identified were interesting:

  • It transpires that the bus drivers are a special interest group because the role they play in society puts them in frequent and direct access with young women attending school, and because they can leverage this role with the young women.  I’m not sure if calling this a “barter economy” is appropriate but that certainly seems to be the result based on what we discussed.
  • Another group was the Toddy manufacturers / sellers.  Toddy is an alcoholic beverage that can be naturally produced off coconut trees, the links between alcohol consumption and social issues needs no elaboration.
  • Finally, there’s an array of traditional and cultural leaders that are pivotal to sustained family planning activities in Kiribati.  These leaders include what you might call tribal leaders and heads of household; and almost without exception these roles are held by men.

kiribati-jan-2017-b-0269bImprovisation is a valuable ability to possess when working in developing nations, matching wallpaper and shirt is optional.

The next exercise was around prioritization – “You have all these user groups, but are we going to treat them all equally (which is fine, you just have a lot more writing to do straight-off), or are you going to prioritize some?”  To do this I introduced the exercise where everyone gets to spend $10 on what they think most needs it the most.

It took a little bit of cajoling to get everyone up to the wall, but they did it and quite enjoyed it too.

kiribati-jan-2017-b-0272b

For anyone unfamiliar with this technique, all you do is tell people they have $X dollars (can be any amount) of pretend money to spend on any of the items listed.  They can spend all their money on one item, evenly across several, or any other combination they choose – but they can only spend the amount you give them.  Once they have done this you simply add up the totals and see where the most money was spent.

They quickly got the idea and said they can see themselves using the technique for some of the work they do (same for the user stories).

The Affects of Catering

Then it was time for lunch.  As you can see by Abby’s face (he leads their youth programmes) they were really disappointed in having to stop for a free catered lunch.  Yes that was sarcasm.  Toani told me they don’t often get catered lunches like this and encouraged me to tell Norma we needed to hold some additional workshops.

kiribati-jan-2017-b-0277b

You can probably guess what happened next.  Think about it… its hot, we’ve just had a big lunch and its early afternoon.  Yep, people got a little lethargic.  As I am a consummate workshop facilitator, and addicted to dark chocolate, I had a private stash on hand that I dipped into before energizing the room for a final push.

Following traditional western workshop protocol, we then used this post-lunch-should-be-taking-a-nap time to tackle the most mind bending part of the agenda: “I want, so that”.

Actually it wasn’t too hard to get the group going – mostly because they are all very passionate about what KFHA does and the importance of the website.  As you can see from the photo below there was some very deep thinking going on, which yielded excellent results.

kiribati-jan-2017-b-0280b

Another indication that value was being unlocked was the nature of the discussion; most of the time things were discussed in English, but sometimes the discussion obviously became deep, complex and impassioned – because they  switched to Kiribati and spoke really really fast.  In these cases I’d just let them thrash it out and wait until some sort of decision seemed to have been reached, and then probe in English.

The Farewell Party

On big projects you might have a go-live party, but I’ve never had a formal farewell party “for me” before at the end of a 10 day, part-time engagement.  And by party I don’t simply mean food, drink and some music playing off someones phone…

In accordance with cultural norms we started about an hour late – which was fine with me as it gave me time to finish writing the user guide for the clinic visitor data solution!

Abby was the MC (surely his true calling if life, sometimes I think he views people at gatherings as his personal play-things “OK, just two more songs” [first song is performed] “OK, just three more songs).  To cut to the chase it was a full-on affair with speeches, songs, cultural items – and of course food.

As evidence of the songs, we managed to record my favorite (Onga Te Bwanaa) on my wife’s Dictaphone:

The song is performed as a group, everyone stands in a circle and sings with some simple movements which include clapping your hands with the person next to you (one face up, the other face down).

The event was then concluded with the obligatory photo shoot, including “free-style”.

kiribati-jan-2017-b-0331b

I can’t remember doing any volunteering before – certainly nothing even close to providing IT consulting in a developing country, but I’d definitely recommend it.  There’s plenty of deserving places in the world that could do with some help if you can spare the time, and the rewards are rich even if they aren’t financial.  There are some things money just can’t buy.

 

A Short Introduction to Kiribati

I recently had the privilege of not only visiting Tarawa, Kiribati, but also of doing some volunteer IT consulting there.  Consulting in such an environment is certainly a story worth telling – but before I can do that you really need some background, with pictures…

Kiribati is a place that sadly few have heard of, much less visited, but that’s unsurprising given its physical remoteness and lack of development – it’s not exactly a tourist destination and I certainly felt very intrepid going there.

So how did I end up in Kiribati?  My wife is the architect of the trip – she’s there to do some field research for her thesis; I was there for 10 days to help her get set-up, and do some volunteer IT consulting with the Kiribati Family Health Association (KFHA).

By the way, the syllable “ti” in I-Kiribati is pronounced “s”, so you don’t say “kiri-bah-tee”, you say “Kiri-bas”; likewise, the township of Betio is pronouced “Bey-so”.

Physical Context

Kiribati is republic of 33 small islands and atolls spread across 3.5 Million square kilometers across the central Pacific – basically at the intersection of the equator and international dateline.  The bulk of the total population (of just over 100,000) lives in south Tarawa: the southern edge of the atoll that runs East-West.

For more background info check out Kiribati on Wikipedia or the CIA Fact-book entry for Kiribati.

In a word, Tarawa is… narrow

We spent most of our time in and around Teaorarereke, a village / suburb between Nanikai and Banraeaba, the width of the land mass here is just over 300 meters, with the lagoon on one side, often with a thin strip of houses running between the lagoon and the newly paved road; bush and housing opposite.

kiribati-jan-2017-b-0196bThe view from the causeway looking east from Nanikai, the landmass on the right is about 330 Meters wide, opposite it across the road is effectively beach (lagoon side).

The lagoon itself is an vivid turquoise; a surreal visual contradiction of beauty and featurelessness, strangely imposing under mid-30 degree heat; a presence scarcely captured by a camera.

kiribati-jan-2017-b-0025b

People & Culture

Kiribati is a crazy mixture of old and new, a mixture which to my eye seems balanced and sustainable.

Culturally, local tradition is vibrant and well supported – song and dance featuring strongly in public life – and even corporate-government life, and of course “island-time” is a thing.  The influences of modern life are definitely present: many people, especially youth, are increasingly embracing mobile phones & Facebook; but the resulting blend is (or so it seems, for now) much less all-consuming than in “western” cultures.

kiribati-jan-2017-b-0003b

With regards to the part traditional culture plays in corporate life; the photo above is from the signing of an MoU between KFHA and the Ministry of Health – a somewhat formal affair by I-Kiribati standards.  Western corporate observers may notice several subtle features that distinguish doing business in this part of the world: the generous use of natural air-conditioning, strict adherence to the latest in corporate attire, and appropriate personal-space whilst dancing.

The format of the ceremony featured speeches and agreement signing – but also a number of performances, typically one group will speak, then accompany the speech with one or two songs – a sort of call-response format not unlike a Maori Pōwhiri.  However, unlike a Maori Pōwhiri, the spraying of perfume on the performers (by those being performed to) is a cultural norm.  Funnily enough I was invited (as a guest, I suppose) to stand at the front of the KFHA group as we performed a song (I’m afraid I just hummed along, since I had never heard the song before and it was sung in I-Kiribati!), and I was one of those sprayed with perfume – which is applied carefully to the lower shoulder.

Actually, I need to be fair and not misrepresent Kiribati with respect to where business is done – the venue for this ceremony was a restaurant, not the corporate offices of KFHA or the Ministry.  Interestingly though, a lot of traditional community business occurs in a physical setting not to dissimilar from this – the venerable Maneaba.

Culturally, the Maneaba fulfills a role very similar to that of a Marae; it is both a meeting house, a place to host community events, and a place to sleep or take refuge.  Physically they are essentially a rectangular building with no sides.  The larger more modern ones these days tend to be constructed with modern materials, but even so it’s not hard to find smaller ones still using traditional natural thatching for their roofs.

kiribati-jan-2017-b-0144bInside the large Tenimanraoi maneaba in Betio, during a large wedding we were invited to attend.

Whilst the Maneaba might skimp on walls, weddings don’t skimp on food: 2 pigs, and three 20-30 meter long tables laden with food in this case.  By the end of the night it’s all gone – but not all eaten straightaway, guests will take loaded plates and containers away to share with families later.

kiribati-jan-2017-b-0156b

Shopping was an interesting experience – as pretty much everything is imported there’s not an overwhelming array of choice, and given the lack of land there’s not much of a local textiles industry as in others countries (such as the silk scarf production in Cambodia). That said, there’s still people selling local produce by the side of the road: hand-woven rope, bananas & coconuts and more.

kiribati-jan-2017-b-0240b

There’s also a number of little shops lining the main road, selling daily essentials, like the one below.  The striped box out the front is a utilities box, these are all uniquely numbered – which makes them occasionally useful for reference, given that there’s no street numbering system.

kiribati-jan-2017-a-0783a

There are more substantial shops than this, to be sure, more substantial in size but less substantial in character.

I’ll leave you with two final vignettes, the first of which is local public transport. Unfortunately I don’t have any photos, at least none that do it justice.  Basically public transport consists of minivans (and the odd minibus) that ply up-and-down the main road.

To board the bus you simply signal the driver – standing at a formal bus-stop (or which there are plenty) is optional.  These vans are manned by two, the driver (always male) and the bus-lady (always female, not sure if ‘bus-lady’ is the formal label).  It’s actually a really efficient system, the bus-lady handles all financial transactions and customer liaison, leaving the driver free to concentrate on the road (and the sound system, Kiribati public buses all play catchy & loud local music, apparently those who don’t play music don’t get as much business).

As the van pulls up the bus-lady will yell out the end destination they are going to (i.e. buses heading east will either be going all the way to Betio (remember that’s ‘Bey-so’) or Biariki), customers will signal agreement or yell out where they are going to.  Depending on circumstances the bus may or may not have come to a stop during this interaction.

Carrying limits are strictly enforced – the bus will only take as many people as can physically fit in the bus.  95% of the time you’ll get a seat.  Treatment of locals and I-Matang (non-locals) is the same, in fact refreshingly so – foreigners attract a certain amount of attention but not as much as I was expecting.  Seeing an I-Matang on the bus was obviously a novelty, but for the most part people just let you get on with your business, the type of badgering and begging tourists are often assailed with in other developing countries was refreshingly absent.

Anyway, back to public transport – English wasn’t widely spoken on the bus, there’s a simple I-Kiribati phrase to announce you wish to get off, but I hadn’t learnt it for my first few trips.  Despite this it was still easy enough to get off, useful techniques include getting off when someone else gets on or off (if you think you’re close enough), or tapping the bus-lady gently on the upper-arm and waving at the side of the road.

The final image I’ll leave you with is one of simple Kiribati domestic life, feeding the pigs under the shade of trees in the gentle 30+ degree heat.

kiribati-jan-2017-b-0109b

 

 

Software Estimation: How To Do a Rough Order of Magnitude

Here’s the best software estimation technique I know; it’s not as good as doing proper Planning Poker and then measuring your actual velocity, but it’s a pragmatic approach if you are forced to come up with a time-based estimate for political reasons or to support sales activity.

I suspect other people use this process or one just like it – no idea what they call it, but I tend to refer to it as a “Rough Order of Magnitude” or ROM.

At first glance it looks pretty straight forward and semi-obvious, but, like many things in life the detail is where the important stuff is.  So lets start with the main steps then get into the detail:

  1. Design the system:
    • On a whiteboard / paper.
    • Decomposed down to a reasonable level of detail.
    • Make a note of all related tasks (e.g. environment set-up), plus any assumptions and constraints.
  2. Do two estimates:
    • For each and every part of the design: “best guess” & “worst case”.
    • Include all the related tasks.
  3. Write-up.

Design the System

The objective here is to come up with a design that should work, and then identify each and everything you need to do to build it.  Effectively you’re aiming to design down to the module/component/widget level.

For example, if you’re building a webpage that searches a database this implies that your design will include:

  • A database.
  • Tables in the database (do know what the schema is likely to be?).
  • The tables will have to be query-able (so will you write Stored Procedures?).
  • And so on.

Here’s some real-world examples of the kind of thing you’re after:

As you go through the process of coming up with the design you’ll be making assumptions, working within constraints and coming up with questions that influence the estimate – make sure you note these down.

Other tasks – things that aren’t part of the solution but will be part of the work/effort in delivering the solution; make sure you note these down as well.  For example:

  • Setting up development environments, source control, etc.
  • Setting up development servers, databases, access to them (permissions), and so on.

Estimation

Once you have the design you need to go through each module/component/widget and every task, and for each of them you want to come up with two estimates:

  • Best Guess – the shortest amount of time it could possibly take.
  • Worst case – the longest amount of time it could possibly take.

For example, let’s assume you needed to deploy part of the solution to Azure (or AWS) – but you have never done this before:

  • Your “best guess” might be half a day:
    • Because it’s only uploading  a package, how hard can it be.
  • Your “worst case” might be 3 days:
    •  Half a day just to login because the details you get given will be wrong / the account will be the wrong type / you won’t have the level of access people said you’d have, etc.
    • A day to do get hold of a test package that you can actually upload, plus all the research and reading you’ll need to do to figure out what it is you actually need to do, maybe even some time to do some quick prototyping.
    • Half a day to refactor your configuration options and redo your build so that it will now work based on what you just learnt.
    • A day to actually upload it and then figure out how to verify you’ve done it successfully.

As you might have figured out, the best guess estimates are where you can be an optimist, you can assume all your assumptions are correct, you’ve successfully mind-read the clients intent, there will be minimum defects, you’ll have no security / permissions issues connecting to the server the first time, and so on.

With the worst case estimates you do the opposite: feel free to take a hard line on stuff, assume your assumptions are wrong, that the data will be far more complex than you hoped, that the test data you get will be of really poor quality, and so on.

The key thing is to keep the estimated grounded in some rationale, that’s based on your experience and can be justified.

If you’re working on a whiteboard, just put your estimates straight onto the design (use a different colour).

Use any unit of time you like that makes sense (hours, days).

The significance of two estimates

This is one of the more subtle but powerful aspects to providing two estimates: the bigger the difference between the best & worst cases, the more pronounced the risk profile. This can apply to the overall ROM but it’s especially interesting at the task/component level. Consider:

  • You’d expect relatively larger items to have relatively bigger estimates – and a relatively larger best/worst range.  You might not think this means a greater level of risk, but remember that Planning Poker specifically uses a number scale that rapidly increases in size; the reason for this is that larger items are inherently harder to accurately estimate.  To me, this means they automatically attract a higher level of risk.
  • Ignoring the sheer relative size of an item, a bigger best/worst estimate probably suggests you’re less sure about the nature of the item, that it has more assumptions and unknowns.  All reasons to consider it to be a greater risk.

Once you’ve finished the initial estimation of all items and tasks, review those that have abnormally large best/worst estimates.  can you break them down into smaller pieces?  If not, discuss them and note down any risks and assumptions you identify, and include these in the write-up.

As a team or individual

I have taken this approach on my own, but usually it’s as part of a small team – e.g. if I’m the solution architect on the project and we get given a new major feature to estimate.  I’ll take a few of the key developers into a room to thrash it out.

As per Planning Poker, estimating as a group is always better, specifically:

  1. Estimates arrived at by consensus are usually more accurate.
  2. Others will spot stuff you missed, and a fresh pair of eyes is always good.
  3. It’s way more fun.

Going further, use the other tenets behind Planning Poker:

  • Avoid cognitive bias / anchoring – i.e. when discussing the system, especially when you get close to estimation.
  • Let everyone think of their estimate before people start revealing their own.  Because you’ll be estimating using actual hours or days you can’t really use a card-deck, so you’ll probably just have to rely on people being honest and not privately changing their estimates when they hear someone else’s.  Adjust your level of ceremony as you see fit.

Write-Up

At some point you’ll need to provide the estimates to someone.  What I tend to do is take photo’s of the whiteboard (to capture the design).  The assumptions, questions and so on I’ll usually jot down straight into OneNote so they are already digitized – that way I can just dump them into my write-up.  Usually the write-up will be semi-informal, possibly just an email.  You don’t have to waste time with unnecessary formality and ceremony – but the write-up should:

  • Be very clear.  Senior stakeholders / non-techs should at least be able to follow the narrative and understand the bottom line.
  • Come across as a professional piece of work, so that people won’t start questioning it’s validity based on how it is presented.

Remind people that the ROM is not a schedule, it has no sense of inter-dependencies or elapsed time, it is merely a sense of how big the work is and what the solution might look like.

Take particular care to explain and emphasize that you are providing a range not a quote. Overly zealous sales people and project managers will be tempted to take the smaller estimate and only provide this to the client.  Make sure they understand this is ill-advised. If you are hard pressed say: “the guy who wrote the article said that in his 16+ years involved in software development, every time someone took only the lower estimate things ended badly”.  If you’re from that British school of understatement, spoken with a touch of Jeeves-to-Wooster, you can say that the results will be “sub-optimal”.

You may also choose to throw all the items into a spreadsheet, with the two estimates, so that you can easily tally them up, include them in estimates back to the client, and so on.

Pros & Cons

The estimates are only as good as the experience and professional judgement of the people involved; the estimates are effectively based on nothing more than peoples prior experience, so ensure that those doing the ROM know what they are doing.  Involving juniors is good – it’s a great learning opportunity for them, but ensure they aren’t being left to fend for themselves.

As an estimation technique, it’s fairly fast and light-weight (but with a degree of rigor) so it’s useful in fluid situations.