Small business software tips, news, and reviews   Easy online customer management - Less Annoying Software  
Displaying posts from January, 2010 (Clear Search)
Saturday, January 9th, 2010
By Tyler King
One of the things that I love most about working at Less Annoying Software is that we don't have any artificial barriers between us and our work.  If we need a new feature, I'm free to design, implement and deploy it without anything getting in the way.  When I'm done, I let Bracken know about it just so we're on the same page.

It's really tempting to try to add more structure to the process.  We could have more sophisticated bug tracking software, we could be more careful about documenting internal practices on our wiki, we could have a more formal review process before deploying new code, and we could carefully track how our time is being spent.  All those things seem like good ideas mostly because that's just how things are done.  That's how big companies do things, and it seems like we should follow their lead since they must know what they're doing.

It seems like a good idea to do what the big guys do, but it isn't.  Big companies have so much structure because they have to, not because they want to.  When you have thousands of employees, you have to use complicated time tracking software because it's impossible for the executives to really know how productive the employees are.  You have to schedule tons of meetings just to keep everyone on the same page.  You have to invest time and money in annoying infrastructure just to keep the entire company from collapsing.

Big companies do those things because they have to.  Small companies don't have to, and that's the only reason us little guys can compete.  We can stay agile and quick.  If a new technology or trend comes out, we can adjust without an endless approval process.  If a customer has an idea or complaint, they can send it directly to a developer (me) and I have the freedom to work on it immediately if it's important.  That's one of the main competitive advantages small companies have, so why ruin that by adding needless overhead?

In sports, you're taught to attack your opponent's weakness.  If a football team has a strong rush defense, pass against them.  If a baseball team has a great hitter, walk him and move on to the weaker players on the team.  When a small company tries to mimic the practices of a bigger company just because "that's how things are done", that's basically the same as deciding to match up your greatest weakness with your opponent's greatest strength.

That's not to say that there shouldn't be any structure at start-up companies.  The key is to identify the things that you need to do versus the things that you're only doing to maintain the status quo.  Over time you may need to adopt new processes as the company grows, but the company might not be able to grow in the first place if you get ahead of yourself.



Thursday, January 14th, 2010
By Tyler King
When Bracken and I decided to start Less Annoying Software, I left my full-time job so that I could dedicate most of my time to building our customer manager, but I still do some consulting work for my old company.  For the past two weeks I've been spending some time redesigning their signup process.  It recently became clear that I spent the past 20 hours of work designing screens that we won't actually use, and I couldn't be happier. I spend a lot of time on this blog preaching the value of simplicity and I'm not sure I've ever seen a better example of how great simplicity can really be.  

The section of the form that I was redesigning started out with about 6 screens that went into unnecessary detail and were pretty confusing.  The form worked perfectly well, but it was designed with an emphasis on functionality rather than user experience.  My first attempt at redesigning the section led to mockups of three different pages that were all kind of complicated.  I spent some time making the user interface more intuitive and it turned into four pages that were all incredibly simple.  I thought I was done.  The signup process was much easier and I was happy with the results.

When I showed the mockups to someone working on the project with me, he said, "why do we need these forms at all?"  It turns out we were collecting a bunch of information that we didn't really need.  It took about two minutes of conversation to decide to completely remove the section from the signup process which meant throwing away my work.  Awesome.

I spent about 20 hours designing these pages and I was really proud of the new form I came up with, so why am I so happy to see everything thrown away? 

I'm happy because it means I accomplished my task.  It wasn't even my idea to remove that entire section from the signup, but my goal was to improve the user experience of the signup process, and now it's way better.  That's all there is to it.  It's hard to remember this when you're working on a project, but the user won't see all the work you put in.  Users won't know how many people worked together or how many hours it took.  They'll only know if they liked the product, and getting rid of six pages from the signup process will certainly make them like it more.

I personally feel much better about spending 20 hours of work removing needless features than I would if I had spent 20 hours adding needless features.  My instinct was to defend my work and come up with reasons to keep the pages I made, but that's what gets so many software companies into real trouble with feature bloat.

If 20 hours of work leads to a two minute conversation which makes all the work obsolete, but also simplifies the product, that's time well spent.



Wednesday, January 20th, 2010
By Tyler King
I recently had a conversation with someone about what type of people a start-up company should hire.  I obviously weigh the importance of technology more heavily than most people, but I'm of the opinion that one of the first hires any company makes should be a CTO (or just a developer if we're being honest).

The purpose of this blog post is to discuss the merits of different types of developer hires.  Here are some assumptions:

  1. The company isn't directly in the technology industry.  If it's a tech company, then it goes without saying that one of the founders should be the CTO.  If you're starting a tech company and none of the founders have strong technical skills, then you need to go back to start and try again.
  2. The company will only hire one developer for now.  This person needs to be able to handle all technical needs for the foreseeable future.
  3. The company has enough funding to pay a very high salary, but they aren't swimming in money so they need to shoot for the best value possible.
  4. The founders don't have any connections to someone that would be a good fit.  If you know someone that you can trust, that makes the decision a lot easier.

Considering these assumptions, I see two main hiring questions:  (1) How much money can you really justify spending on a tech guy, and (2) what is the appropriate balance of experience vs. talent.

Let's start with the second question (weird, right?).  One important thing to be aware of when deciding between experience and talent is your own ability to measure both qualities.  Raw talent is pretty easy to judge when it comes to technology.  Any strong developer should be able to show you something they've built.  It could be a web app, a video game, or a school project.  Whatever it is, you should be able to play around with it and decide if this person has the technical skill you're looking for.

Experience seems a little harder to gauge because it is almost entirely intangible.  Working at a company doesn't necessarily provide "experience" unless a person is actually faced with challenging problems that they can learn from.  A resume is helpful, but there's just no way to know how a candidate will perform in the real world.  I've also never really believed that references are trustworthy.

Having said all that, I think experience is potentially much more valuable than raw talent, mostly because a candidate can only gain valuable experience if they are already talented.  However, because I don't think anyone is any good at evaluating experience, I would probably try to hire someone that has ridiculous technical chops with the expectation that they will need to be managed by a non-technical person.

Presumably, the company already has a leadership team with lots of business experience.  These people should be knowledgeable enough to guide a 22 year old programmer.  The main mistakes a young developer might make are almost entirely business related (poor communication skills, lack of end-user focus, etc.) and a non-technical person can help with that.  The opposite is not true.  If you hire an experience developer that isn't a technical rock star, they will eventually run into a tricky tech problem that they won't be able to solve.

You might be wondering why I'm acting like experience and talent are mutually exclusive.  That gets us to the first question we originally asked: how much should this developer cost? I think a company can hire great talent right out of college for about $80k per year.  Great experience will cost more like $120k per year.  Both will cost $250k or more.  I just don't think it's worth paying that premium for experience that other members of the company already have (for the most part).

An added perk to hiring a young person is that there is a small chance they will end up being truly remarkable.  You pretty much know the ceiling for a 35 year old.  If they're looking for a $120k salary, that means they're only worth $120k.  A 22 year old might be worth $500k, but nobody knows that yet so they have to prove themselves.  When a talented 22 year old asks for $80k, that's their floor, not their ceiling.

So obviously every case is different, but if I had to give general advice it would be to hire the most talented young person you can find.  Make sure a founder or manager will have time to carefully oversee this developer so that his or her inexperience won't be much of a problem, and hope that over the next few years, this person grows into the CTO your company really needs.  If that doesn't happen, hire a real CTO when the company is more mature and can justify the cost.

What do you think?  If you have to speak in generalities, what type of person makes for a good early technical hire?



Friday, January 22nd, 2010
By Tyler King
I spend too much time talking about bad software.  It's easy to point out the wrong way to do things, but that's not very useful unless I also give examples of the right ways.  With that in mind, I'm going to try to periodically post about software that I really like.  These posts will be a blend between concepts (what makes good software) and practice (you should use this specific software for this reason).  Today, I'm talking about my favorite image editor.

Most people think that there are basically two options for photo editing: Microsoft Paint (or something equally basic and useless) or Adobe Photoshop.  Photoshop can do just about anything, but it's too complicated for most people (including me).  If you want to use Photoshop, you basically need to take a class or spend countless hours banging your head against the wall as you experiment.

In addition to complexity issues, Photoshop has a glaring weakness: vector graphics.  In case you don't know, vector graphics are like normal images, except everything has been drawn (on by the computer) and the source of the image can be edited.  For example, if you draw a tree in MS Paint, it's a flat image and the only way to change it is to draw different things on top of it.  A vector file would actually store how you drew the tree so that you could go back and change the thickness of lines, colors, and anything else about the image.

For some reason which I can't begin to understand, Adobe decided that normal images (or bitmaps) and vector graphics shouldn't both be well-supported in one program.  They have Photoshop for images, and Adobe Illustrator for vectors.  Sure, Photoshop can do basic vector editing, but it's really bad.

So if I don't like Photoshop, what do I like?  Without a doubt, I think the best image editor is Adobe Fireworks.  I know what you're thinking.  You're thinking, "but Tyler, Adobe is incapable of making decent software. Even their PDF reader is a horrible embarrassing mess.  They are in the running with Intuit for 'Most Annoying Software Company Ever'"  Well, you're right about that, but Fireworks was originally made by Macromedia and then Adobe bought Macromedia.  Despite having several years to mess it up, Adobe has refrained from making any major changes to the software so far.

So what's good about Fireworks?  The main thing is that they didn't let complexity get in the way of basic functionality.  Sure there are super-complicated tools that no one could figure out on their own, but everything you know from MS Paint works the exact same way in Fireworks.  Someone who has never used it could easily figure out how to draw a basic picture, add text, cut and paste.  The Fireworks designers clearly realize that you can have powerful features without ruining the simple ones.

Also, Fireworks seamlessly switches between vectors and bitmaps.  If you draw a square, it stores that as a vector so that you can edit it later.  If you paste in a picture you took with your camera, that's a bitmap.  Vectors and bitmaps live together in perfect harmony.

Finally, one of the coolest things about Fireworks is how it stores the images.  Most image editors like Photoshop have proprietary file formats that can only be opened by other people with the same expensive application.  Fireworks files are actually just normal .PNG files which is a standard image format that anyone can view.   All the fancy Fireworks data is stored with the image, but it is hidden.  That way, if you send the file to someone without Fireworks, they just see a normal image.  If you send it to someone with Fireworks, the have access to all your wonderful vector information.  This makes collaboration much easier.

There are a lot of other reasons that I think Fireworks is way better than any other image editor I've used, but this is already about five times longer than it should be.  The point is, if you're looking for great software, try out Fireworks.



Tuesday, January 26th, 2010
By Tyler King
As you may have heard, Apple is expected to announce a new tablet tomorrow (January 27th).  All the information so far has been based on rumors, but everyone seems pretty sure that the tablet (or whatever they end up calling it) will basically look like a larger ipod touch and it will work like a netbook.  Several people have asked me why it's getting so much hype, so I thought I'd post my thoughts here.

First I should say, I hate Apple.  This post isn't about why I'm going to buy the tablet because there's absolutely no way I'm ever going to buy anything from Apple.  The fact that I won't buy one doesn't mean I can't be excited.  For example, I don't own an iphone, but I know that the popularity of the iphone had a lot to do with my Palm Pre being so excellent.

Anyway, there are two main things that I like about the idea of an Apple tablet.

#1 - Bridging the gap between phones and computers
Despite how advanced smartphones are getting, most people still don't realize that phones and computers are the same thing, just with different cases.  As soon as the public is ready to accept that an iphone isn't a phone (it's a tiny computer), that will open up the floodgates for innovation, and it will hopefully put an end to a lot of stupid mobile trends (like 99 cent apps, no one buys 99 cent apps for their mac or pc).

In case you haven't been paying attention for the past decade, the application platform of the future is the web browser.  Unfortunately, the general public isn't ready to accept that their phones can run web apps just like their computers.  No one demands a facebook app that runs on Windows 7, so why do we need one that runs on the iphone?  Supporting mobile applications (rather than mobile web applications) is slowing down development in almost every area.  The Apple tablet has the ability to change the way people think of mobile operating systems because it looks like a big phone, but it works like a small computer.

#2 - Exploring new user interfaces
For as long as I've been aware of computers, the only real way to interact with them has been through a keyboard or mouse.  This has really narrowed the way designers and users look at  software, because we can't think of a world where we can experience software in a more natural way.  The technology in movies like minority report seem like science fiction, but they really don't have to.  The limiting factor isn't our ability to write the software, it's our hardware's ability to interpret what we want to do with software.

I don't expect the Apple tablet to do anything too revolutionary, but it will at least start to open everyones minds to the possibility that a keyboard and mouse aren't necessary.  My guess is that when other companies see the Apple tablet, they'll start trying to come up with their own weird systems for interacting with computers.  The keyboard/mouse system has needed some competition for years now, and the tablet might just be the straw that breaks the camel's back.

So those are the two reasons I'm excited for Apple's announcement tomorrow.  What do you think?






View More Recent Posts


Subscribe to our RSS Feed
Subscribe to email updates
New posts will be emailed to you each night
Follow us on Twitter Follow us on Facebook
About this blog
This is a blog for small businesses interested in how they can better use technology. Most tech is targetted at either individual consumers or huge corporations. We'll help you find the tools that are powerful enough to help run your business, but simple enough that you won't need an I.T. team to use them.

There are two main writers on the Less Annoying Blog: Tyler has worked on the tech side of several small businesses and knows first hand what the little guys need, and don't need. Bracken is finishing up a PhD at MIT and he's always experimenting with any new software he can get his hands on.

We also run an online customer manager tool called Less Annoying Software which was created specifically for small businesses to track all their customer activity.
Search the blog
Tips and Feedback
We obviously want to write about things that you want to read, so help us out! If you are interested in reading about a particular topic, let us know. We're also always on the lookout for new software and tools to try out (and review), so feel free to forward information on any new tech you'd like us to write about.

You can reach us at blog@LessAnnoyingSoftware.com
Archives
2010 (16)
March (3)
2009 (34)
August (6)

© 2010 - Less Annoying Software, All rights reserved.