TLDR; Ruthlessly look at your process and incrementally improve your efficiency. Take the same attitude when testing and developing and harness MVP as often as you can.
In this post I’m going to describe focus and how you can apply that in your work, not just for testing but for software development in general with examples.
On the morning of 17th Feb 2017, I created an Instagram video on ‘focus’ and it was about… how ruthlessly efficient we can be if we focus.
The Monty Python Test Tactics
And it was partly inspired by Monty Python with their Spanish Inquisition sketch. They have three main weapons, four or five, but it’s surprise, fear, and ruthless efficiency.
I covered two on Instagram earlier in the week:
Then it came around to ruthless efficiency.
As an example for how to harness this I’m going to look at a tool that I built the day before.
I was experimenting with Instagram because Instagram has an interesting feature where you can’t link to anything in Instagram. People end up putting links and then they’ll say in the post “See the link in my profile”. Then they’ll continually update the link in the profile.
I didn’t want to do that, what I wanted was a page with all my “see the link in the profile” links, the link in the provide would be the same and then I would just update this page with things I wanted to link to.
I had this idea for a tool, a big tool that was going to do lot and lots of stuff. But a large todo list would not help me deliver fast. What helps me deliver fast is:
- focus and,
- being ruthless and efficient.
First of all I had to scope out the problem and I scoped out the problem in Instagram by looking at the Instagram API.
I found a commercial product that I could use to do something very similar and that looked quite good. But I wanted to experiment with more API work and more API libraries.
My research led me to clarify my goals:
- have a page of ‘link to’ items
- learn more about the Instagram API
- create more simple API examples that might help me learn ‘serverless’ software development in more detail
I also noticed that with the Instagram API there are a couple of things that I can do without needing to set up a developer account. If I could use those features to get enough information then I could get something out fast.
My page requirements fundamentally came down to two API calls:
- the embed API call, which given an Instagram entity would pull out the JSON meta data for that.
- and the thumbnail API
- cache the thumbnail
- parse the meta data for the description
- create links etc.
By focussing I was able identify the bare minimum.
In IT we have this concept of a minimum viable product. “What do I need to do to get something out the door now?”
My minimum viable product could have been:
- a page that just was hard coded information.
- long term that wouldn’t have been maintainable.
- I would not learn anything.
Instead I decided to create a minimal viable product of:
- a page that would look for a set of JSON files with the information and then display it.
Later I could build something that would create the JSON files automatically.
- handcoded the JSON for some of the instagrams.
- I then wrote a PHP page that could go and read those JSON files
MVP Number Two
I then wrote some PHP that:
- given a particular ID for an Instagram file
- goes off gets the JSON information, parses it then pulls the description
- goes off and gets the thumbnail
I had that live, and that was generating the JSON files within a half an hour or so.
I had something live that was my minimal viable product.
MVP Number Three, Four, etc.
Then I wanted to:
- remove the hashtags
- format the displayed list
- make it easier to use the automatic grab page
At each stage, I went live.
So now I have this.
I have a minimum viable product. It’s not particularly good it’s not particularly robust but it works. I learned a lot about using PHP with cURL access to access API.
Future Might Change
I have something to build on.
But I’ve met my basic need and I did that by:
- focussing in on what is the actual problem that I’m trying to solve.
- What is the minimum I need to do?
- Conduct the minimum enough research to figure out how I could possibly do this in the first place.
Work with this notion of a ‘focus for ruthless efficiency’.
- Work out what your aim and intent are.
- What is the minimum you need to do to get there.
- Focus on getting there.
- Focus on meeting the actual need.
You can still keep track all the wants. I’ve got a big list of wants in my Instagram notes there of how I want to expand this. But that’s not my immediate focus.
Focus can change every day.
Work out what your needs are now, work out what you have to tackle now. Figure out how you can do that in a ruthlessly efficient style with minimum waste to add immediate value.
Can you use the tools that you already have?
The ability to focus. And harness your ruthless efficiency. Is what is really going to make a difference when you’re developing software and when you’re testing software.
This blog post has a companion YouTube Video.
PS: My use of Instagram, this blog post, and YouTube video were an extension of this principle:
- can I create rapid content ideas?
can I explore my thoughts regularly and release them in a lo-tech but accessible format?
- A: I can use Instagram to do that
can I create longer form content based on my current thinking and work?
can I re-purpose videos quickly as blog posts?
- A: Using Trint I created a basic transcript which I converted into a blog post
can I write quickly without worrying about formatting etc.?
how can I release the writing faster?
- A: write it, publish it, then add images later
- A: write it, publish it, then check it for spelling and grammar errors later
How can you become more ruthlessly efficient?