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 TacticsAnd 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. :
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.
ResearchFirst 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
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.
MVPIn 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.
- a page that would look for a set of JSON files with the information and then display it.
- handcoded the JSON for some of the instagrams.
- I then wrote a PHP page that could go and read those JSON files
MVP Number TwoI 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 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
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 ChangeI 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 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.
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?
- A: I can document my publicly sharable work
- A: My work will be influenced by my daily thoughts
- I can release longer material on Youtube
- 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.?
- A: I can write in markdown inside Evernote and then use Dillinger or StackEdit or Pandoc to create HTML
- 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