Bogo’s Blog

How to prioritize your ideas and feature requests?

I spent my last 10-15 years working on different stages of the product life-cycle and the experience I acquired helped me to build something that I am about to share with everyone.

Problem

One of the challenges in running a startup is that you have lots of ideas on how to grow, but you don’t know which plan to execute first and which one has a better chance to succeed because you love them all.

 

Solution

Neeoo - A prioritization Matrix that works

I have combined a few approaches in a powerful prioritization matrix with instructions on how to use it for ANY business.

  • Easy to use – you need just 15 min to get started
  • Flexible – it adapts to your business model
  • Unique – you could prioritize marketing experiment or features, especially if you don’t have data to support your theory.

Take it

I want to share that with you, for free. If you are ready to accelerate your growth, click here to join my ProductHunt upcoming campaign or send me an e-mail to bogomil at talkweb.eu

The Wind Through the Keyhole and the future of APIs

I was reading today the great article about the unknown aspects of REST and I thought that it’s finally time to talk, or in my case write more about the future of the APIs, but first let me invite you to the magical world of Stephen King’s novel The Wind Through the Keyhole and in the precise moment when the Ka-tet are hiding from the Starkblast.

In this very moment Roland tells a story that inspired me to write an article about APIs. Let me remind you the the story very shortly.

A very short summary of the story. Keep attention

The story starts off about a boy named Tim Ross who suffers a tragedy when his father Big Ross is killed by a dragon. A few months later his mother, Nell, marries his father’s best friend, Big Kells, so they can pay the Covenant Man their yearly taxes. Things start going wrong when Big Kells starts to beat Tim’s mom. It starts to get worse until tax time comes and the Covenant Man gives Tim a magical key that can open any lock. Tim opens Big Kells chest and finds his father’s axe and his father’s lucky coin. Enraged, Tim goes to talk to the Covenant Man who is in the endless forest. Once he gets there the Covenant Man shows him the body of his father and a vision of Big Kells beating his mother until she is blind.

Afterwards Tim runs home and checks on his mother who is aided by his previous teacher Widow Smack. He vows for revenge. Big Kells has disappeared and Tim wants to help his mother so he seeks out the Covenant Man again but only finds his wand. But he is able to see a man giving him an item that will help his mother’s vision. It turns out it is Maerlyn, a powerful wizard. Tim tells Widow Smack of his plans and she warns him not to go but she gives him a rifle because she knows she cannot convince him otherwise. Tim then sets out into the endless forest to find Maerlyn.

Along the way Tim is tricked by a sighe who leads him onto an  Fagonard Swamp island where he is almost killed by a dragon, alligators, and is being jeered on by Mudmen across the lake. He finally kills an alligator with his rifle and the Mudmen then believe he is a gunslinger.

They help him off the island and give him a device from the old people…

Let’s talk about the device

I will stop telling you the story about Tim and will start the story about the future of APIs. Before I begin, I want to encourage you to buy the book and read the rest of the story and maybe the whole Dark Tower series. The movie sucks, by the way.

Allright. Let’s focus on the device. What happens with Tim next – he discovers that the device can do some stuff, like orientation in an off-road terrain, connection to (gps) satelite, turning the light on and off and answering questions. The description might sound like a modern Nokia for you (of course I am talking about the lights), but it does something more and those functionalities are not supported yet by any modern device.

Why don’t we look at the use-cases:

UC1: Can I eat that?

One of the questions the little Tim asked is ‘can I eat that mushroom’ and the device replied, hell no, this is deadly.

So the intent here is that the boy is hungry and he asks the device for information. How does the device know that this is edible or no in the context of the current technical world:

  1. Point the camera to the plant
  2. Send the image to be recognized
  3. Check if edible = true
  4. Return the result together with some information
  5. Store the info for future use.

UC2: Is this person bad?

I am not sure if that question was asked directly in the novel, but when we are talking about Maerlyn in the Dark Tower, we must ask the question.

The intent here is to understand if this person has a good reputation or ot in this case. How do we do that:

  1. Describe the person if there is no picture
  2. Analyze the content
  3. Form a hypothesis and return the score in good/bad scale

If I am not mistaken the returned result was something like 50/50, maybe useless, maybe not, because it brings some hope to Tim.

There are more use-cases in the book and I am sure there are more use-cases in your head on what a device like that could do.

APIs

So, what is the connection with the API? If you look at the use-cases above, you might ask yourself – are there any mobile applications which are currently covering these use-cases? Of course there are. Are there any APIs that do that? Most probably they exists. Then what is the problem?

Problem 1: The applications cover just one use-case, they are locked and they do not expose the information to the rest of the eco-system. What if I have an use-case similar to use-case one, but not for mushrooms, but for a plant or an animal? Shall I eat that animal or I shall run from it?

Problem 2: the APIs for many use-cases exist but it is not very easy to find them or to search for them from a device or a machine.

Let’s try and see if we could transform one of the use-cases in basic API calls to some services:

  1. Open and search google for image recognition API
  2. Plenty of options, some of them not really useful
  3. Select one to explore or go to Programmableweb or other discovery service and repeat 1
  4. I have found one, let’s use Imagga
  5. Learn how to use it and get the results.
  6. The search for a mushroom recognition API, repeat 5
  7. Combine the result and return it to the consumer

Even if they have an API blueprint this could take days to implement.

Then what?

What if we have a way the devices to find and request the APIs they need. Imagine a request that does that:

  1. Searches the API discovery service to find APIs for image recognition ordered by maturity and latency (we need good results, right)
  2. Then returns the API blueprint as a result to the most useful for us API
  3. Then searches for another API that could take the result of API 1, discovered in point 2 and to return the result to the consumer
  4. …and all this for milliseconds.
  5. Then repeat this for another use-case

This problem has been known for decades. Great APIs exists, great companies are investing a lot in building and exposing them, but they make the mistake of exposing them only to humans and to optimize the experience only to developers.

We are entering very exciting times and I believe the future of the APIs is to be easy discoverable by devices and used without the need of someone to programm the interaction.

I do know there are a couple of teams working on that and I really want them to succeed, but this could be a very hard thing to do without changing the mindset of the business and of the developers.

Onlot is on Product Hunt. Oh, Common!

For those who know me, I don’t get angry often, but stories like this piss me off immediately.  I am contributing to the Product Hunt, from time to time.

PH is a good product where you can find newly created products organized by categories. They allow you also to vote for newly added products and based on the vote of the community they receive some love – mainly some traffic and great visibility.

The key thing is – you should not encourage your users or followers to vote for you product/project/app, but to leave the community to decide whether is good or not. Also PH is a great platform for receiving very valuable feedback.

All that said, As an active member of the community I am receiving almost every day requests to up-vote something via one of my channels – twitter, facebook, mail, etc, which is clearly violation of the community “rules”, but recently I am bugged by a guy called Kostya Rypta, on several channels at the same time to up-vote something called Onlot.

Maybe is a good product, maybe not, but my love goes everywhere and I really want to scream that PH is not a marketing platform to put your links and to get some clicks by spamming people to up-vote, but it’s something more magical.

 

Bulgaria Web Summit 2017. A 2-day event about technologies and fun.

We are preparing our next release, in April, I thought it could be useful to give you a preview on what’s coming.

2 instead of 1

We will have 2 conference days, instead of just one. On the first day (April 7) we will be focusing on topics such as Privacy, User Experience (#UX), creating of user interfaces (UI), CSS, Design and similar.

Our first day speakers include Aral Balkan, Harry Roberts (aka CssWizardly) and Lara Hanlon from IBM Design.

On the second day we will go deeper into some programming techniques, mainly but not limited to javascript. Our speaker list for the second day includes: Google’s Tim Messerschmidt, Sebastian Witalec of Progress and Krasimir Tsonev – author of a couple of very handy Node.js books.

Affordable price

Unlike similar events across Europe, BWS is mostly organized for the benefit of the community and we are trying to keep the prices as low as possible; to give easy access to technology and ideas to many people without compromising the quality. Yes, it’s possible.

Fun

Having fun is always a must at our events! :) Our legendary after-conference party will be held again, our espresso bar will serve the greatest coffee possible and our team be on your disposal to give you a warm welcome. Also you can enjoy the great city of Sofia while learning something new at our event.

430 – This is Sparta..oops, not really :)

This year we will have just 430 spots available, compared to the 810 we had the last time. So if you want to book a place – we have opened the pre-registration for you. Visit the Bulgaria Web Summit website and click the button – start a great journey together with us.

I’ve launched a Mozilla Donation Campaign for #CyberMonday craziness.

I have started a small campaign today and I am so happy to see it working – 138 engagements so far and a few donations. There is no way to see the donations, but I can see more “I have donated” tweets in the target languages.

Please retweet and take action :)

Update: Actually there is a way to check the effect of the campaign. I used a web tool to count the tweets that every user can tweet after the donation.

I can see the trend here:
hashtag-tracking-for-twitter-instagram-and-facebook-keyhole

How I run Ideation workshop to hear “the voice” of the team.

I missed a step in my previous article on purpose. I was planning to write a separate article about that and here it is.

When I was completing my UX training by Chris Nodder I liked a technique called “Ideation” and I have decided to hack it and to use it for my own purposes – as a product person.

So here’s what I did:

Booked a room:

I booked a meeting room for 2 hours. There is no special requirement for the room – you just need a table, a few chairs and a projector. You can also do it in a quiet working space with no cubicles or in a non-smoking bar.

Provided some sweets:

I’ve bought some sweets, to help people concentrate on the topic while doing something with their brains, their hands and their jaws. Later I realized that it would have been nicer if I had brought fresh fruits or something more healthier (I’ve red that in a book called (Design)“Sprint” written by a couple of Google Venture folks).

Provided the tools:

I bought colored pencils and I printed out lots of templates to be used during the workshop.

The template

Ran the workshop:

So, yes, the workshop – the idea was to get different people together working on a task to get some ideas and fresh views.

I invited people from different teams – I got a couple of QA guys, a few of Business Analysts and a bunch of programmers.

Then I randomly divided them in teams. And I gave them the task – a short list of user requirements with the question: How would you do this? Use your imagination and the template to create a simple prototype for just 15 minutes.

There were a few basic rules:

  • The requirements must be always visible on the screen
  • You can ask me questions if you have any (I was the customer)
  • Don’t talk, just prototype and eat sweets.

After this 15 min period, every team had 2 min to present their work in front of the others. There was no opportunity to ask questions during or after the process.
Here are some of the results:
A few ideas A few more ideas more ideas

and even more ideas

As you can see – you can do whatever you want, but you have to be able to explain it after that to the rest of the team and to focus on how it fits the customer requirements.

Anyone can prototype!

We repeated this with a few more requirements and at the end we had a lot of ideas to discuss with the rest of the team.

The outcome:

The goal of this workshop was to hear “the voice” of the whole team. Some guys are shy (mostly the developers, oops) and can’t share their ideas while we are discussing in a meeting.

The output was to generate ideas and to show great approaches on how we can solve a customer pain point.

Solving customer pain point through simple prototyping and using my 20/10 rule

Another view of the JS prototype

Prototyping is part of my work. I don’t trust product owners or analysts that do not prototype ideas and share them with the customer or another stakeholder. I will tell you more now about my strategy and I hope it can be useful for you.

I have grown the ability to listen, remember and prototype nearly live time, but since my buffer size is not so large I ask the customer to do short 30 min iterations, instead of just Q&A for 1 hour.

How does it usually work?

 

First meeting

Let’s have this imaginary situation – a customer approached me to create a very simple (from hers point of view) application to help her to run their business better. The first 20 minutes of our discussion I have been asking questions and in the next 10 I have been able to come up with an idea. After 30 minutes I had this ready – ugly, but useful

Prototype on Paper
Prototype on Paper

The customer was happy with the development, so we moved on to the next screens, again using 20+10-minute approach. At the end of the second working session, I had the full concept on paper together with a lot of notes and small indicators of interaction. (see the arrows and the kpi indicators)

 

Second meeting

I put all of these papers on a wall and I have created the first digital mock-up by using balsamiq (one of my favorite tools). I tried to make it as close to the paper version as possible spending half a day in just making it “clickable”, so I can present it later faster.

 

Digital Mock-up produced after the first meeting.
Digital Mock-up produced after the first meeting.

 

After that I had a presentation session with larger group of stakeholders (from customer’s side). In general they liked what they saw and asked when they could play with it. I told them I would give them a prototype in a week, noting that the prototype would not look like the one they saw today since the appearance would have to come come from our design team (mainly thinking about UX guys first). The agreed principles, however, would remain the same.

 

Third meeting

With all the screens and my notes I contacted our UX guys and Information architects. They gave me some advices on how to incorporate our company style, usability patterns, and UI into the prototype, using the information I have collected. The final result was smashing. I have created a small Js APP using the company framework to make a real looking prototype.

 

Part of the JS solution
Part of the JS solution
Another view of the JS prototype
Another view of the JS prototype

The customer was happy with the job we have done. I gave them the prototype to play with and we tracked their way of learning the new interfaces and their journey inside the app. We have collected useful data and that helped us a lot in developing the product.  By knowing what everyone expects I can write better tasks to the developers and will shorten my communication time with the customer and other stakeholders.

It was a huge success and I am planning to use this approach again.

How to get number of twitter followers for any account (including yours) with PHP

I needed a few days ago a way to get my twitter followers’ count for an app and I did a small research on StackOverflow. One of the advices was to use another service for that, because the twitter API doesn’t support that anymore.

Yeah, but it does :) Here’s how to get it:

  1. Register your app from here
  2. Pull TwitterAPIExchange.php from here.
  3. Then write this piece of code and s/YOUR DATA HERE with the corresponding field from the point one. (see above)
<?php
require_once('TwitterAPIExchange.php');
$settings = array(
    'oauth_access_token' => "YOUR DATA HERE",
    'oauth_access_token_secret' => "YOUR DATA HERE",
    'consumer_key' => "YOUR DATA HERE",
    'consumer_secret' => "YOUR DATA HERE"
);

$url = 'https://api.twitter.com/1.1/users/show.json';
$getfield = '?screen_name=bogomep';
$requestMethod = 'GET';

$twitter = new TwitterAPIExchange($settings);
$output =  $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest();
	
	
$rs = json_decode($output, true);
echo $rs['followers_count'];
?>

 

Adding more? In order to fight with  twitter API limitations you can “cache” your variable and refresh it every 15 min:

<?php
require_once('TwitterAPIExchange.php');
$settings = array(
    'oauth_access_token' => "YOUR DATA HERE",
    'oauth_access_token_secret' => "YOUR DATA HERE",
    'consumer_key' => "YOUR DATA HERE",
    'consumer_secret' => "YOUR DATA HERE"
);

$url = 'https://api.twitter.com/1.1/users/show.json';
$getfield = '?screen_name=bogomep';
$requestMethod = 'GET';

$twitter = new TwitterAPIExchange($settings);
$output =  $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest();
	
	
$rs = json_decode($output, true);
$f_count = $rs['followers_count'];
apc_add ('total_count', $f_count, 900);
echo apc_fetch('total_count');
?>

Enjoy and follow me on twitter @bogomep:)

How to engage us, developers to use your API.

There are tens of thousands of API’s available. More to come. Most of the companies though, have troubles engaging developers to use them. So I have decided to share a few thoughts and ideas on how you can do that, based on my experience.

Design your API well

Nobody likes powerful, but not developer-friendly APIs. Follow the “standards” in the area, but innovate a bit to make us (developers) happy and eager to learn more. I will not spend more time here, because I guess you are already building your API if you need the information below. If you are looking for more info on that subject, click here to read an excellent article.

Document your API

If you want other people to use it – document it well. Add examples for the most popular programming languages. Copy/ Paste/ Run is the first step to a great journey.

Do not forget the not-so-trending programming languages at the moment. Target people who explore them – they are the right group to start with.

Eat your own dog-food

Ask your internal developers to use the API. Get the feedback from them and make it better. I am not talking about the developers who wrote the API, they must use it of course. Try to engage other teams within the company (if you have any) to use the API.

Organize an internal Friday APIJam. Sit together in a room for a few hours and do something useful using the technologies you work with – don’t push them to learn new language or technique – just use the API focusing on the value.

Come up with nice awards for the most active participants, get some sweets and drinks (even beer) as well. Then ask the participants to present their work at the end and listen to their feedback.

 

Hack your API

Organize hackatons with external groups or jump into such organized by someone else – ask developers to hack the API and to create a small app that will serve theirs needs – then promote the effort and make those developers rockstars by using your PR channels.

The goal is not to test your API (as you do during the internal APIJam event), but to show the value that your API brings to the world. The Call for Action should be something like “use our API to build your own App”.

Create more initiatives like that. Repeat();

Connect

Get in touch with the local developer groups and go the their next meeting with some pizza and beer. Show them your data, ask for their feedback, show them your API, don’t be afraid to ask for help.

Then create a fair process to work with communities around you – what you want from them and what’s in for them.

Discuss

Push the discussion around your API and manage it. Respond to comments immediately, ask for feedback and show how it is implemented. Post your API to reddit, Dzone and other similar sites and get real, honest feedback (together with some trolls, that’s inevitable)

Equilibrium

Treat your community members equally. Sometimes a new member can have a kick-butt idea and if you ignore him/her this can have negative impact overall. Focus on the value!

Partner up

Find partners to help you to get traction. Why don’t you contact your local startup accelerators and do something together to include your awesome API as an requirement for the next call? Does it work? Oh yeah!

Explore

Constantly explore new ways and hacks on how to engage the community, but remember – this must be a fair deal – every part should be happy and equally satisfied. This is your way towards an engaged community.

The best API ever?

No, it’s not yours. Is this one :)

 

What do you think?

Do you have a different experience? Please share!

 

More resources?

P.S The head image is under CC license by giorgiop5

 

How to measure customers’ satisfaction without asking them those boring questions

Let’s imagine you want to understand how happy your customers are with your product. According to the marketers there are several methods to do that, like NPS or Temper, but all of them require interaction with the customer.

Let’s be honest, most of the time people don’t want to answer stupid questions like “How do you feel about our new interface” and “Do you like our new red color?” and let’s be honest again and confess that no more than 10% of the users will answer those questions.

Of course you can use the data to create a magnificent dashboard and to convince the  management that your product rocks, but they can ask you some hard questions. “Then why are we losing money?” and “Why the Churn rate is so strange?” are just a couple of examples.

You don’t know.

Let’s take a step back and see what is important in this case. Let’s imagine we have a website where you offer content (video lessons, for example) and you are billing month by month.

 

Define your Groups and their Happiness KPIs

 

Let’s imagine that you have 2 main user groups (2 personas):

First Group – Constant Learners

Group of people interested in constant learning but not sure what they want to learn about (first).  These people will browse your content until they find something interesting and will spend time doing it.

What drives them?

  • They want to discover new topics.
  • They want to know a lot about everything.
  • They are interested in trending topics (no one will browse – How to create a chart in Excel)
  • They are thirsty about new knowledge.

Happiness KPIs (some of them):

  • Number of topics discovered
    • Minutes spent on each topic
  • Questions asked (onsite, outside)
  • Number of logins
  • Number of login patterns (do they log in every week or everyday at noon)
  • Number of points/certificates achieved (if you have such things)
  • Account lifetime

Second Group – Focused Learners

Group of people that are coming to your website to learn something specific – like python, because they need some tricks in their current work. They will find what they need and they will stick to it.

What drives them?

  • They want to learn something on a specific topic
  • They want something meaningful out of the topic fast
  • They want hands-on experience.

Happiness KPIs (some of them):

  • Finished % of  a topic.
  • Exercises completed (if any).
  • Questions asked.
  • Number of Video pauses (try to watch and code at the same time).

 

Ok. What’s next.

It’s obvious –

  • Define your own KPIs – you can use those above as an example.
  • Then try to put a “label” to any a small group of users. Is this user a [focused] learner or a [constant] learner. In the case above, get all users that have browsed more than 3 topics in the past month and assign them into the “constant” bucket and for the “focused” one, get all that have completed only 1 topic within the last month and have asked at least one question.
  • Track them to prove your claim – see if their behavior will remain the same – if it doesn’t – modify it.
  • The create a simple dashboard to visualize the data for the two groups – and create a marketing strategy around that – how to engage both groups and push them gently on the success path.

This is how you can measure customer happiness without asking your visitors boring questions and to give them the opportunity to lie, because most probably at the end of the month you will see most of your “We like this new red button”- type of users leaving your service forever.

 

Invison, please fix it

I visited today invision blog to learn about how to use some of their features and 3 seconds after I hit “play” on the video tutorial I got this, hovering everything, including the video I am interested in:

invision

Please fix it!

I understand the reason behind it,  but please can you hide it on the video pages? I am there to watch the video and to learn something new.

 

P.S The feedback was immediate :) Kudos!

 

Startups, go to Slovenia now!

I met with 3 Slovenian guys last week, just after my training session with StartupYard teams, and this become something more interesting that just having a beer with chips in a pub in the middle of Prague’s most awesome district – Smichov. (Yeah, Google and Skype are just around the corner + some of the most successful Czech companies)

 

First I’ve asked one of them – Petra if she can see the face into this ad:
before

She said yes, and after a few days I got this one from her.

after

 

Then Edina and Luka about more stuff and even I was a witness to a beth over the population of Slovenia. I forgot who won, but we had fun and all of this for like 45 min.

 

I got excited and  have exchanged a few more e-mail with all of  them about different topics and they are so awesome that I have decided to create an event soon in Slovenia to make the community even more successful.

 

Go to Slovenia

Now let’s get to the point – if you are startup from Europe, those awesome and creative guys have their call open for just 14 days more – until the March 15th.

 

Here’s why you must apply:

 

Another reason?

Watch the video. I love it!

 

Click here to learn more about their offer and on how they can help you to build, test and grow your product.

 

P.S This is not a paid CTA :)

Voice navigation – bringing your app to the next level?

This morning I was surprised by Google Drive. They offered me to use voice for some basic commands, instead of selecting them or using a shortcut (in my case).

A few months ago I created an experiment by combining the shiny SoHo Interface with a few good working opensource javascript implementations for voice and gesture to control the interface.

I knew that some companies were experimenting with it but maybe because I was too busy with other projects and day-to-day routines I hadn’t realized that the time for it has come. 

I am sure that the experiment by Google (seems useless from user point of view) will evolve into something more usable and can save a lot of time to the end-user.

 

Pros:

  • It’s fun – you can shout commands to your website and it will respond with an action.
  • Sometimes you can do something useful – like control your HTML5  game or even login to your favorite website.
  • Brings apps to people that can’t write (yet), but can talk – this is something huge.
  • Widens the horizon of the developers and companies – think about one more usability and User Experience layer
  • It is super exciting and it evolves well.

 

Cons:

  • There are some technological ones, but I don’t want to be a hater this time :) Yay!
  • The other one is what happens with all of the data collected by the mic? Some of the devices are known for listening all the time for the our precious voice. Should we start ripping batteries off from our laptops and tablets like we do for our mobile phones?

 

How to get started?

See my demo here – there is a video  for voice and gesture controlled UI. This is how a modern app should look like – you can use your voice, but also to listen to the voice answer sent back to you and if you feel like moving things around – use your webcam to do it..

 

More links:

 

  • I am using Annyang for the voice commands 
  • Gest.JS for the gestures
  • and this JS library to interact with the GoogleTTs engine 

What is the future?

Bright – pretty soon we’ll be seeing more and more startups combining the Voice with the millions of the APIs that exists to build even interfaceless applications that will work well at the beginning and then will replace most of those apps we use these days.

 

What do you think?

 

The saddest job of the IT world is … being a growth hacker

I held my second growth hacking workshop for StartupYard a few days ago and I did a small research – I was looking for a joke to use as an icebreaker at the start of the workshop.

So I was trying to find out some funny growth hacking resources using Google, but then I realized, there is none.

No kidding – see the screenshots:

Ux guys have fun :)

Ux guys have fun

Developers have fun :) Oh, yes they do

Developers have fun

The Growth Hackers have fun…nel

Developers have fun

Is this the most boring job in the world?