My First Failed Product Is Not A Failure

So I officially notified my users last week that smstolist would cease to be.

It’s sad to end a product especially before it was really even a thing. The cliche is that I “learned heaps of lessons” but it is true! I have learned a lot. This is not by any stretch a failure.

I’m reading The Lean Startup and I just wish I’d read it earlier! My next project will be validated properly and I know for sure that I will certainly eliminate much more waste the second time round.

No skill is refined without practise so I’m excited. Stay tuned for the next adventure.

Oh.. and RavenDB is awesome btw!
RIP CloudBird.

Building A Prototype

I’ve spent the last couple of months building a prototype in my spare time. It solves a fairly simple problem that I have a deep connection with. As to whether this app can become a product (save a business) remains to be seen. For now, I have a couple of users and the proto seems to be doing it’s job.

smstolist

For now I’m calling my prototype “smstolist” - it’s not an exciting name but neither is my app for the moment. Simply, smstolist enables users to push out frequent updates to a private list of subscribers via text messages (SMS) and email. Publishers (the users who wish to send the updates) send text message Updates to a certain mobile number and my app takes the Update and then emails it to all of the Subscribers (those who wish to receive the updates) on a list. The app responds to the Publisher with another text message confirming that the Updates were sent.

smstolist is designed for those of us who are perhaps a little less tech savvy. One might be thinking, “why do I need an app to do what my phone already does?” Or “why do I need this app when I can set up an email alias or distribution list?” The answer: “you don’t!” The thing is, many will find setting up that sort of configuration messy and my app makes it simple, particularly for those who consider just sending a SMS message a significant accomplishment.

I used the words “frequent” and “updates” earlier because my app does not attempt to do what Twitter or Facebook does - smstolist Lists are not public or for long “campaign” style email messages. If a user subscribes to an smstolist list then they are saying they want to receive semi-frequent updates and they want them “pushed” to them, rather than having to check some site to see the updates. In the future, it might make sense to give subscribers the option to receive SMS’ as well as emails for the receiving of Updates. This would help more with the “push” concept I think.

Scratching An Itch

smstolist solves a fairly specific problem for my case-in-point user at the moment. However I am interested in discovering whether this application could have value to others. It’s just an idea, turned tool which works fairly well for now for a certain problem. Can it work elsewhere?

If you can think of any other applications for which this tool might be useful, please let me know in the comments. I’m really keen to know if this is a can be a thing.

Can You Help?

I’m also inviting those who are interested in trialing this idea with me to set up a list or two if you think this can be of some value. Your feedback is the only way I’m going to know if this can work. Hit me up on twitter or in the comments and I’ll get you set up. It’s pretty painless.

Cheers

Rebuilding the Spotlight Search index for email on iPhone

Boom! It was pretty simple to fix.

It’s been frustrating me for a couple of years now how the Spotlight Search index on the iPhone seems to “hang around” much longer than one wants. The problem arises when deleted emails apear in Spotlight search results.

The fix is simple:

image

  1. Find the mailbox for the messages which have been deleted that keep appearing in Spotlight under Settings > Mail, Contacts, Calendars > [account where email is set up] and toggle the Mail option off. It might take a few seconds.
  2. Verify the deleted messages don’t appear by running another search,
  3. Then go back to Settings and toggle the Mail option back on. Your emails should return and the Spotlight index should be free from those rogue messages.

Happy days.

Reading Dependency Injection in .NET

So I sat down on the couch this morning with my new book Dependency Injection in .NET by Mark Seemann. I’m realy looking forward to this.

The reason for this post is more of a personal experiment. I’m interested in seeing how my expectations of the book will compare to my findings.

I certainly wouldn’t call myself an expert on DI/IoC or great interface design in general. It was only recently that I learnt how bad Service Locator was. Yeh, it’s ok, you can laugh. I do have what I think is a reasonable understanding of DI frameworks (I’ve been using StructureMap for a couple of years and more recently Autofac) but as I’m learning, that does not mean that I understand DI.

What I’m really hoping to get from this book is better design. It seems reasonable to me that DI and interface design is core to building maintainable applications; and it seems logical to infer that an application whose codebase is maintainable is designed well. Yes, I’m eager to learn more about IoC/DI but I’m much more excited to harness the underlying value or becoming a better designer [of code] rather than simply a consumer of best practises. 

I plan to follow up with some “lessons learned” -style posts as I progress through this book. Readify, my employer, has kindly allowed me PD days to do this so I want to “give back” something to the wider community in the hope that some of the nuggets of wisdom I acquire will be valuable to others.

An Android phone can never have what an iPhone has

An Android phone can never have what an iPhone has.
Before I explain, let’s have a bit of back story.

User Experience is a term we software people use to describe, more or less, how pleasant the process of interacting with a software system is. If you hardly click or type, the information you’re looking for is easy to find and you come away happy, it might be said that you had a good “user experience”. However, if you end up talking screaming to a device (yes a computer is an inanimate object) or nearly destroying a keyboard, perhaps you had a bad user experience.

The thing is, user experiences are not just limited to “users” in the software sense. We humans have bad experiences all the time. There’s the experience with the stupid “tap” device in the fancy hotel room when you go to use the shower: how does it work? I mean, once you figure it out it’s ok but when will these guys stop thinking up new ways to invent a tap!? There’s also the experience with the online store that might be smooth until you have to return an item. Where’s your A Class customer service now? It’s easy to limit scope of an experience (to users in the software context) because then things are easy to measure. I want a good experience throughout the whole process. I want the complete experience to be good. This is what Android devices can never have.

The Android OS, by design, is multi-platform. It can be used on all manner of hardware. This means it needs to be extensible and flexible so as to accommodate the differences in feature sets of various hardware devices. An iPhone’s OS does not face this challenge. It’s designed for a limited hardware set and so the playing field is narrow and predictable. The experience with an iPhone is neither hardware nor software - it’s both; and it’s good.

Samsung can make a great (hardware) device but it has to rely on the Android OS for the rest of the experience. Likewise, the Android engineers can knock out great features, but how they’re implemented on the hardware is not under their control.

An iPhone has synergy. Yes synergy. It’s one of those words that’s really misused by management types. I loathe the word. But it’s the right word. The iPhone’s experience is greater than the sum of the remarkable hardware and elegant software design. Android devices can never have that, and that’s why they’ll always be inferior.

Thanks to Andrew, Jason and Sam for reading drafts.

Killing the pain: autocomplete in emails

What bothers me about Outlook is how the autocomplete in the TO field seems only to search for addresses that are stored somewhere as a “contact”. What I like about using the iPhone (and I believe gmail does this too) is how I can start typing part of a name or an email address, provided I’ve already sent or received a message from said party, and it will autocomplete it for me even if they are not a “contact”.

I don’t have time to save everyone as a “contact” and I’m especially not going to waste my life on a painful “add a contact” experience. Hotmail has tried hard with their “one click” approach where the “your email has been sent” confirmation page includes the form to add the First and Last names of the new email address. This is good but most of the time I can’t be bothered with that either. 

How’s about more thinking in design hey? Wouldn’t that be nice. Assume that, if I have sent or received a message from joe.bloggs@example.com that I might want to send something to him again. Allow me to search for “joe”, “bloggs” or even “ggs@ex” and autocomplete for me so I don’t have to think about contacts or not-a-contact complexity.

I might also like to point out that Xobni were the first to relieve my pain some years ago when I was still forced into using the horrid Windows Outlook client. Xobni drastically improved the autocomplete for the TO field. I just think it’s a little sad that one needs a plugin to get this type of pain relief.

</rant>

What do you think? How do you overcome tools that force you into one way of doing things?

Stop following me!

So I like Dropbox.. Ok not true- I love Dropbox! But not enough to put up with these creepy ads that seem to be able to follow me all over the intergoog:

… yes! Everywhere!

And what bothers be more than the stalking is: how do they know I’m not a customer already? Maybe we use Dropbox for Teams at my work (soon we actually might. not kidding)?

If Google or AdChoices or whoever they are can get all this info on me, they should be able to leave me alone when I sign up for one of these products right? I mean, it’s only the advertiser and the advertiser’s client loosing out- they could be serving me other ads. I’m not exactly going to sign up again.. at least not on the say so of an ad who likes my smell.

It’s easier to manage 1000 good people than 10 amazing people

It Starts With Clarity

Clarity is quality communication. Being able to communicate ones explicit intent to another is not only a building block of family and business, but software too.

Unless your software is simple, easy and clear you’ll be fighting an uphill battle with users. Apple understands clarity, as does the tumblr login page.

You’re going to suffocate your friends and colleges with extra words, bad grammar, long emails and fluff. So why do the same with your app? Focus on the core of what you need to communicate and hack the rest out until the gold virtually stands alone.

Strive for deep understanding- you know when the gaze focuses or the head just tilts like “yeah, I get it”? That’s what you want. Produce that in your conversation, produce it in your copy and produce it in your app, the faster the better.

This is clarity.

Everyone is getting a refund for the entire month…