Saturday, 13 June 2015

Helping


I’m currently experiencing something I never thought I would.

The technology team I work in isn’t the slightly odd, dysfunctional part of the business, tucked away in the corner, showing signs of madness, gibbering binary nonsense at anyone who strays within range. I believe we are a high functioning team and have gone further, we are reaching out and contributing to improving the wider organisational system. I know, I have fallen off my chair several times.

How are we achieving this state I hear you ask? I won’t provide an illusion of perfection but I think we are doing these things really well:
  • Saying yes, because technology is the art of the possible. Genuinely living the ethos that we can build what you need, share your priorities, help us understand, then we’ll get to it. Go to point 2.
  • Releasing stuff regularly to get feedback. I know this is old hat, but you’d be amazed what it can achieve. Roughly weekly, mostly when it’s valuable, not overloading. Asking if you want more stuff, not here’s more stuff.
  • Helping to determine what the organisation considers valuable over falling down the rabbit hole of what we can provide. The perennial conversation that we’ve all been involved with, I’ll tell you what I want, when you tell me what you can give me. Which usually results in the wrong solution to a poorly understood problem.
  • Providing coaching on the implications of technology. As in technology and what it means for the business proposition, not just how technology has been implemented. Where is it strong or weak? What choices did we make? 
  • Espousing the value of team. That every team should have everything it needs in order to succeed. If the team needs these skills, then let’s make that happen. Also, not just filling gaps. For example, not just hiring testers, but encouraging testers to encourage others to take responsibility in appropriate ways. If you hire more testers, you’ll more than likely get more testing, but less likely a great deal more value.
  • Genuinely hiring for behaviours. I’ve played at this before, but that urge to think ‘commercially’ has meant rushed decisions with months of pain. Making the hiring process equitable (you have to be happy with us, not just us happy with you) is much more pragmatic than the misery for both parties of being a square peg in a round hole.
  • Asking for clarity on the mission. Usually the technology teams are the last to know and/or understand the mission of the organisation. Not us. Rather than trying to hide on the periphery, we are front and centre of the mission, discussing how technology can enable us to realise that mission.
I personally love being a part of all this. I hope we can create an organisation which genuinely lives its values. Something I’ve been seeking for a long time.

Sunday, 17 May 2015

Weekend Testing Europe - Testing Session for LinkedIn

Great time had during Weekend Testing Europe, recommended for all to sharpen up your skills, ask questions, or just get a bit of practice. The exercise in principle was compare features from mobile to desktop on the beautiful LinkedIn app/site...

For those interested my testing session files generated:

-----------------------------------------------------------------------------------------------------------------------

Linked In Mobile App

iPhone 5s iOS 8.3

Search Functionality

Risks:
## No access to search algorithm to verify results

Start:

##User needs to authenticate for search function to be available.

Flow:

##On tapping search and entering no details, contacts appear alphabetically ascending.
##Cancelling returns to home tab and reloads the Newsfeed.
##Options for the user:
People
Contacts appear alphabetically ascending.
Jobs
Displays a set of jobs you may be interested in 
? Unknown algorithm for this, would need to be verified ?
Displays option to set location
In a new dialog you can search for a location or use current
Using current prompts for access to location services
Don't allow and the screen goes blank you can only cancel.
App remembers that you have disallowed location use.
Companies
Displays the companies you are currently following
? What happens when you follow no companies ?
Groups
Displays your currently joined groups
? What happens when you have no groups ?
## Search
People 
Adding search terms filters your own contacts first, then returns those you may know
? Unverified algo here ?
TO CHECK - Searching on a full name of a contact you already have returns those you don't only
Can search with only 1 char -  hopefully this is managed in the search algo
Jobs
TO CHECK - Cannot search by company, only title
Title appears to be fuzzily matched, without location set you get jobs from all over.
With location set:
Latest jobs are returned first, lots of jobs in Leeds.
Location can be removed, returns to previous results.
Job title and location can be used in conjunction. 

-----------------------------------------------------------------------------------------------------------------------

LinkedIn Desktop

Windows 8.1, Chrome 42

Search Functionality

##Risks:
Again, no understanding of the search algo
Should be aware that the aim is different here than the mobile experience, search for power and results rather than speed.

##Start:
User does not need to be authenticated to search
Minor functionality is available, searching by first name and last name
The search is a true 'elastic search' rather than the linear, categorised search.

##Search
Entering text exposes:
People
Companies
Showcased Pages
Groups
Universities
Features
Can search with 1 char - 18 results are filtered each time.
The 18 results are shared between the above categories
The search dynamically filters as you type.
Searching on a full name reliabily returns connected and unconnected users  (mobile app only unconnected users)
Company search defaults three options
Jobs
Those who work there
Those who no longer work there
Typing a search terms and the clicking search opens a new page with advanced search options

-----------------------------------------------------------------------------------------------------------------------

Summary

-Desktop was a true elastic search, built for power with a dependable connection, mobile much more category dependant and about returning immediate results
-Desktop was much more powerful, but both filtered and gave suggestions as you entered data. Mobile good for filtering what you already have, desktop better for finding new stuff.

-----------------------------------------------------------------------------------------------------------------------

If you haven't already, get yourselves signed up for next time:

http://weekendtesting.com/

Tuesday, 5 May 2015

Just give me a ball park? Yankee Stadium.


Two of my favourite estimation conversations (roles are indicative, not pointing fingers).

The What Is It?

Project Manager: "How long will it take you to test our disaster recovery solution?"
Me: "What's your disaster recovery solution?"
Project Manager: "We don't have one yet, but we need to test it."
Me: "I'm not convinced that is a valid approach."
Project Manager: "Well, what shall we do then?"
Me: "Create an disaster recovery solution."
Project Manager: "Can you do that?"
Me: "Yes."
Project Manager: "How long will that take to test?"
Me: "I don't know, I would be creating it, so I can't test my own work"

The Anything But...

Product Person: "Can you provide a forecast for how long these would take to implement?"
Me: "Are you asking for an estimate?"
Product Person: "Lets call it a gut feeling then. In days"
Me: "Is that different?" 
Product Person: "OK, I'll settle for a quote."
Me: "We may be straying into semantics here."
Product Person: "Just try and gauge it."
Me: "You know humans are rubbish at estimating time right?"
Product Person: "I know but I'm just asking for a projection."
Me: *sighs audibly*

As a heuristic, if this rings true:


Time spent generating estimates > Time spent doing the work

Then you should seriously have a think about estimating how long it takes to come up with an estimate. Mind the magical development unicorns sprinkling star dust on your product while you do. Or talk about alternatives to estimates as a means to gather information, try what success looks like, or a definition of ready. Break the cycle.

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?