Bursting Software Business Bubbles Part 2

26 08 2008

We all have our favorite software development tools. The tools of our trade.  You most likely have yours, I know I have mine.  During the course of these articles I’ll expand on a few of them.  But first up I’m going to talk, as promised, about my two favorite business development tools.  Business plans and Marketing plans.

Before I do though, I’d like to elaborate on my statements in the Part 1 regarding the purchase of web templates, widgets and icons, a few people emailed to query this.  When I said “the best” I was referring to the best within my budget.  My budget is not huge so the “best” is not necessarily the “best there is”.  Like most things in life you get what you pay for when it comes to quality.  Aim for the best in your budget.  Don’t skimp just to be a cheapskate, if you can afford it do it and try to budget for the best you can.

OK.   Before we get to actually working with a business plan there’s the essential step that it seems most mISV’s completely ignore.  Now, you’ll note I said mISV and not ISV.

In this instance I have a reason for that.  Size.  Larger startups tend (though certainly not always) to have a team - even if there is only a single founder or partnership.  The team approach usually, again not always, brings experiences that most programmer started solo startups don’t have.  Namely experience dealing with marketing, finance, research and development and networks of folks in those areas.

These experiences, or even specializations, tend to go hand in hand with the first step.

Market Research.

You’ll hear from some developer quarters a chorus of howls dismissing market research as claptrap.  The same folks state marketing is bunk and the usual comments that come from folks who keep blaming piracy, customers, the world economy and space dust as reasons for why their mISV is as viable as a twelve month old peanut butter sandwich.

Truth is market research is probably the most critical step in starting up.  Without it you are blind.  You’re hoping to sell something to a market you haven’t even truly defined.  Ignore it at your peril. 

You might wing it - but the statistics are against you.  It’s one of the major reasons, not the only reason to be sure - quality and other factors play a role - for abandonware.

No market, no clue, no sales.  Or nearly as bad.  Wrong target market, no clue no sales - which basically means you have a product with potential and end up trying to sell it to the wrong people.  The old selling ice to Eskimos problem.  You can’t do it consistently and profitably.  You’re in the wrong market.  It’s imperative you know which one is right.

603px-Magnifying_glass_01_svg

Get Some Focus

Finding out, or doing market research tends to be problematic for mISV’s.  It’s because what we do and how we run our lives is defined by the computer.  Research?  Oh - Google, right!  

Wrong.  At least wrong as the only tool.

Sure, you can do some research using a search engine.  You can do some more ploughing through Usenet (increasingly less so as Usenet fades away), joining forums and all the usual stuff you’ll see people recommending.  These are valid tools. 

But if you’re going to be running a business - and your serious about this, I’m not really addressing hobbyist developers here - then you need to start thinking beyond the monitor and keyboard.

The real world.

Now there’s a scary thought.  Looking for information in the “real world”.  But guess what - it’s where our customers live.  For the most part it’s where their pain lives and their pain and solutions to that is what we’re about, or should be about.

You can ring around and talk to folks, that’s a great start, but I recommend getting off your backside and actually meeting people face to face.  I’m not going to go into the psychology for this, though it plays a vital role in terms of garnering real honest feelings and perspectives from people, but suffice to say you’ll extract and learn more from people by talking face to face and observing what they do than reading about it on the Internet or a book. 

In politics we call it “meet and greet”.  It’s an essential tenet.  It’s not just about buying votes (marketing and sales), it’s market research.  It’s when we find out what people are thinking, good or bad, about us, themselves, our competitors, their problems, their pain, their dislikes, their likes, their passions and their methods.   

Without the meet and greet approach you’re getting half truths and fabrications if you rely entirely upon electronic or Internet based research tools. 

People find it easy to tell white lies via email, on forums, in blogs, on website’s and even over the phone.  There is a simple reason for this.  There is no eye contact.  Eye contact is essential in human communication.  Remember, you’re not asking them what their favorite colour is, you’re asking them to provide information that may well affect your future.

So, if you’re selling Baseball Collectors Cards software then get out their to Baseball Card swap meets, or whatever it is Baseball Card collector folks do. 

Ask them what their problems are - don’t just talk about computer solutions!!  Most people are not developers or developer like.  They define their computer type problems in paradigms they are used to, you’re job is to avoid preconception of ideas and only gather the raw data for analysis.  Listen to everything and anything they have to say and make notes.  You never know what little nuggets of information you’ll pick up. 

Folks writing B2B software should be visiting business and talking to business people.  Nobody, B2B or B2C gets off the hook on this one.  If you think you know everything there is to know then you are dead meat in the marketplace as you’ll rapidly atrophy.

“So Not Cool”

AS my daughters would say.  ;-)

But seriously, you might hate this stuff, but no market research is lazy, stupid and a prophecy in the making.  The outcome of the prophecy is literally “beyond blind luck you will fail without knowing your market.” 

The statistics for blind luck are not in your favor.

Competition
competitor01-b

Competitive Edges

Another factor naturally is finding out what the heck your competitors are doing.

Whether mISV’s think they have competitors or not - they invariably do. 

A competitor need not be software.  When I wrote herpetology software my biggest competitor was actually the humble A4 spiral bound paper notebook. 

Folks found it easier and quicker to scribble animal observations into the paper notebook than to enter or even transfer them to a computer.  Portable devices were not as prevalent then (and had lots of compatibility issues) and so it was my job to recognize and address this. 

Another competitor I had was MS Excel ®.  Excel was actually easier to compete against than the paper based notebook because at least these people using Excel had made the jump to the computer from the paper notebook.  Importing spreadsheets solved this to some degree, though I never did come up with a viable method of importing paper.  ;-)

There are bundles and bundles of great books on Amazon that give detailed methods and ideas on how to do these things.  Because a lot of business development stuff is country and region specific it’s difficult to point to direct resources to assist you.  Most regions have small business development bureaus.  They usually have packs available on request, sometimes at a nominal fee, providing relevant local information and resources.

But nothing beats a little bit of creativity and  thinking outside the squares - and nothing beats a real “meet and greet” with people who are likely to be your customers.

Oh - and buy some market research books.  Read reviews, look for books with information relative to your region.  This should be part of your budget, not on top of it and not done with “what’s left over”.

I’ll continue in Part 3, aiming to cover some basic finance issues.

Scott Kane

Quote of the day:
I went into a McDonald’s yesterday and said, ‘I’d like some fries.’ The girl at the counter said, ‘Would you like some fries with that?’ - Jay Leno



Bursting Software Business Bubbles Part I

22 08 2008

You may well consider it a cliche, but there is no doubting the truth of it.  Most software developers and want to be ISV’s approach business development from the wrong angle.  In fact they fall into it.  They fall into because they start with the product and not the business.

businessBubbles

Business Bubbles

 

As startups we have to make absolutely certain we burst every single one of these bubbles.  The bubbles are the “programming is cool and business development and marketing suck”.

If you, me or anybody else insists upon adhering to these then we might as well get out of the game now.  In fact we must do so, else we litter the landscape with even more abandonware,  more unhappy customers, more negative comments about startup ISV’s from the public and media and more heartache - the heartache of failure - for ourselves.  It’s OK to not succeed - that’s not failure - but it’s not OK to stumble and bumble making the same mistakes, fail to learn from those mistakes and from the mistakes of the infinite failures before us.

The U.S. Small Business Administration claims stat’s of 50% of small businesses failing in the first five years.  Similar statistics (actually a tad higher) are reported here in Australia.  Check your local business associations for your local figures.

But they’re small businesses, right?  Bricks and mortar, crafty BS needlework or office typing or brick laying and stuff right?

Sure, keep throwing up the justifications via exceptions and you too can become a participant in the stat’s quoted.

While the reasons we fail as ISV’s might be different in some respects to those of more traditional businesses the methods of resolving the problems are pretty much the same.

It’s true we are lucky.  It does take less to capitalize.  You can indeed get by with less, it’s easier to boot strap in software.  As I stated in this blog I sold my car and cut back on things I felt I could do without to bootstrap the development of our company.  My “happy cloner” of MixAction has another strategy - he’s stealing his tools and ideas.  But what I’ve not revealed is that I’ve gone into debt to do this.  Not mega bucks to be sure, but none the less debt.  I’ve increased my exposure to risk beyond paying for a server for hosting domains and the basic stuff, right into carrying debt to have the latest compiler/IDE for full Vista support without pain, the best widgets in my budget to avoid reinventing the wheel, the fastest broadband connection available in my area (we are still on copper wire here so it is actually faster than the physical delivery mechanism), the best graphics, web site templates, icons and so on - and I’m still running short of cash. at times  Improvising plays a role throughout to compensate as necessary.

But why indeed would I do this?

Well, I’m not telling you or anybody to go into debt.  I’m one of those folks who refuses to have a credit card, I use debit cards online.  My wife and I have a mortgage certainly, but this is Australia and that’s par for the course, more home owners than renters.

The reason is simple.  I’ve boot strapped on nothing at all before - and it’s miserable.  It’s no fun.  In comes a competitor and leaves you behind trying to improvise and reinventing the wheel in a feeble attempt to compete “with the latest”.  The decisions I’ve made this time give me such an array of options for adding features to our first product that even I’m mind boggled.

In short I lacked sufficient capital and past experience taught me that zero capital is a lose/lose situation.  So I’ve raised the capital I need.  It’s no walk in the park, it does raise the risks involved, I do a lot more walking and train catching, but nothing ventured nothing gained and the risk is manageable and relatively easy to get a return on quickly or at worst mitigate.

Next to failing to plan, discussed below, is a lack of capital.  Capital gives you the push start you need, it gives you the opportunity to meet threats (potentially) and it reduces the need to do everything the hard way.  In my case I’ve not gotten a second mortgage, taken a “business loan” or gone whole hog on the capitalization as some folks do.  I’m simply not in a position to do that.  Rather I’ve weighed the relative risks, inline with the commitments of having a wife and two children and it is to be admitted no full time work, though I do earn money from other sources including public speaking, voice over work for company videos and answering services and so on.

The product is not the business.

 

What you read regularly here on this blog about what I’m doing is what most developers consider the “cool” side.  The coding and design side.  But for me there’s another “cool” side.  The business development side.  It’s the reason I’ve gone into debt in this instance.  It’s calculated.  It’s the result of learning through pain.  It’s the result of planning and planning to change the plan.

Developing the major product right off the bat for our new business would have been a stupid decision.  I needed a catalyst product to get the ball moving in the right directions. To lay the groundwork.   This doesn’t make MixAction any less important  Indeed it makes it vital as, as I’ve said before, it provides the basis for what will become our core product - Mixerlicious  - and MixAction it’s got an important life of it’s own as a product in our small stable.  No hints here on what Mixerlicious actually is or fills in terms of market segment…  ;-)

Over the next few posts I’m going to outline some of the business decisions we have made (my wife and I) and why, to some extent how - though for obvious reasons I won’t provide specific information as I don’t want to steer the wrong people into the right direction.  A generic discussion if you will.

 

mISV’s and their Businesses Are A Bit Like Socks.  We Never Seem To End Up With A Matching Pair

 

You know the old adage that you wash your socks and they never match up afterwards as a pair?  Could it be a plot of the unfolding universe designed to frustrate us in our mere mortal existence?  Or is it just a lack of planning and attention to detail?

When most ISV’s start a business they are full of the technology.  .Net or Win32, Delphi, VB, C#, Java, C++, Objective C, RealBugs RealBasic, Revolution to name but a few.

But how often do we read about ISV’s doing business planning?  Do you have a business plan?  I wish I had 10 cents for every time an  mISV has said “Business Plans are Bull Sh%$t!!”

As I tell my kids regarding their homework.  Failing to plan is planning to fail.

As ISV’s we are focused on the software.    The software is everything.  There is nothing else.  Got a business problem?  “Must be the technology!”  Customers not buying?  “Must be pirates!”  Not getting clicks from Adwords? “It’s Google’s fault!”   Making plenty of sales but little profit?  “It’s impossible to make any money as an mISV!” 

It’s like we throw a bunch of technology into a tumble dryer and hope what comes out has a semblance to what we actually intended, even though we don’t have a clue what that intention really was beyond ethereal statements like “make money” or “cool profit” or even more ludicrous “next Google”.  We throw around terms like “killer app” but never once consider what it is to have a “killer business.”

iStock_000005936375Medium

ISV Tumble Dryers Incorporated

 

When was the last time you carried a humble notebook and a piece of paper and sketched out your ideas for your business - not software - business?

Once? Twice? Last Year?  Never…? 

If you’re like most mISV’s and you answer honestly to yourself then all to often the correct answer actually is never.

You plan your software right?  (I hope you do).  You document your software?  (I hope you do).  You backup your source code and use a repository or even better source control, right?  So why not give the business the same attention to detail?

I’m probably giving you a headache with all these rhetorical questions.  ;-)

As mISV’s we live and breathe our products, not our businesses.  We mistakenly believe they are one and the same.  They are not.

Look at any successful business owner, they live and breathe the business.  Sure, they’ll wax lyrical about their cool product.  But the product is what they sell.  You don’t drive your product, you drive your business.

 

iStock_000005988115Medium

What are you driving?  Think about it for a moment.  When somebody asks you what you do for a living, do you say “computer programmer”, “software developer” or do you say “I’m the owner of a software company that creates…”

Which sounds better? 

If you think the last answer sounded better then you’re right.  It does to most people and it’s succinct.  It tells folks exactly what you do.  They’ll probably ask you about product details later, but your company is more important, your business is where it’s at.  What’s more important - Kellogg’s Cornflakes or Kellogg’s?

If you just code then you are an employee of the business you are supposed to own and control, not an owner making decisions and navigating the best course.

That’s really what it is too, navigating.  If you don’t have a plan how do you know where you are going?  When we’re kids we might like to take camping trips or holidays and leave planning to the fraidy cat “oldies”.  But as we get older we learn that an itinerary actually improves the experience and helps us avoid the traps.

Now, I’m going to be up front, I love business plans.  You know, those documents so beloved of bankers and financiers.  I used to teach startups (only a few were IT based) and those with a solid business plan were the ones that went on to form successful businesses.  Those with weak plans either failed or stumbled from one disaster to another.  It’s not empirical evidence, basing this on my own observations alone, but when viewed at a national level (as this was a national scheme, still running, I got to see and analyze those figures - a decades worth) the trend was identical. 

I’m certainly not suggesting you sit down for six weeks and produce a traditional business plan.  But I am suggesting you at least have an Executive Summary, a SWOT analysis, a Competitor Analysis and two years of approximate financial’s - your best estimate - not your best wishes.

I also believe in Marketing plans. 

Both of these documents give you an outlook, a focus and a grounding.  They’ll change, they’ll probably change drastically over time.  Sometimes in weeks, sometimes months and sometimes you end up in a whole new direction.  But at least you know where you started and have an idea of where you want to end up.  Once you have the base document, and in this age of cut, copy and paste, it’s a breeze to update them.  The “what if” potential of spreadsheets make the financial’s data a powerful tool beyond just seeing if you’re making a profit yet or not.

If you spend a week on the task of building a business and marketing plan, a few hours a day at the least, you are probably in a better position than your most successful competitor.

I’ve never understood how mISV’s can spend so much time trying to analyze conversion clicks, asking “how many downloads before a sale” and so on, yet completely overlook - no  - completely resist emphatically, this simple process that is the skeletal structure of their business.  Except of course that I expect they aren’t doing it because this stuff is not cool in their estimation.  But the reality is simple, going for a pee is not cool, but if you don’t do it you’ll probably die…

Before I wind up this first part, I’m going to state that the second part will contain some information on getting an idea on how to get financial estimations for your business and marketing plan(s).  Generically it’s not so hard, you have to be prepared to adjust the basics to fit your specific position.  I’ll also try and expand on some market research techniques.  Nothing exhaustive, I’m not writing a book here, but something for those who don’t know how to start to at least make a start if they should want to do so.  If you’re already running your mISV or indeed ISV you may pick up a point or two you can use, or at least spark something you already knew into operation.

 

Scott Kane

 

Quote of the day:
She had an unequalled gift… of squeezing big mistakes into small opportunities. - Henry James



Another nail in the coffin

21 08 2008

I’m not talking about MixAction.  That’s doing just fine, though I did manage to temporarily screw up this blog for half an hour today when adding a plugin.  It re-wrote CSS and other stuff that I’m pretty sure it wasn’t supposed to do.   Lesson learned.  I now have WordPress installed on a VM locally and test plugin’s before installation.  ;-)  While I was at it I changed the theme.  Still not what I want, but it’s a theme with more space on the page, so it’s closer…

If you’re a regular reader you’ll know I have an extremely low opinion of software download sites.  I blogged about them recently.  

Today a developer, Julian Moss , whom I mentioned had problems with McAfee’s SiteAdvisor posted an interesting result, which he admits was an accident, but none the less extremely relevant to ISV’s. 

 

A Download Site's Funeral

Death of a Download Site - Not a play by Arthur Miller

 

Julian  explains that he created a PAD file as usual for submission to download sites for a recently released product.  He did the usual submissions,  accidentally deleted the content on his own site and used the PAD file description to replace that content.  It was then he noticed:

A while later, while I was purging some junk listings from the download site database, I must have accidentally removed the listing for Morse Machine. Because I was busy, I quickly reinstated it by recreating the page using the description from the PAD file. I thought no more about it until the other day when I happened to do a Google search for Morse Machine and found that my own listing of it appeared nowhere in the search results, even though the page has a good page rank. The top listing for my program was the one from Sofotex, at position 3, followed at position 5 by the one from Top Shareware. Both listings had the same description, taken from the PAD file, that I had used on my own page.

Hmm.  Sounding a bit like the conclusion I came to in the article I wrote, hey?  Not that the conclusion was rocket science, but it’s certainly noteworthy that Julian concludes:

The question this accidental experiment raises in my mind is, to what extent is it worth automatically submitting identical software listings to hundreds of download sites, if Google is going to filter most of them out because they contain the same text?

Right on.  Exactly.  So where is the SEO advantage here to the ISV?  I’d love it if somebody could explain that one.

But, to be fair it’s OK for people like me to bitch and moan and rattle.  But what’s an ISV to do?  Without the download site it’s tough to get top score in Google, right?

Not necessarily.  But that’s a post for another day.  I’m aiming for Sunday on that one as it deserves some attention to detail.

 

Scott Kane

 

Quote of the day:
Thanks to TV and for the convenience of TV, you can only be one of two kinds of human beings, either a liberal or a conservative. - Kurt Vonnegut



OOP Development - But OOP Music?

21 08 2008

Yeah, something a little different and something of a taste in relation to what I’ve been doing to MixAction…

If you were following in June during the 30 Day sprint I blogged about and participated in then you might recall the early screenshots of MixAction.  If not you can refresh your memory by Clicking Here.

That screenshot gives you a pretty rough idea of how things stood at that time.  Right now to all intents and purposes it looks very similar, same UI elements are there, same basic principles, same color schemes and so on.

However.  The center pane, the playlist, in that screenshot worked pretty much like like any other audio media player.  You add an audio file and it goes onto the list.  MixAction then allowed you to set various parameters for special effects on the file and so on. 

In addition the program could auto increment and play the next track or all the tracks if you wished, adjust volume according to your preferences - preset by you - and so on.

I’m not going to give away the store in this post, not quite yet, but I thought I’d give some indication of how this has all changed and tease a certain person who is attempting a rather lame clone [which he is attempting to market at a price less than mine, which I read is perplexing him as I've not released pricing details anywhere. 

Plus I've never really said who my actual market or markets are.  You know what they say about people who assume... ;-)  ].

Unchartered Waters - Here There Be Dragons

null

The trick here is that while the UI hasn’t changed in the sense of overall look there are many additional options added that can not be seen in that screenshot.  Some additional smoothing over, some animation of certain parts where appropriate (instead of boring old hide/show) and most notably - the playlist…

See, it no longer is a playlist like you would expect to see in your average “media player”.  It’s now a playlist of “objects”.  Each “object” has properties.  Properties include things like lists of audio files, playback parameters, automation, special effects and much more.

You might be getting some idea why I was so pleased with not releasing.  Fundamentally this is an enormous paradigm shift. I had to shift it in order to ensure the product lived up to it’s name - MixAction.  Clearly it should do a lot of “mixing”. 

Now the premise was ease and automation and this is where the objects work so well.  By taking a leaf out of the precepts of object orientated programming and applying the basics, and the most relevant, to audio.

 I’d love to elaborate further on exactly what I mean by that statement, but for now it will have to wait.  Suffice to say I will be showing screenshots for you to take a look at later down the track.

The great thing about this is that it also allows for expansion, easily.  In fact almost (not entirely of course) zero coding expansion for effects and parameters as the audio engine is already coded.  It’s literally a matter to a large extent of enabling certain “properties” and wiring them up to the engine.

That’s the theory, though Murphy is bound to be popping in anytime to alter that certainty…  ;-)

The benefits to both me and the customer is that the basic product potentially becomes one of several levels in terms of complexity (functionality) and price points. Additionally the process is much more visual.  This was always meant to be a key component of the product.  It’s interesting to note and look back upon my own personal notes from earlier this year (back as far a January and February 2008) to see that much of this was in the original intended specifications.

Indeed the June rush saw a lot of this go by the wayside as it was physically impossible to code the product and implement this kind of drag and drop object implementation.

I think this should empower the person working within the program, both at the design stage and at the performance stage.  Many of the options going in during this iteration are “preset” in that while you can set parameters or properties they are limited to a set functionality.  This is a design decision influenced by the idea of release early…

Now I know what I just said.  That phrase “release early”.  Iterative via updates etc, the development paradigm that is certainly relatively recent, despised by some, but one that does make some sense.

As I have the June prototype I’ve been able to see both strengths and weaknesses in that design.  Basically this is a result of that process, evaluating, rethinking where appropriate, separating the GUI from code as far as practical and tweaking.  It’s also the catalyst for sweeping change in a good many places.

And there too is the problem with folks cloning unreleased applications, particularly without  domain knowledge.  I know where I’m headed, spent most of this year documenting and designing UI elements (some not included in June and then pulled back in now, or redone or retouched) where as the clone has to play catch up.  Indeed I’m finding it rather stimulating now as rather than just code up a storm I’m methodically planning the code to allow expansion in the future.  That task is almost done. 

There is massive scope to expand the product, iterative release is going to make “catch-up” of the clone rather difficult.

Oh - and there’s the marketing blitz that I’ll expand upon in the months to come.

Take care! Scott Kane

Quote of the day: What if this weren’t a hypothetical question? - Unknown



Why Simple Is Elegantly Cool

19 08 2008

Spent most of today working on the audio editor (still) for MixAction, as well as writing a new component - a drop down combobox with a treeview in it.  There are lots of these for Delphi, the commercial ones I can’t use presently because I’m already at my max expenditure for this month.  The free ones either don’t work at all or are a complete mess of memory leaks and other nasty’s or are GPL.  I have an allergy to GPL (for obvious reasons).  So I’ve just about finished my combobox.  :-)

You are probably thinking - “what’s it with Scott and Treeviews?”  It’s consistency.  When you present something in a UI in one place and need to represent that same thing somewhere else to the “customer” when they are working with the application it has to be consistent.  Even if the UI where you need to present it again does not afford the screen real estate to logically place it.  In the case above a combobox with a treeview was the most obvious way to achieve this.

Simplicity is elegant and I firmly believe “cool”.

Which brings me to the subject of tonight’s post.

peacock

A peacock.  You’ve seen them around, no doubt.  Very elegant, but it’s not just the color scheme, the patterns themselves are simple.  It’s the pattern and color combined but simple that makes the peacock elegant.  Remove one or the other and you have mundane, add more and you have confusion.

For the record, there is, however, nothing elegant about the vocalizations of a male peacock…   ;-)

Some of you might know Steph from his FollowSteph blog.  Steph is an ISV doing very nicely in his business largely due to his commitment (from what I what I see of his customers speaking) to providing top notch service and a quality application that is LandLordMax

I’ve mentioned a few other applications in this blog that I thought were worthy of linking to and commenting on due to their simplicity, elegance or all round good design.  I think LandLordMax is another such example.

Apologies to Steph for wasting his bandwidth for the purposes of taking a look for this article, but I downloaded the software to get a feel for what he is offering his customers.

What I liked about the program is that it is so clean.   It’s completely free of clutter and is a good example of a piece of software that does not suffer from what I refer to as the “Windows Clutterware” paradigm where the developer throws one of everything and fifty more to boot onto the UI -  just in case.

Nope.  Instead it does exactly what it sets out to achieve.  Manage properties, simply, cleanly and elegantly.

It is fair to say that the UI and colors are not strictly “Windows”.  No doubt lots of “experts” will be very quick to point this out as a flaw.  I’m going to be blunt here - it adds to the appeal, breaking conventions makes sense in the context he is doing it.  If you’re one of those folks still clinging to those nasty Win 95 gray interface elements and declaring them to be the way forward I’d suggest you look around you.  Things have changed and you’ re being left behind…

The colors and the simplicity are what really strike me as being right on the money here (beyond the fact software works and works well from what I can tell from a rather brief perusal).

This is significant.  I think the design of his software, LandLordMax, reflects directly on Steph’s ideas and implementation on how he runs his business.

The question here is how many of us can really say that?  Especially those starting out or thinking about starting out? 

I’d be prepared to make a, somewhat educated guess, at less than 5%.  An additional 2% learn it the hard way and the remaining 93% leave money on the table and/or disappear in a puff of smoke - or ether.

We’re programmers, we set out to build programs, right?  Well it may be correct that we do that, but its’ wrong that we actually end up doing it in practice.

It’s businesses we should be building. 

Our focus tend to be on the product.  Steph has a good solid, well designed product and what appears to be a good solid well designed business.  Think he lucked it?  Really?  Think again…

Scott Kane

Quote of the day:
Inspiration is wonderful when it happens, but the writer must develop an approach for the rest of the time… The wait is simply too long. - Leonard Bernstein



The Colonel, Secret Recipes,11 Herbs and Spices

17 08 2008

OK, corny subject lines aside, nobody really believes this KFC stuff right?  ;-)

But seriously.  Ever considered why it worked?  What made this such an attractive idea to KFC and their customers, beyond the “Finger Licking Good” moniker?

Promotion, marketing, push, clout and an incredibly overzealous dollop of audacity to name but a few.

kfme

On Friday I wrote about a certain yobbo, over whom I’d gotten rather aggro about,  due to the fact he’s cloning MixAction.  I’ll be quite honest, it did get under my skin, probably reading what he and some others wrote in the forum and their attitude to purchasing development tools made me a little more aggro than otherwise. 

A quick submission at the BSA made me feel a lot better though.  ;-)

So.  That’s the theme of this post.  Herbs, Spices, Secret Recipes and my own overzealous dollop of audacity.

Hey.  I was cloned before, back in the 90’s with my last application.  I survived it then.  My sincere thanks go to those folks who posted some encouraging comments on this blog in response to that post.  I really appreciate that.

So talking to my best friend over the weekend, who also happens to be my business partner and wife (and not in that order, or any order, but the order you prefer if you’re reading this, dear <g>) I/we came to the conclusion that I really should push on with documenting what and where I’m at here in this blog, probably without the aid of screenshots and deep detail, as per before.  Mainly because it’s been a great way for me to document what I’m doing, it gives me some perspective seeing it in writing and I hope it helps and encourages others in their efforts and engenders the same spirit of communication.

This took a great deal of talking about, I’ll be quite frank on that.  But after analysis of the executable I managed to retrieve, ;-) . I have a pretty fair idea of where this guy is at. 

Where’s he’s at is not where I’m at and so the threat doesn’t seem anywhere near as bad as it did on Friday.  Indeed, as several others pointed out in comments to that post, a business is more than just building a product.

I guess one of my issues was the pressure on me (that I’ve put on myself) to produce ASAP.  There are folks waiting for this product, from vendors to customers, whom I don’t want to give the impression that it’s not actually getting there.

Development is a slow and tedious evolution.  While many readers may not buy into biological evolution, I’m sure any experienced dev’ will agree that software development - if not indeed business development - is the reality of “evolution” and not “creation” in this particular area.

Anybody can create - but few manage to evolve.

So those who are eager to see me release, please pause and consider a few items that I list below.

  1. MixAction is not your average bear.
    I’ve rejected and not included from the start the normal “audio” paradigms present in existing software products in order to make this something somebody without an audio degree can use.
  2. To do that I had to simplify.  Simplifying introduces complexity.  It’s a conundrum.  Simplify complexity and you have to do a lot more work to get the same job.  I argue this is a programmers task.  It’s our purpose.
  3. The big June push was cool.  But it came at a cost for me.  The cost was dropping to many features.  Those feature drops would become harder to introduce later.  Mainly because while customers would request the features the UI would become more complex.  The UI becoming more complex adds to bloat and, clearly, complexity.  This complexity in turn causes the starting premise to become less valid each version update.
  4. I need to add more “Mixing”.  Sounds logical in context - it’s called “MixAction” after all.
  5. So I’ve had to design an editor for audio that allows a plethora of cool things to be done that didn’t break the MixAction UI.

So that’s what I’ve been up to the last month.  Building an editor for audio specifically with a MixAction view of the world.  It’s name is MixAction Studio.  It’s a complimentary product and part of the end sale price.

It’s not another clone of Acid Pro or Sonar or the others that are out there.  What would be the point in that? 

Instead it’s taking audio and turning it into objects that can be manipulated, kind of like how us developers (and to some extent graphics designers) have objects we manipulate through properties.  That took thought in respect of context and meaning, and design.

Initial usability tests on this UI for the editor have already shown some areas needing adjustment.  There is a fine line between “clever” and “failing to intuit” in UI design.

So I’ll be expanding on this in the weeks ahead, talking some more and just prior to release I’ll be publishing screenshots.

Have a great, Sunday!  :-)

Quote of the day:
Now I know what a statesman is; he’s a dead politician. We need more statesmen. - Bob Edwards

*The KFC Logo and “The Colonel” are Trademarks and Copyright of the Kentucky Fried Chicken Corporation.



WYSINWYG - What You See Is Not What You Get

15 08 2008

Brief post here from me tonight as I’m going to keeping a close eye on Tom Biscardi make a complete idiot of himself “tonight” my time, “today” USA time.  If any of you are following the “news” about this “Georgia Bigfoot” dubbed the “Georgia Gorilla” by Loren Coleman then I’d warn you not to believe a word.  I’ve been following this for some weeks (before the media “broke it”) and its’ been a sickening side show that would make Barnum roll in his grave.   No.  It’s not that I’m some kind of Big Foot watcher, the kind of “undiscovered” critters I’m keen on hearing about relate to my hobby of herpetology.  Such as the recently discovered “smallest snake” and “smallest lizard” in the world.  Not all undiscovered animals are wacky.  But the sideshow coming up over this Georgia stuff should be a ROFL!! 

But that’s not what the subject line is referring to.  Rather I’m talking about the product I’ve been working on and blogging about here called MixAction.  The one from the June 30 Day exercise.

As you’ll remember I declared I wasn’t finished and didn’t go to release.  In fact I went as far as to call it a functional prototype.  I’m really glad I did this.

The program has changed a heck of a lot since June and the screenshots and discussion I posted here.  Some things do indeed remain the same.  But some of the premises have changed.  For the better.

stupid_is_cloning_in_public

Now, originally I was going to expand on this right here inside this blog.  However.  A certain person who shall remain anonymous contacted me to tell me about a forum in which a character of no fixed genetic value as a human being is cloning the application based on the screenshots posted here.

Wow.  Is that lame!! 

I knew the risk of posting publicly but this is an unreleased, un-marketed software product.  My thanks to the person who contacted me as I was able to access the private forum concerned and read the discussion. 

All is fair in love and marketing, even if it cost a few dollars in order to access it legally.  ;-)

Here’s the kicker.  What was shown here in concept is nothing like the product as it stands now.  I’m not going to say I contrived this, as I did not.  It’s a happy accident.  But as it turns out a rather amusing one in some respects and every bit as good as if I’d planted disinformation in the first place.

To my new found competitor - good luck with your endeavor.  Despite your comments about me and your vision of “empire” (gotta love the egomaniacs) there’s plenty of room for competition yet and it’s not over until the obesity challenged lady sings.

My other point, directed at my new found admirer is - have you budgeted for what is going to be an expensive product to promote?  It’s nature is hardly something people just Google for, or are you still convinced they’re going to beat a pathway to your door?

Now.  I’d be a fool to expand on how my own product has changed in light of what is now going on.  So I’m not going to do so. 

However I’m still going to blog about issues openly as I bump into them.  This post is one such issue. 

I’m flattered I’m being cloned, so early too.  But I’ve got to wonder about the old domain knowledge issue… 

Judging by the questions the illustrious boy wonder was asking in said forum I’ve also got to wonder about his coding skills. 

But I can’t complain, posting an alpha link to an exe download in a forum and leaving it on your server has to be certifiably stupid. ;-)

Scott Kane

Quote of the day:
Zoo: An excellent place to study the habits of human beings. - Evan Esar



ISV For Dummies- Reasons For Not Starting Up

13 08 2008

As I’m still polishing away at MixAction and not ready for release, still, the posts I’ve been making here recently have been more general in respect of mISV issues.  This post continues that trend, I’ll be talking more about progress on MixAction later this week.

Recently on The Business of Software forums a statement was posted “Idea clearance“.  A few suggestions were put forward for software ideas should somebody looking for a product care to pick them up.  I’m not going to say here these ideas were bad, that would be untrue and unfair on the person posting.  But I am going to say that if you need these ideas for creating a new product you really ought to be considering not starting up - period.

Sounds pretty harsh.  But honestly, the world does not need yet another media player.  As a basic device aimed at consumers, serving no more purpose than iTunes, WMP or the horrifically concept challenged WinAmp - a product, it could be argued that has gone from mediocre to sensationally wretched. 

Now, I’m only using the media player as an example here, other suggestions were made, but to my mind this is the one that sticks out best in terms of want to be mISV’s looking for a product and choosing a sure fire loser.   Funny coming from a guy writing a special purpose “media player”, but the catch is it’s special purpose.  It’s not just a “media player” and does not directly even try to compete with the “big three” detailed below.

The poster suggested some ideas for such a player that included:

  • Isn’t bloated
  • Fast and resource friendly
  • Catalogs my collection efficiently
  • Flexible searching
  • Can play everything under the sun, including streams
  • Find duplicates

I’m going to deal with each of these in this post.  To say they are entirely subjective is an understatement.  In fact trying this is a recipe for mISV disaster, and I’m going to give reasons for why on that too.

First, before anything else, it’s got to be understood that competing with applications that come pre-installed on an OS is starting off on a foot that only a three legged person possess.  Now if you actually are Jake the Peg maybe you do have a chance.  But let’s face it, how many of us really do have that extra leg?

OK.  So Rolph Harris is a dag.  Humor aside the point is that this is not a likely scenario for a human anymore than it is to try and “sell” a product that competes with OS installed tools that are “freely” given away. 

Sure, you might pick up some connoisseurs who may indeed love it - but can you live off of it? 

I mean that’s the goal isn’t it? 

The “V” in ISV stands for “vendor” and a vendor vends, charges, makes money out of a product or service.  In fact the only way you’re going to make money out if it, real “I live on the proceeds money” is if you can sell it to a wide enough group of people. 

Frankly I would argue you have Buckley’s hope of really making it with a product like this - a mere “media” player fitting all or any of the criteria above.  Ten years ago, sure, you would have been “there” for the birth of Win-Amp”, or the the development and death of Audion on the Mac (the “almost” iTunes predecessor and that link, Audion above, is an excellent read too, don’t miss it). 

Alright - who the hell am I to make this proclamation after all?

Fair question.  The answer is a person who’s watched developer after developer bash themselves onto the rocks of economic extinction because they didn’t see the lighthouse.  I moderate three “shareware” groups on Usenet and have seen developers come and go.  In far to many instances they were trying to market something like this “media player” suggestion. 

Keep in mind it’s a snap to clone too.  The 30 Day challenge, blogged about and something that I participated in here during June would be the kind of time period a newbie developer could produce such a product.  But then along comes somebody with better coding skills and does it in under a week.  Goodbye USP and if that person is a better marketer to boot you’re screwed, even if you really did have the “extra leg” we talked about above.

Don’t think so?  Try it.  Post the challenge on a blog and tell us about what you’re doing.  Then watch the “attack of the clones” - even if you can sell enough to pay for server costs - and I firmly believe you won’t.

With the opening gambit above we’ll look at the “features” next.

  1. Isn’t bloated

    Lets see now.  Define “bloated”.  Is that anything over 50k, 100k, 300k, 1 meg, 3 meg?  If you’re using .Net you’re pretty much out of the game by those measurements already.  VB?  Ditto.  Delphi?  Ditto, though you could use Delphi with KOHL (good luck with that one).  Java, nope.  C++?  Sure, it could be done.  But how long to code it?  Assembly?  How long have you got again?

    Basically “bloated” is entirely relative in the context of size of the executable.  “But I’m talking about feature bloat” I hear you saying?

    Fine.  To many features spoil the broth, or some such twisted analogy.  But out of the six gotta haves for this “idea” we have three elements of bloatware features. 

    A) Catalogs my collection efficiently
    B) Flexible searching
    C) Can play everything under the sun, including streams

    If you know your audio and indeed programming you know automatically that cataloging with flexible searching is going to require some kind of local database, whether it be something tiny like SQLite, something proprietary of your own invention or another third party solution.  XML is a possibility, but it’s a cow to parse on the desktop and not as fast as a dedicated local dataset with indexes.  Good luck on caching it too if you need to read just portions in.

    So we have “bloat” there. 

    So far we haven’t even gotten to the stuff like the UI, and I’ve not looked at item C yet - audio formats including streams.  Coding your own code to access “everything” under the sun is no mean feat.  Indeed some of those file formats prohibit you doing so unless you use their libraries, which means DLL’s (or your platforms equivalent), plus the whole DRM debacle and coding for that (which you are going to have to pay big dollars to do legally)  You have to code for DRM to “make it” with this app because if you don’t you’re not in the game with the big three, iTunes, WMP and WinAmp.

  2. Flexible searching

    How?  As above a database is going to be the most efficient method in terms of time investment and coding ease, reinventing the wheel is, well, pretty lame at this point. 

    But what kind of searching?

    Searching on every element of an MP3 file?  Which version - IDv1, IDv2 or IDV3 (and their branches)?  Cool for cats, what about Ogg?  Whole new tags to parse.  Then there’s APE, Flak and a bunch more. 

    The bloat is creeping up now… 

  3. Can play everything under the sun, including streams

    Whoo-hoo!  Now we’re really in bloat-ville!  ;-)

    Taken a look lately at what “everything under the sun” in terms of audio file formats actually means (note - this post hasn’t even mentioned video formats which of course would be included in a “media player”).  They are a massive list.  Some are proprietary and can’t be licensed at all, some are specialist, like the Acid Pro loop format that is an extended version of WAVE format. 

    How many bits?  8, 16, 32 or 64?

    Then you’ve got a bit rate.  A nice long list there.

    Streaming?  What.  Icy?  There’s quite a few of those out there too.  More “bloat”.

  4. Find Duplicates.

    We’ve not even included the code to play the audio files yet, let alone video, nor the niceties Joe and Jill Sixpack in their endearing diet of clickware addiction demand like graphic EQ’s (how’s your logarithm knowledge?), compressor/limiting (read any good books on decibel algo’s lately?) and of course the totally essential and “kewl” defining visualizations. 

    But we’ve got to find duplicates huh?  OK.  This is doable.  Not even rocket science and well within the reach of a startup mISV.  But the cost?

The cost is this.  It’s now bloated

You’ve failed on the primary directive.  We know it’s primary because it was first in the list of “features” for the suggestion.  That primary was “Isn’t bloated.”

In summary.

  1. Bloat is in the eye of the beholder.  Bloat to me is essential or acceptable to you.
  2. Most people wouldn’t recognize quality audio if it reached out, shoved a spoon down their ear and poured itself in.  That’s not just me saying that.  The proof of that is that people listen to MP3 files over the better fidelity CD or WAVE file and beyond those.
  3. If you pull off the above you are competing with the big three freebies.  If you actually can do that, that is to say you are the incredible Jake the Peg with the extra leg, then somebody is going to clone you - or cut your extra leg off, whichever is easiest.  And they will. 

Next post I’m going to spoil other aspirations you might have, discuss strategies for picking fights with old ladies, holding intellectual political discussions with two year olds and…

Then again, I might just blog about my progress on MixAction….   ;-)

Scott Kane

Quote of the Day:
At the working man’s house hunger looks in but dares not enter.
–Benjamin Franklin



We Don’t Own Their Bloody Computer!

10 08 2008

Shockingly most of us developers would probably agree with the above sentiment.  In fact it’s logical, fair and rational is it not?

We’re logical, fair and rationally educated are we not?

The reality though is quite different.

We’re an arrogant bunch of SOB’s who treat “users” and their machines with contempt by and large

OK, your’ re shaking your head “no”.

Maybe you are an exception - but then how much self analysis have you applied to your own attitude? 

As much as you apply to your code?

You can see some evidence of this in how we define people who purchase software from us.  We call them “users”

Now, your local supermarket, Mom and Pop (or Mum and Dad if your in a place other than the US) store or even your bank don’t refer to you or others who patronize their establishments (buy things) as “users”.   They have a socially acceptable noun for such people.  Prepare for a shock as they call them:

“Customers…”

Yewwwwwww!   How much can a koala bare?  Referring to stupid “users” as “customers”?

supidisastuiddoes

Stupidity in others is defined in this industry by a group of people who spend their whole life manipulating abstract objects using processes that the average human being neither needs to know about nor ever should care about it. 

It does not make them stupid nor does it make them “users”.  They are customers.  Try a paradigm shift, why not call them what they actually are?

Alright, this ties in with the opening premise because how we treat (I’m not going to refer to them as “users” from here onward in this post) our customers is demonstrated perfectly with our willingness to violate the machinery they own with whatever funky routine we think up.

Look at the Windows Tray.  The number of programs that install unnecessary icons to access them on the tray is phenomenal.  No choice, no if but, wham and it’s on the tray, executes at Windows startup and the dev doesn’t give a flying fig.

The dev and his software is more important than the user? 

Couldn’t you ask first if it’s OK and let them choose?

This arrogance is displayed by Windows dev’s large and small.  From the biggest of the big to the smallest mISV and even freeware!

It’s a major PITA.  People have their machines working the way they want them to work - and you and your program do not count!

Sure a lot of folks don’t appreciate the impact of multiple applications installing and running at startup and the impact of running processes one doesn’t need.  But those who do now despise you - with complete justification. 

In fact - it makes you stupider than the people you contemptuously categorize as stupid!

Stealth Installs

Microsoft have always been good at this one, though they’ve toned it down in recent years.  But it’s the standard offering of the malware and spyware developers.  I’m referring to slipping in something unexpected in an installer or even a program update.

One of the beautiful things on the Mac is that this kind of shenanigans is relatively unknown (and that’s coming from a Windows dev).

So why the hell are Apple slipping stealth installs of Safari onto Windows systems that have iTunes installed?  They’re still doing it too.  I like and use Safari at times on one of my Windows boxes.  But one of the boxes I administer did not have it installed.  A stealth install went through this weekend.  Sat.  9th August 2008 with an iTunes update.

Apple - I have a lot of respect for what you guys do - but this is every bit as contemptible as some wannabe wanker  installing Gator onto my system.  The “customer” has the right to choose - even if it is “free”.

Temporary files.

They’ve always been a messy problem.  In fact on Windows machines we should rename the directory and the contents to “permanently forgotten about files”.  Made worse that some genius at Redmond put them all into a hidden directory now so average folks never see this elephants graveyard.

Basically a program creates a file in the Temporary directory (folder) that Windows “maintains”.  They should be deleted when the program is finished with them.  But no what we get instead is lazy disinterested programmers leaving them there to accumulate until there are thousands of them (or the system runs out of virtual memory).

Some of these nit-wits even create these files so that no two are ever the same name for the same program and same function.  Taking a bad problem and multiplying it by infinite factors.  Worse when they are multi-media files taking up megs or gigs of HD space.

It’s not your computer - treat it with respect. YOU are the guest there.

The customers is stupid? 

No.  The programmer is a dolt!

Modal Dialogs

You know you’re dealing with a technically bereft developer when you run a program and it throws dialogs as a solution to every problem.

Modality is king it would seem!

The humble modal dialog is supposed to make it easier for the person who using (that word again!) the program - whom we are now referring to as the “customer”.

In many instances this is the case.  But not every instance and not all instances we frequently see.  Taking the activity to another room is all to often not needed, not helpful and interrupts the users thought process or flow.

Dialogs - the cowards easy way out. To scared to learn a few tenets on UI design (or to thick?). 

Why go to another room as Alan Cooper calls it in his book?

There are options galore to choose from that frequently make more sense than a modal dialog.  We’ve ended up in a paradox where certain DOS programs with ANSI screens where easier to use and more flexible than the alleged easy to use GUI’s of the present.

I’m not saying no modal dialogs - I’m saying give them some thought, is there a better way in line with what’s being done? Frequently there is - but you can bet it’ll take more work.  But that’s what we are supposed to be doing - right?

Mac dev’s are not getting off on this either.  While most folks know Drawers suck bad (though they look cool) Sheets are no better than a modal dialog in many instances.  They need to be used where they fit, not where it’s easiest for the developer.

Linux dev’s?  Personally I’d argue most (not all) wouldn’t know UI design from dog barf, judging by some of the classic *Nix applications.  Generally though they follow Windows dev’s like sheep on these things -with a few doing some Mac-ish things  but not quite groking why.

Error dialogs are another one that get my goat (and a lot of other folks).  There are lots of developers, so called, who don’t even bother trapping for errors at all.  You’ve met their applications.  Run the program - BAM!  Mega Access Violations.  Or stupid messages confirming every action the user carries out that basically say:

“We know you are an incompetent fool.  Are you really sure you want to do that, you ignorant peasant?”

Steve Cholerton blogged recently about his work with handling errors.  It’s great to see that Steve is taking this in hand.  Heck, I myself blogged about it a few weeks ago regarding MixAction.  121 of them from memory. 

Steve wrote: 

Errors and Message Handling is an important part of your application. I believe it is necessary to create a framework or standard way of dealing with and displaying and logging errors and messages within your application.

He’s quite right. 

But in some ways he’s also quite wrong (note this is in no way meant to be disrespectful of Steve nor is it an attack).  You see Steve has fallen for the standard trap.  In one of his examples he’s telling the user they are entering into “Secure Mode” and that their “Actions Will Be Logged”.  The problem IMHO is that he’s telling them modally.  They have to click the dialogs OK button every single time! 

The difference here is that what I do instead is show a non modal window for such events that do not require a click.  They slide up at the bottom of the application window (not the tasktray mind!), wait enough time to be read and then slide away (with a link for more info if they want it). The customer can turn off these warnings if they really want to.  The exception is handled, the program keeps going and the customer is warned.  A lot nicer, more elegant and much friendlier.  The customer keeps doing whatever task they are working on.

It’s the programmers job to keep the program running.  Not the customer.

Keyboard accelerators

A disappearing art that leaves a situation of pandemic tendonitis in the making.

For crying out loud code those keyboard accelerators.  Not everyone can use a mouse.  Some folks have sight disabilities or even hand, wrist or arm disabilities (possibly caused by programmers forcing them to do everything with the mouse).

BUT - If you do make sure they are logical, coherent and don’t conflict with each other - AND - if you make them system wide instead of application wide I’m going to delete your program without further consideration.

Skeletons in the closet.

On Windows we always seem to be cooking for a dead ancestor.

You know, they were nice while they were around, but now their toes have turned up and they’re pushing up the ethereal daisies, expired, past their use by date, gone to that place in digital nether nether.

Coding for old systems, I won’t mention names like Windows 95, 98, Millennium or even W2K here ;-)  - makes absolutely no sense.  If they don’t buy new computers and OS’ why would we ever imagine these folks would buy new software?

They won’t.  Ditch them.  They are holding you back supporting the defunct.  They are holding your customers back as you scramble to support the defunct.

Many of the problems with temporary files mentioned above would disappear if dev’s didn’t code for these archaic systems.  We don’t build highways for horses and carts anymore, to my mind the same should apply in this industry.  Again, IMHO, this assists the programmer in the process of respecting a system.  Target, within reason, the customer you want, not the one you struggle daily to deal with.

Cooking for a dead horse - a waste of resources, code for now, not yesterday’s OS or hardware.

Old computers do have a use.  There are a lot of boats out there requiring anchors.  ;-)

User Interface Evolution

Sticking to old outdated paradigms is like sticking to the obsolescent.  You don’t own their computer, so if you’re software doesn’t run on their antiquated box you shouldn’t be coding to try and make it run on it.  If you need a better target machine, or market, then write for that target machine or market.  

It’s not disrespectful to code for the medium to current range of computing devices.  It is disrespectful to pander to those folks who can’t run your program because they’ve uninstalled all references to IE on a Windows box, or don’t have enough screen pixels, or colors or have a graphics card that only Richard Stallman could love.

Vista redefines the Windows UI.  I have a hunch Windows 7 or whatever it ends up being called, will do the same again - though probably with more subtlety.  Windows 9x, 2K are dead.  Finito.  With any luck XP will go the same way in the next four to five.

Scott Kane

“There is a theory which states that if ever anybody discovers
exactly what the Universe is for and why it is here, it will
instantly disappear and be replaced by something even more
bizarre and inexplicable. There is another theory which states
that this has already happened.”
                                          — Douglas Adams



Day 56 - Cutting Down The Tree

7 08 2008

If you were following things back in June during the 30 Day mISV sprint you might remember I blogged about Treeviews and the problem with them in relation to what I’m doing in MixAction.

Suffice to say I was still not happy with what I finally implemented.  It was much to limiting for the user.  So I thought “bugger it” and ripped the tree out and started from scratch on it.

lumberjack

I admit I skipped the buttered scones, hanging out in bars and frilly, lacy clothes - but…

I’m very glad I did chop it out and fixed it.  It now does exactly what I wanted.  Drag and drop, auto incrementing  nodes, re-ordering and much more, despite the real location of a record in the “database” and so on.

In a very real sense I melded much of what I had setup prior to June 1st and added a bunch of stuff I wanted.  It was certainly not without some pain.

It using memory streaming rather than temporary files (as are the playlists now) again and has no direct relationship to the “database” in the sense it is only stored there as a blob.

This is the kind of thing one certainly can’t do when setting limits. There is no time to wrap oneself around a problem and fix it properly.

You can’t take shortcuts on integral functionality. 

In fact, I think that’s so important I’m going to repeat myself:

You can’t take shortcuts on integral functionality. 

Steph wrote on his blog (in a great article well worth reading):

“The morale of the story, be careful before you start trashing user interfaces, there might just be a reason for some odd solutions.”

Steph is entirely correct in this.  In fact some folks took umbrage at MixAction’s design because it was reminiscent of iTunes.  At no time did the reason for the similarity enter the topic - rather it was more “I hate iTunes” which is of course is utterly ridiculous as an argument in isolation

What is not ridiculous is that some people don’t understand the iTunes design. 

It’s a Mac design.  A very Mac design.  But the principle is the reason it gets criticized on Windows.  It’s the “to much empty space” issue which of course is exactly the point. 

Clarity and elegance is trademark of the Mac, not Windows.

Indeed, as I’ve written before, Windows dev’s have a habit of throwing one of everything onto a UI utterly confusing Joe and Jill Average completely.

BUT - when it comes to core functionality widgets should perform as expected and my humble project treeview in MixAction did not.

The usage may be odd, actually it is odd, not may treeviews in programs on any platform iterate automatically as the program goes through it’s paces, usually the nodes are just clicked on to select them. 

Yet in MixAction this is exactly what happens. The program selects nodes as it runs.  Has to happen - or the whole “easy to use and automated” paradigm does not exist.

It’s these little things that are holding up the release of the product.  They are fiddly. 

I refuse to write them every time I need them so that means being more abstract and building objects that give this functionality when dropped on a Window at design time.  As there are no existing controls doing what I need I have no choice other than to write them, so that the end user never has to think twice about it - and things behave pretty much as they’ve come to expect through using other programs that use widgets, such as the treeview.

Scott Kane

Quote of the day:
It takes hundreds of nuts to hold a car together, but it takes only one of them to scatter it all over the highway. - Evan Esar

Monty Python The Lumberjack Still Photo Is Copyright BBC London England.