When I went to work for my first software company, a division of General Electric, software was an elitist industry and many products ran into the millions of dollars to buy and deploy.  The biggest choice at the time was which hardware and OS you'd buy to run your expensive custom stuff.  The immaturity of the technology spawned an entire systems integration industry and made complex bits of code called APIs and middleware necessary to duct tape things together. 

Once I was invited to an 8 hour meeting to discuss a custom feature a client had asked for.  The client was correct that the functionality was useful but engineering was designing a million dollar solution to a five dollar problem.  As you can imagine, the client didn't want to fund a big pile of spaghetti code to get this tiny, but necessary, feature and resented having to call us when they wanted something new or different.  Fast forward to today and many software companies behave like the world still works that way. 

A subtle shift is occurring and there is some nice maturity creeping into our industry in the form of tools anyone can use and easily customize.  It's early in the process, but today's technology shows great promise for tomorrow's large-scale enterprise market. 

Every company needs tools to build and maintain their website, social networking presence, run accounting, track inventory and so on.  These are common business problems and there are countless solutions to solve them; and yet business still struggles with finding affordable, high quality tools that won't drive their budget into the ground and their employees crazy. 

Here's how much things have changed:  just a few years ago, email marketing solutions were as much as $40,000 per year and a bear to use.  Today's email solution is a service you can buy online with a credit card for $20 per month.  Anyone can use it and build an attractive outbound marketing campaign in just a few minutes.  The provider gives you all of these wonderful stats you can use to measure your success.  And these tools are accessible to anyone who has a browser.   [Of course, they also mean your inbox is full, but you get the idea.]  Software is democratizing.

So, here's my advice to business software developers:

- Spend some time researching your market and prospective clients. Ensure your solution will meet their needs and is a better mousetrap than the one they already have.   If you're short on ideas, find a friend who works in an office and ask if you can see what they use to do their job (get permission from management).  You will be amazed how clunky and unproductive some business applications are.
- Deliver your solution and price it in a method that makes sense to your prospects.  If potential clients are not technically savvy, use a SaaS model and hide complexity away where it won't affect users.
- Complexity does not equal sophistication.  Have a relentless focus on building elegant solutions.
- Take security seriously.  Don't be the guys known for a security hole that allowed a hacker to steal all the accounts.
- Figure out the support and pricing models early in development the process.  If you take a lot of customer support calls, it kills your margin.
- Architect from the ground up for easy configuration.  Your goal should be that systems administrators can be trained and stand on their own quickly and any end-user can make your product work with a minimum of training. 
- Resist the temptation to build professional services into your model.  Fewer and fewer clients are willing to endure a long and/or expensive deployment.
- Invest in an outstanding user interface designer and make the goal that routine actions are no more than a couple of clicks away.  There are so many products that would be great if only they had a user interface czar early in development.
- Do a lot of research before you make technology decisions - it's not fun to rearchitect once you realize your underlying technology doesn't meet your needs.
- Never treat your customers as if they are stupid because they can't use your product.  The problem is with your product, not them.  Appreciate the opportunity to do better.
- Have a real subject matter expert - not your cousin or best friend, but someone who has been in your space, knows the issues, knows the market and knows what clients want. 
- Be passionate about your product.  You will spend a lot of time looking at it and talking to people about it.
- Have a fun side project to take your mind off solving complex coding issues.  Google is smart to give their employees free time to work on personal projects.  Sometimes you just need to switch gears and clear your head.

The democratization of the software industry is opening up an entire new world of opportunity.  Savvy developers will profit and more businesses will be able to emerge with better tools, lower overhead, and a stronger competitive advantage.