Blog

Business requirements analysis & solution design

It just occurred to me while wearing my “business analyst” hat in my day job, I’m not a very good analyst or solution designer when working with just paper.

Instead, I need to:

  1. Talk with clients. Actual conversations, be it in person or Zoom, almost always end up in more information and understanding of the problem being divulged, versus receiving a document with a written problem statement. It also help to build rapport with clients.
  2. Figure things out through doing. I can’t figure out a full solution just by thinking about it. I can’t understand and figure out all the intricacies just by spending some time imagining the solution.
  3. Discuss the proposed solution with other people. Software development is a team sport. The more [and diverse] people and perspectives we bring to a problem, the better chance we have of a robust working outcome.

This post is prompted by a change request I scoped and solution designed and had to do it all on paper. I wasn’t able to have actual conversations with the client. As the team worked through delivery we realised there were design issues with 2 of the problems – the situation was more complex than I first considered. After going back to the client – yet again on paper – I received 2 more very important pieces of contextual information. Information I never thought to ask initially, but likely would have been revealed had I been able to talk directly with the client.

And this, I think, is one of the major cruxes in “Waterfall” design and development. Well, any form of design and development.

Have real conversations with people.

Broken cork in wine or fortified

I had 2 bottles of fortified wine, both unfortunately with dry cork that crumbled and ultimately fell back into the wine when I tried to remove them with a corkscrew.

But I managed to recover both bottles.

How?

First I decanted them through a fine mesh strainer into a measuring jug.
Then I poured the contents of the jug into a coffee French press. I was originally going to use a coffee filter papers but didn’t have any left. Then I thought: “a French press is supposed to strain out coffee grains, and they’re a lot smaller than the cork parts that are in the bottle, so surely that will work.” Sure enough, it worked.

The original strainer did a good job a removing 95% of the cork particles.

The French press got 99.99% of the rest.

There were literally 2-4 of particles left after the first French press. So I did a second time through the French press to the the training,

The Critical Drinker, in all his plush gory

Feast your eyes on this beauty!

The Critical Drinker plushieThat’s right, it’s The Critical Drinker‘s plushie.

And it just arrived in my hands all the way south in the Land Down Under.

Don’t know who The Critical Drinker is? Then you should check out his YouTube channel at https://www.youtube.com/channel/UCSJPFQdZwrOutnmSFYtbstA and be amazed by his smart, entertaining, alcohol driven commentary of the state of Hollywood culture and the decay of movies and TV.

Join the [factory] line

Something I just realised (shamefully late).

As the world advances and we continually innovate, there are two institutions that remain stubborn – and ironically they are both born from the Industrial Revolution:

1) Schools (and classrooms and teaching methodology).
2) Offices [for information workers].

Both are built around factory line work and designed to keep workers “in line”.

How do I do software architecture and design?

How do I do software architecture and design?

Mostly I sleep on it.

Seriously – I’ll can sleep on a problem for months before coming back to it.

Or some problems I’ll chip at – an hour here, a couple of hours there. Not thinking about it in between, then coming back with a fresh mind.

Sometimes I build on previous work, and other times I might scrape it and start again.

Obviously I think a and work hard to develop a solution, but the element of design that I never hear talked about is “walking away and leaving it be for a bit”.

Working in the corporate consulting world, every project that has gone belly up I want to attribute [in hindsight] to the architecture and sales team(s) writing a proposal literally up to the 11th hour to submit by a deadline.

That’s no way to design a solution.

Like a published book, great software is never created in the first draft.

Non Inclusive. Divisive. Discriminatory

I follow (and am a patron of) someone on YouTube who creates content about games.

He’s colour blind.

And he continually makes me think about how shit the world must be to people who… I was going to say: “who are colour blind or not as able bodied as the creators of things”.

But I realised how narrow my thinking is.

What about women in male dominated workforces?
And people of colour?
And everyone else who is not in the exact group as the people who design and build the things that are thrust upon the rest of the world to use?

The Western technology world (Silicon Valley, etc) produces a whole lot of technology “solutions” that are not so much what I would call “discriminatory” as they are just “narrow minded” – because they’re designed from a self-centred ignorance more than from malice.

The solution: Usability testing.

Gather a diverse range of people and ask for feedback.
Simple.
It doesn’t even have to be a lot of people for high gain. A few dozen people spread across the spectrum.

But that costs money. And may prove the designers wrong.

First Draft Software

Something a lot of software business leaders don’t realise (and more than a few software developers):

Writing software is like writing a book.
Authors never get it right on the first draft (software: first deployment).
And they rarely even get it right on the second draft, and sometimes not even the third.
Some parts of a book can take many drafts to get right before it’s published.

Yet there’s a lot of software that gets released after the first draft and not touched for man years (even in the age of agile).

If a software business is not iterating over its product – i.e. reviewing, refactoring and iterating – then they’re not producing a quality product.
And the benefit of software is that unlike a book, software can be updated (corrections, bug fixes, improvements) after it has been published.

Would I buy a “first draft” book? No.
So why should I accept first draft software products?

The Usability of Movies

Everything people create for other people has a usability/UX component, including movies.

What is the thing people interact with in movies? The “story”.

We may not interact with it in the same way we do software, equipment and real-world objects – we can’t touch or control it – but it has an “effect on us” as an audience.
A reverse interaction, from the audience’s point of view.

The same can be said for music, books, art, blog posts, documentation, teaching…

Creators of content need to be just as aware of UX as creators of things people use.

The Secret of my Success

The secret of my “success”?
There is no secret.

  • I’m dyslexic.
  • Reading is difficult.
  • And I’m a slow learner.
  • I have an atrocious memory, so I have to write everything down.
  • I have zero natural talent in ANYTHING I do. I’ve had to learn everything the hard way, and for me learning is extremely hard.
  • Imposter syndrome haunts me every single day.
  • In the last 6 months the main lesson I’ve learnt is how rubbish I am as a programmer, and I’ve been reading and writing code for 25 years. Put it another way: I suck at the primary output I’m paid for.
  • I have literally “brute forced” my way to where I am today by working harder than others, listening more, and doing the dirty work, every single day.

I’ve been creating software for 25 years, and I’ve been a “professional” in the industry for just on 20 years.
And every day I feel as inferior – actually, I feel more inferior – as the day I started.

And that’s OK.
Because that’s life.