Quantifying the pain your (potential) client is having

Are you a consultant, or maybe you have a SAAS product. You are really good at what you do (programming/design), or your SAAS it the best and simplest in its niche. And somehow you don’t have more customers, or any. There may be hundreds of reasons for that, maybe your consulting services aren’t up to par with the competition, maybe your SAAS is to complex, or it isn’t pleasant to the eye. But what if all this is false, you do everything by the book, and still no
traffic?

In one of the last posts, How to sell a new technology to coworkers (and bosses, by proxy) I wrote about selling new technologies to your coworkers and bosses. And you should think about the bosses part here. As your clients and customers both handle a certain amount of money, you want from them. Be it a one off fee, or a monthly subscription. And in most cases, money is not the issue here (if your leads complain about your prices, think about getting better leads), but the financial and emotional investment a lead has in the old solution. And your job is  to learn to break them from it.

As we all know, it’s really hard to break from a software when you start using it properly. And this is basically what you are asking your lead to do, stop doing your old ways, and start using this new and revolutionary way that will change your life completely. That might sound true to you, and might even interest your lead, but what if they have 10, or 1000 users using the product you want to replace. How will you justify your new and groundbreaking technology while considering that you have to change the way a 1000 regular computer users do their job? Have you even considered the cost of switching from one software to another? You probably haven’t, and your leads have, probably consider it every time you contact them. You have to break from it right now.

Take your main competitor and study their software, or make an analysis of the system your lead wants to replace. The best thing would be, if you could watch people use the given thing for at least one day, spot the rough spots, the overly complicated procedures. Clicking 27 buttons and going through 10 different screens to accomplish one thing. Write all of it down, and turn it into something tangible, lost time.

Lost time is something we take for granted, time spent battling software that should work, but it doesn’t. I had the same issues with my business bank a while ago, but after I applied the following formula, the solution came into place. After you have written down the average daily lost time per user, multiply it by the number of users, and by 20, to get a ball park estimate of
hours lost in any given month. Multiply that with an average hourly rate for a worker in the field, and now you have your silver bullet. The amount of money they are losing with the old solution, compared to your solution. From that, you can easily form your price, and give your lead a fairly correct Return On Investment (ROI), which is the number a business person understands, and wants to hear from you, because they have to tell it to their boss.

About my bank issue, I calculated that I loose about one hour each month, with Java issues, and trying to log into the net banking interface. Multiplied that with 12, to get the yearly amount, then by my hourly rate, quantified my pain, and changed the bank. That simple, (after 4 months of agony, which started when I was out of town for a longer period, and had to pay some bills). It wasn’t easy, and wasn’t fun, but if I’m paying for a service, I want it delivered in a usable state. Your clients want the same thing. And unless they feel so much pain, they won’t do anything themselves, they might explore around, sign up for a trial, and never sign in again. This is where you apply your sales skills, call your leads (yes, by phone), and talk to them, find out their pain, help them to quantify it, help them to use your system, on board them properly, and someone else will have a hard time taking them away.

I wanted this post to be complementary to the last one, on selling technologies, but it took it’s own course while I wrote it. This happens, don’t be afraid of pouring your thoughts to paper/any other medium, and sharing them. Who knows what might come from it?

Overcoming the pirate mentality, and starting to value things

I’ve been brought up in a country where piracy was (and probably still is) imposed to you right from the start. Software licences being really expensive, and living from pay check to pay check, my parents, and probably many others, couldn’t afford legal software for their home computers. Sadly, it’s still looked at it like that. Companies are required to have licensed software, which is enforced by the authorities, but home computers running licensed software are something to long for. So paying for software (and any other digital content), becomes something you just don’t do. If a kid next door can get you a copy of windows, maybe he can get you other stuff. What if there is something they know, that you don’t? Maybe there is a way to download stuff from the internet, without paying the author?

There are of course many reasons for this mentality. People don’t have enough money to even buy their child a computer, but you also want a couple hundred USD or for Windows and Office. Let’s see if the neighbour kid can install that for 40$ or less. After that, it a smooth downhill ride. Need a fancy photo editing software, or whatever else? Sure. We’ve got it, for 10$ or less. And when your paycheck is ~$600 you really can’t buy an proprietary software licence that runs into $200++

I see this as a two way problem. One is the small, self published authors, artists, and software businesses, which don’t have the power the other ones have, to let’s say force whole governments to use their proprietary software in the schooling system and administration, or to enforce copyright laws. And especially if you are one of those people, making software, music, writing, or teaching for a living, please show the same respect to others as you would want to be respected. Most of them offer a no questions refund, so if you really see no value in the software or service, or even a book you bought, go ask for a refund, be honest, and you will get it. If you are a bad person, you can even keep the content you bought, but that is your karma on the line. Learning to think differently, and act differently, isn’t an easy thing to do, but you can start by changing the little things. Go and support people that make your life easier, you will be happier for it. And there is no better way of showing your support to self published writer, than pulling out your credit card.

The other side of the problem are big software companies, who set the standards for you, and you can’t really move away from that path. As it’s not an easy thing to do. The solution seems self evident, using free software, like GNU/Linux, LibreOffice, Gimp, and other very good alternatives to proprietary software. But what if I told you that there is a bigger problem? What if someone is forcing you to use proprietary software, what if you can’t do the same thing with LibreOffice and with Excel. What if someone is teaching your child only to use one software, the proprietary one? Can you buy a new computer and just install Ubuntu and LibreOffice on it? Of course you can, but can your child use it for school? NOPE. Luckily there is a solution for that, at least while your child is at school. And I found about it a couple days ago. School children all have an account with which they can download free, licensed software, while their education lasts. It’s a bad solution, but beats cracks and key generators any given day. Although I don’t approve of this drug dealer mentality, because it is exactly that, it is a good thing to have licensed software on your computer.

Business users (as I am one too), have to jump through many hoops to avoid paying that toll. I had to fire my business bank because even if they claim to work on OSX, there have been so many issues with it, that I’ve lost a lot of time trying to fix them. You can’t file your taxes without paying the toll, and some reports you have to do each month, and year, also require using proprietary software. Luckily, my accountant does that for me.

In order not to sound like RMS, and rant against all proprietary software providers, because I’m not doing that here. If you are creating value with some tool, be a nice person, and pay for that tool. I use OSX, and pay the Apple toll, but I have chosen to do so, no one forced me into it, or moulded me during school to do that. Think about it, especially if you are a software company, pirating a tool with which you gain a substantial amount of your profit. Just think about how it makes you feel when someone doesn’t want to pay for your hard work. Don’t be a cheap asshole, pay for software you use, or use free software.

How to sell a new technology to coworkers (and bosses, by proxy)

Have you been doing programming for a long time, in some old and boring, non-intuitive language or technology? Have you found that new technology everyone is talking about? Maybe it is Ember.js, maybe Angular, maybe even Ruby on Rails a couple of years ago. Do you burn from desire to use that new thing every day? Well, let me tell you from the start, it is not going to be easy.

I have had the same experience, with couple technologies in the past. Always looking for the next best thing. Whether it was asp.net MVC, Ruby on Rails, or git, as it was in my previous job. I failed the .net bit, and looking back, I’m not sad at all that it happened that way. Selling Ruby on Rails was different. Although I didn’t know about marketing and sales as much as I do today, I had a totally different approach, maybe not the best one, but the field to plant those seeds wasn’t very fertile.

The thing I changed was, showing the new technology to my coworkers, getting them to love Ruby, the same way I’ve fallen in love with it. Showing them the simplicity of creating a basic CRUD web application in Ruby on Rails. Making them the main advocates of the technology.

That is the basis of any product acceptance. Teach just one person, make them fall in love with the new thing. Talk about it, make a presentation, offer to teach anyone mildly interested in it. Because you have to get a following. And if you don’t get anyone to follow you, remember what happened with my asp.net try?

Selling to your manager, while going around your coworkers won’t work from the start. Your manager has their job, and while your job is creating beautiful and fast widgets, their is making sure you, and your team, produce enough widgets each day, to fulfil the set budget for that month. And they are really strict about allowing new technologies to come into play. Also, they have managers of their own, who they report to. Maybe there is some vendor lock, and you are unable to do it. Maybe the cost of training 150 people to use the new technology, just because one person says it’s cool, isn’t a really smart thing to do, especially if they appreciate their job.

Building a following is hard, and maybe the technology you found doesn’t have a big following in the world, or maybe it’s just too soon for it (Smalltalk anyone?). But if you are prepared to advocate it, and teach anyone who is mildly interested in learning it, create smart scripts with it, to help you with your daily job, putting it in contrast with the old and ugly technology you are using now, then you will succeed. Even if you don’t, you’ll have another tool under your belt, and you can always follow many of us who went freelance, to work with the technologies we like, and forget the ones we dislike.

Weekly review: Week ending October 19, 2014

I didn’t do much beside regular work this week. I underestimated the size of Benjamin Franklin: An American Life, so I’m still reading it, and it’s great. I knew almost nothing about the US in that era, so this is a very good history lesson, and learning about the life of such great man, which Benjamin Franklin surely was. Didn’t even manage to start the other books.

I wrote more than usual, and plan to hit at it a bit more from now on. Here are the posts I wrote and published this week:

There is one more pretty large feature scheduled to go out next week, so I’ll probably be under a heavy load too. That stuff gets planned in Wunderlist, which I really love using more and more, for private and business use.

Minimum viable feature

We have all heard about the Minimum viable product, and it is a great thing to strive for, if you are doing software development (or design). What in hell are the minimum viable features then? As the MVP(Minimum viable product) is defined as a product has only the bare minimum of features that allow it to be deployed, the same can be said for the features that the project is composed of. The guys from Basecamp once said something like this: Rather build half of a product, than a half-assed product.

While creating software, we often get carried away by shiny features we can add to the project, features that we may not need at the moment, or at all. Premature architecture optimisation is one of them, adding visual junk to html is another. Of course we all love shiny, scrolly, bumpy applications, but if you are creating a let’s say business application, you probably don’t need
that super fancy ajax loading widget that refreshes every 5 seconds. Or to have all of your 27 rows that get rendered in a select field properly cached 7 times in memcached, or redis. It just doesn’t matter at the moment.

What matters is that the product works according to the user story you have received. Same as the MVP on a bigger scale, when you get a new user story, ask yourself, what is the minimum possible set of code that I need to push this feature out. Thinking like this, you will create features in less time, which leaves plenty of time to write tests for your code (which I know all of you are already doing), and more time to spot out the flaws in your code, the user story, the UX, whatever.

Before you run out and create something barely usable, while finger pointing at me, please consider some base standards on how your application, and the features should look like. You can’t just put 5 inputs on a form, stick it on the page, write “Submit” on the submit button, and be done with it. You must make it look visually pleasing. It should also work fast enough that the end user can use it in a normal way, but not faster. While having super fast applications, where everything is cached, and vertically and horizontally scalable at the blink of an eye, if you are serving maximum of 42 users from your local government office, you could say you threw valuable time into something that you really don’t need.

I’ve comprised a list of questions I ask myself, which help in trimming down each feature to bare bones, while maximizing productivity:

  1. who will be using this? (how many people, what profile)
  2. what will be the impact of the feature to the whole system? (maybe some collision)
  3. can this process be reduced even more? (optimize work flow)
  4. should this feature be split in two or more features? (maybe it’s too elaborate)

Guiding myself with these, I’ve successfully produced feature after feature, all small and isolated, working their own things in harmony with the rest of the system. Now, to be honest, I’ve also written some bad code in the past, features that had nooks and crannies that I just had to put there. Or the story owner wanted them in, but that is a different story, about a really powerful and liberating word, NO.

Try to be concise, try to add only the things the feature needs to work. And hold yourself up to the project standard. If your project doesn’t have a standard, go write one. I could bet that no one will be mad at you if you create something good for the project. When creating the standard, remember why you are creating it, and keep it short and concise, with the minimum information needed to convey the information.