Monday, 4 May 2015

Bad Work


Careers often hinge on shifts in mind-set and I feel as if I have gone beyond a turning point in how I regard my career. In fact I think it is the first time I have taken true ownership of my direction and values, instead of inheriting and adhering to those of another entity, namely an organisation. This realisation concerns not doing what I would call ‘bad work’ (anymore).

Before I go on, let’s specify what I believe to be bad work:
  • Making a promise to stakeholders about delivery you know to a high probability you can’t keep.
  • Not flagging up information that may impact the decision a stakeholder may make.
  • Knowingly doing valueless work, as ordered by a stakeholder.
  • Implementing an exploitative strategy which preys on the ignorance of a stakeholder.
  • Treat someone inhumanely by hiring (or training) them to effect a particular change, then telling them how to do it.

The journey began in March 2013, I listened to a chap named Huib Schoots speak at TestBash 2013, in Brighton. He spoke of refusing to do bad work. I was in awe of the concept of someone taking ownership of their own work in such a way. Also my existing programmed behaviours railed against the concept, internally believing that this was idealistic and didn't translate to the ‘real world.’

However, my awareness grew and grew. I saw others exhibiting the behaviours I saw above, also caught myself on that path on occasion. I spent a significant portion of my time on a project solving a problem that no one could define and indeed no one had complained about. Eventually we delivered a system which would secure the future of that product for the foreseeable future, however, my discomfort was sharp throughout this time. Had we solved the problem? Maybe, maybe not. Had I sat in relative silence or at least acceptance of this fact? I had indeed.

Now, I’m a fairly generous chap, the propensity to do bad work exists on a continuum of consciousness, where people do it unwittingly (“I've been testing this for ages and have developed inattentional blindness to that problem”), ignorantly (“Yes, this will be tested for all possible scenarios”) or knowingly (“I have some information you need to make decision, but it suits me to retain that information”). We've all existed on this continuum, although hopefully, like myself, on the ‘honest fool’ end of that scale.

As I ventured into the world as a consultant on more strategic engagements I noted instances of the above behaviours with increased regularity. These were often disguised as pragmatic steps, picking off ‘low hanging fruit’, sometimes more blatant than that, aiming to be indispensable, rather than giving stakeholders the tools needed to tackle their problems. I favoured the latter, which often brought me into conflict with stakeholders on all sides of the divide.

So, I decided to follow my values and do something else, with a group of people I respect on a product with grand and hopefully (at least partially) noble ends. One thing I do know is that my career compass is pointing in a different direction now and I feel strong enough to follow it.

As well as my own experience, this was inspired by the following articles:



Sunday, 8 March 2015

Discipline? I don't know the meaning of the word

.....as uttered by the infamous Liam Gallagher.

We still fall for it in the development world don't we? The cult of the 'hero' or 'rockstar': 
  • Extremely deep knowledge of their chosen technology? Very often and that's great. 
  • Ability to communicate? If it confirms their approach. 
  • Working on a common goal? If they set it. 
  • Unable to be questioned about their approach? I can't work under these conditions, I'll be in my trailer. 
  • Sloppy and inconsistent? Maybe some of that too.
I prefer this quote: 
'Individual commitment to a group effort - that is what makes a team work, a company work' ~ Vince Lombardi
I much prefer to hire team players. For me, these guys are rock stars, just maybe not the lead singers. What have they got in their lockers then?
  • Able to create long term relationships? Loads of this.
  • Mindful of the impact of their actions on others? Loads of that too.
  • Information shared to enable each other to progress? Constantly this.
  • Respect for each others strengths and even weaknesses? Oodles of this.
I personally have changed a great deal in this respect. I used to get frustrated with those who didn't want to change the world. 

Not anymore. There is (and should be) space for those who wish to blaze a trail and those who wish to provide consistent approach and attention to detail. Don't get me wrong, I would never want to damage the enthusiasm and drive of such a person, just that they might be mindful of the environment they create.

I wouldn't feel right if I didn't explore the other side of the argument. One question always springs to mind; 'Who wouldn't want to work with a hero?' Changing the world, pushing the boundaries and yes even enhancing the skills and knowledge of those around them with their reflected glory. Definitely some positives there, I'm still unconvinced that they outweigh the more subtle negatives.

In my opinion and experience, both of these characters flourish best as a part of a team. That's how great things are achieved in the software development world. Not alone. Even wolves run in packs.

Sunday, 22 February 2015

My name is Ash, and I was a manager


 
"My name is Ash, and I was a manager"
Sometimes I feel like I should say that in a circle of other former managers and get a ripple of applause for admitting it. 

Pitchforks at the ready.....

Every time I open Twitter or LinkedIn I see a pithy saying about managers, the reasons why your manager is out to get you, or in the way, an unfeeling monster, the root of all that is wrong in the software development world. Managers are generalised and stereotyped mercilessly, oddly enough by those who accuse same managers of the self same behaviour.  

Some dislike specific managers or at least personality types of managers, some management as a concept, some say management is confused with leadership and vice versa. A legion of reasons to mistrust, expressed in many ways.

Because reasons....

Now, I'm not an idiot, this mistrust has been earned. As a consultant to various companies I've seen some very inhumane approaches to management executed by, quite frankly, unstoppable morons with some horrendous results. Broken confidence or even careers justified by terrifying organisational values (or the dreaded 'commercial reality', the catch all excuse for awful treatment of fellow humans), utterly opposed to the contradictions plastered on their marketing material. Maybe people think that about me. I hope not.

This might earn me some grief....

But you know what. for the most part, I'm proud to have managed people, helped them with their immediate and long term goals, provided direction if they needed it and most of all, trusted them to get the job done using their expertise. If I helped them meet their goals and represent the wider organisation, then I can stand by my work. The world is getting flatter and I'm all for it. I enjoy my autonomy, it is a fundamental need that most of us share.

Thinking locally....

Whenever I see the latest 'why managers are bad' schtick, I think of my own manager in my previous role. That person earned but never expected my trust, gave me timely, meaningful feedback and provided a non-judgemental sounding board. If someone can do that, how can it be bad? Maybe I was just lucky.

Now I've got no one to manage but myself. Hard work. :-)

Wednesday, 11 February 2015

Scaling schmaling


'Scaling agile' appears to be the latest organisational obsession. I appear beset on all sides by the latest scaling framework for agile ways of working.  SAFe, LeSS and even DAD are examples of acronym driven chicanery which parade as answers to all your organisational needs. 

So, lets just all leap aboard the Agile Release Train (because loading something up with a few months work and careering around at variable speeds sounds SAFe to me) and scale into the stratosphere.

I have a theory I've expressed on this blog before. Its just too darned hard to think about problems like this. So we outsource it. Thinking-as-a-Service. TaaS. We are relatively unique, blog reader, in our desire to go back to first principles.

Anyway, onwards. Riddle me this framework builders. Which of these doesn't scale?




Its all there. Teams, trust, collaboration, conversation, technical excellence, sustainability, self-organisation, reflection.

They are pretty explicit too for the most part. You rarely need to read between the lines. Any framework on top of these is abstraction and obfuscation of these aims.

Lets take an example. Preference for face to face conversation? That scales. More teams, more interdependent stuff to do. Talk more and regularly, at all levels, from the programmer to the CTO. But how do we scale I hear you cry? This is the bit when you consider your options (try 10 options to go beyond the obvious) and apply the rule of three. Otherwise known as the "thinking about it bit".

I won't go though them all but you probably get the picture.

I have a sneaking (more like rampaging bull elephant) suspicion that these frameworks real purpose is to fit around what your organisation already does. Still sat on the same nail and getting more painful but with a lovely layer of process to entertain us while we wear good people out, harpoon careers and lampoon ideas.

But then, at least with SAFe-LeSS-DAD, you get to keep the corner office eh?

Sunday, 18 January 2015

Inadvertent Local Optimisation

I saw this tweet the other day:
Followed swiftly by:
This got me thinking about a process I am often involved in. 

Reviews of 'testing capability and maturity' are a common product offered by many lone consultants & consultancies. I myself have done them on a regular basis, creating a number of (I believe) thoughtful strategies and recommendations that a client can implement themselves and/or in conjunction with a partner.

I like to think, I've probably done some good too. Looking for root causes over the dreaded 'low hanging fruit' that so many consultants recommend (see drug dealer).

When I really reflect though, I'm pretty sure most things I have recommended are inadvertent local optimisation. Conducting a review into testing is a classic misdirection, as a great many problems in how testing is done in an organisation, are symptoms of wider problems. A subsconscious misdirection, but a misdirection nonetheless.

Next time, before engaging, I'll ask:

  • Where does attending to the needs of your people come on your priority list?
  • Does work get done based on value or who can shout loudest?
  • Have you got too much work in progress?
  • Do you have teams with all the skills needed to deliver and autonomy to solve their problems?

Once we've dealt with these root causes, then we can talk about testing. Or we might not need to, perhaps dealing with what is systemic will assist with clearing up those symptoms.

Maybe Doctors and Consultants should share the same oath:
"First, do no harm." 
 

Tuesday, 30 December 2014

Hard Skills > Culture Fit


So here's a little bit of hiring people logic for you. I've expressed it as pseudo-code all those technical people who insist on exclusive hard skill hiring, despite the long term pain of it all.


private Handler handler;
public Employee effectiveEmployee;
public int numberofEffectiveEmployees = n; 
if (hard skills > culture fit) {
            handler = new Handler;
            numberofEffectiveEmployees -= 0.5;
        } else {
            effectiveEmployee = new Employee;
            numberofEffectiveEmployees++;
        }

What?

My code probably doesn't explain itself (and probably won't compile), so here goes.

So, a handler is the person (who may well have done the hiring if there is any justice) who tidies up the mess of a hire that doesn't fit with the culture that exists at your organisation. Not the public facing culture either, the actual one. Effectively for every poor cultural fit hired, you reduce the effectiveness of your remaining employees by a bit. Probably a fair bit. I went for half. Arbitrary. I harangue technical hires for this mainly as a sweeping generalisation, but it happens all over really.

Handler?

You can tell you're a handler when:

-The same person is in front of you all the time.
-You exhaust a repertoire of approaches to people management and problem solving that have served you quite well in a successful career thank you.
-Other people talk to you about that person all the time or the conversation always go that way.
-The organisation can't figure out what it wants from person.

Handlee?

You can tell you're a handlee when:

-You are always in front of your manager.
-Your manager appears irrational and changes approaches at seemingly random intervals.
-You appear to be the subject of conversation regularly in contexts that are probably nothing to do with you.
-The organisation can't figure out what to do with you.

Huh?

This is not a blame thing. Both handler and handlee are doing what comes naturally to them. Both are perfectly effective but just not right now. The problem is the culture black hole which exists between them, very, very slow drawing them both in. Or very fast. I forget which way time dilation and black holes work.

So?

A black hole is good analogy. As soon as you are committed to hire and the initial honeymoon period is done, the culture shock kicks in. And there are few ways to escape once the gravity well kicks in. None of them particularly pleasant.

Next time you think 'hey this person is a Perl wizard' also ask; 'will this person systematically alienate the rest of the humans around them?' You'll thank me for it.

Thursday, 11 December 2014

Train the Trainer - Course Retrospective


What's up with that then?

So, I've been charged with becoming a trainer within my organisation.

Just to set expectations here, I know a tiny amount about how to furnish humans with new knowledge, skills and attitudes. Make no mistake, if this field is an ocean, I am a puddle by comparison. I have dabbled with coaching, but much learning from me will probably have been via proximity and osmosis.

Personally, if I'm going to do something, I want to use my whole arse to do so, not just half of it. I want a set of models to apply in context and (more importantly) a strong paradigm, so when I discuss, create and iterate on training material and courses, I have a starting position to challenge/be challenged on. So, I attended the Train the Trainer course to compliment my own buccaneering learning tendencies.

What did you learn that t'internet didn't know for free?

The internet probably knows some of this stuff but here is a bunch of stuff I have learnt over the last few days:

  • I was pretty worried about creating material, how much time it would take and how I would fit everything else in. It turns out the angle of my thinking wasn't right. Instead of 'how can I create course material?' I should have been thinking 'how can I create exercises which transfer the onus onto the participant to learn.' Still be hard, but feel better.
  • Bloom's Taxonomy - A method of classification for learning objectives split into knowledge, skills and attitudes. If done really well, they will form your assessment too. If turns out my paradigms for knowledge, skill and attitude were a bit wonky too. Especially with reference to the difference between skills and knowledge and how to *really*  tell them part. Here goes:
    • Knowledge - I know how to do something
    • Skill - I can practically apply my knowledge of that something
    • Attitude - I have a belief or a will to do something
    • Simple maybe but its what I'll take forward with me! Have a look at Blooms, its fascinating stuff.
    • Excellent lexicon for objectives too, useful in many contexts.
  • My expectations - It turns out I don't need to try and impart all my knowledge and skills within a certain time period. Also my expectations of others post training course. They might not need to be geniuses. They might need to recall some things, recognise patterns in others, be able to apply for others still. 
  • Fluidity - training courses are not an iron clad, military exercise. They provide a scaffolding which allows room for manoeuvre, but the ability to flex on what really matters to the participants. Simple questions at the beginning of a topic like 'what is your experience of X' can help to frame a session, streamlining as appropriate to meet needs.
  • Objectives linked to activity is key. The opportunity to learn, reflect, add to our theoretical knowledge and apply that knowledge should be embedded in each activity. If that is simple matching of paired subjects or attempts to build competence in complex modelling techniques, I really appreciate the set of heuristics the course furnished me with to assist.
  • Me - I'm a pushy so and so. If you are not careful, I'll be in there, taken over the whole show and be happily reshaping things in my own glorious image. I shouldn't do that anyway. I really, really shouldn't do that in a training context. I'm not creating Cyber-men, I must curb my natural tendencies. I think this will be good for me.
It was worthy of the investment. Now, I look forward to getting the sharp nail of experience through my foot and the associated tetanus jab. Time to apply that knowledge, the real test one might argue.

And finally an external view on 'IT bods'.....

It was wonderful to spend time with people from background whose primary focus isn't technology. It can be a closeted world and certainly challenged my ability to explain the fundamentals of testing and agility in context!

Oh and those guys from different career paths and domains still perceive all 'IT projects' to be late, of poor quality and rarely solve the original problem. Or the problem doesn't exist any more by the time we are done. Or the company doesn't. So far still to go.