Interesting Tidbit on Where REALbasic Consultants Found Work

I’m analyzing the results of the latest ARBP survey (about REALbasic consultants) and I came across an interesting answer considering that the Colorado Summit is coming up next week.  In one question we asked how REALbasic consultants found work.  We had a set of canned answers with the option to add your own.  Several RB consultants  said in the ‘other’ response that they picked up work at Real World.  Of course the numbers are pretty low, but the fact that people went out of their way on the survey to include it speaks volumes.

This answer isn’t surprising, really, since the last couple of Real World events had companies trolling for RB developers.  To me, this has always been one of the best reasons to go to Real World.  I know I turned down work at Real World 2008 because I was already 100% committed to a project already.  Hopefully there will be a few at The Summit as well to make it profitable as well.  :o

There are still some slots available for the conference if you’re interested in going.  Hope to see you in Boulder!

REALbasic Beta List Conundrum

I’ve been part of the REALbasic Beta List for a few years.  I got involved  back in the early days of the new IDE because I was tired of finding bugs in new features, and in a few cases, new features that never made it out into the public release (though documented as such).  So I make a point to kick the tires of the new features and I generally do this by writing them up as a quick review article that I’ve been posting on the ARBP site.

I’m now testing the 2009 R4 release and I realize that I started feeling guilty about not testing more (a new feature in R4 is one I’ve been asking for a long time).  After talking it through with another developer I came to the conclusion that I’m donating my time to Real Software.  Yes, donating because, as a consultant, I get paid good money to do coding and testing for clients and since I’m not compensated from RS in any way, it is pretty much a donation.

I guess one could argue that I get compensated with a less-buggy, better new features, product.  That’s not very motivating to me, somehow, mainly because I’m paying really good money for that product for the privilege to do that!

Then I came to the conclusion that if I were to be compensated in some way I’d do more testing because it’s worth more to me.  Now I’m not suggesting a free copy of REALbasic because that wouldn’t be economically feasible.  But it does strike me as somewhat unfair that I’m spending time beta testing a commercial product.

I’m not sure what would make it seem more fair.  A discount on upgrades?  A higher support priority?  A t-shirt or coffee mug?  Public recognition?  I dunno.  Certainly the problem with any sort of compensation is how to enforce it and qualify it.  If I log one bug is that enough?  What if that bug is really a feature request?  If I report a hard crash is that more important than a misspelled word?  See what I mean?  It’s a slippery slope at the very least.

Do you think the beta program works?  How do open source projects recognize their big contributors?  Do participants need some compensation?  If so, how do you compensate the one-time reporter versus the consistent reporters?  What are your thoughts?

Are Mac Bundle Promotions A Good Thing?

This one is timely as I was asked about a bundle opportunity the other day:

Interesting post at http://homepage.mac.com/simx/technonova/reports/from_the_mouths_of_developers.html where Simone Mangenelli asked a bunch of developers that participated in the MacHeist bundles there thoughts.

Summary Ideas:

  • If you look at it as ‘marketing’ it’s a huge win because you get your name and product in front of people who wouldn’t normally have found you.
  • Tech support issues spike during the promotion and then return to normal shortly thereafter.
  • Getting some money is better than none.
  • There is no saturation of the market.  Not THAT many people purchase the bundle.

I highly recommend the article.  It gives some food for thought from a developer and a consumer standpoint.

Have you participated in a bundle offering as a developer and/or consumer?  Do you feel that it was worth it?  What sage words of advice would you give?

2009 REALbasic Consultants Survey

I almost forgot about this one in the rush to get the Colorado REALbasic Summit setup and announced.  ARBP is currently hosting its 2nd annual REALbasic Consultants Survey.  As we did in 2008, we’re asking REALbasic developers about their consulting business.  Also, we are now breaking out ARBP members versus non-ARBP members to see the differences and to help determine the ARBP demographics.

ARBP members should log into the ARBP Members site and click on the “2009 ARBP Consultant Survey” link under the ARBP Info menu.

Non-ARBP members can take the survey at http://www.surveymethods.com/EndUser.aspx?A185E9F5A2E6F0F6

Some of the preliminary results are interesting because in last years survey we didn’t stop the survey if you said you didn’t consider yourself a consultant and this led to a lot of answers about pricing and employees being skewed.  This year non self-declared consultants do not take a majority of the survey.  We also refined some of the questions to include more details.

If you haven’t already, I would appreciate it if you could take the survey.  The results help ARBP determine who our users are and in the long run it helps the RB consulting community by giving some baseline numbers for comparison.

REALbasic Consulting Inquiries

I had a brief conversation with another REALbasic consultant the other day. We both remarked on how often the consulting inquiries never go anywhere. I would say that it’s price but half the time they never even bother to reply after the initial contact.

I’ve even found that potential clients that post on the REALbasic Developers list and the ARBP Find a Developer page never respond to emails. It seems odd especially when I know many of the people that post on those two sites don’t get any responses from developers to begin with! I know this because after a couple of months I’ll do a very short “Hey, have you found an RB developer yet,” email to those I don’t initially respond to and I get a response more often then not saying how the response was poor by RB developers. Go figure.

Well, to be fair to us RB developers, sometimes the specs are worded pretty poorly or are so specific that unless you know exactly what they’re asking for we don’t respond. Other times they’re so broadly worded that the project could mean anything or they’re lacking so many details you start to wonder if they really know what they want. One project that went through the network had a 20 page requirements document. Awesome, I thought, finally someone that knows what they want. Unfortunately, it only had a single page of what their current system is and does and nothing in regards to database details, screenshots, or anything else really helpful. In other words it was 20 pages of technical jargon that didn’t mean anything to a typical REALbasic application (which they were pretty sure they wanted).

A few years ago I used to have these nice formal proposals that I used for everything. These multi-page documents, contracts really, took me about a half day to customize for each project. After a few years of wasting time writing documents I now just send a summary email now because most people aren’t very serious about getting their project done. Let me revise that statement: They’ve not very serious unless it’s going to be dirt cheap.

So what has your experience been? Why do you think clients don’t bother to respond? Have you found the RB developer networks to be useful or not?

Yuck. OPC Projects

I have a lot of OPC projects.  I tend to avoid them when I can but sometimes it’s unavoidable.

Whenever I deal with an OPC project I’m screaming ‘encapsulation!’ half the time and the other half the time I’m screaming ‘container controls’!  Yeesh.  Seems like people are making their lives harder than it needs to be.

The answer, of course, is that programming is not easy and they wouldn’t be paying me to work for them if they could do it themselves.  It’s pays the bills so I guess I shouldn’t complain.

How do we teach RB newbies some of skills that will make their lives easier?

Registration Systems For RB

Product registration and licensing systems is a fairly common call for help on the REALbasic forums.  I know I’ve rolled my own registration system and used various commercial solutions over the years.  In fact, we came up with a solution that works with desktop apps using a licensing system meant for servers.  That solution has worked well, but time goes on and what was good for years might not be such a great idea now.  Software grows old and stale and new solutions are born.

To me it seems that there are a couple of issues to deal with.  The first is keeping casual piracy down to a minimum.  I have no doubt that someone determined enough can pirate any piece of software.  It’s just a fact of life-get over it.  This means that if someone pays for the software they can’t post the registration code and have it go all over the internet.  Or if they do, it quickly gets squashed and it’s no longer valid.  Another consideration is that I don’t want to piss off my good customers because my licensing scheme is so draconian (I’m looking at you Microsoft).

The second part of the equation is getting paid.  People want to use PayPal or their credit card (and occasionally checks via snail mail) but setting some of that up on your own is a pain.  PayPal is probably the easiest but I know there are segments of the population that refuse to use it.  Plus I want my money sooner rather than later.  If someone else is handling my money will I have a waiting period or minimum balance before I get to see the money?  Is it an automatic transfer or is it via check?

The third part of the equation is administration of the system.  How easy/hard is it to add coupon codes?  Can I get detailed sales reports?  How easy is it to issue to refunds?  Can I email customers with news?  And do those customers have an easy way to opt-out of future emails?  Can customers retrieve their licenses without manual intervention?

The fourth part is how easy/hard is it to integrate into my application?  Do I have to come up with my own registration code algorithm?  How do I convert existing customers over to the new system?  Does it work on Mac, Windows and Linux?

So I want it good, reliable, cheap and fast!  No pressure there!  ;-)

Kagi and eSellerate seem to be two fairly common solutions.  Both take a chunk of money from the sale price and until I saw the Apple app store I thought their commission was a little high.  Perhaps it’s worth the hassles leaving all of the server details to someone else (after having dealt with server issues in the past six months it might be worth it!)

FWIW, I used Kagi several years ago and was not very impressed with their responsiveness to support issues.  I also found their interface for making a webstore to be very clunky.  Hopefully they’ve changed, and if so, I’d love to hear about it.

What are you using for registration systems?  Do you like it?  Was it easy to integrate into your application?  Has it helped income or hurt it?  What sort of problems have you had?

Yeah, Right. You Can Do It

I ran across this post today:  http://blog.bitquabit.com/2009/07/01/one-which-i-call-out-hacker-news/ The basic story is that the author is refuting the claim that StackOverflow.com could be replicated “easily”.

I think this is an awesome post because it’s a warning to others and reminder to myself that everything is not as easy as it seems.  Often we look at an application and say, “I could do that.”  Yes, you could.  Without a doubt.

Here’s my advice though:  Take your estimate of weeks and make it months and turn months into years and you’ll probably be closer to the truth.  Even copying user interface and data structures verbatim I think most people would still have a hard time replicating an existing application quickly.

One project I worked on was a QuickBooks-like accounting application.  On a four person team.  Five days a week.  For FIVE YEARS!  And we had QuickBooks as the blueprint, if you will, for the accounting side of the application.  Guess what?  Even though I’ve moved on they’re STILL adding to and modifying the accounting engine.  QuickBooks is a moving target and I wish my old teammates luck in striving for it.

Every now and then someone gets a hair up their rear end and brag that THEY could do REALbasic better than REAL Software (because some bug has really pissed them off).  It’s quite possible that someone out there is working on an awesome RB clone and someday release it.  But don’t expect it anytime soon.

The same goes with claims of “I could easily make the RB IDE do this or that!”  If it was easy no doubt RS would already have done it.  Let’s face it, software is often a case of the mistakes of the father now make our lives a living nightmare.  This is not to knock our forefather developers just that what seemed like the best way five or ten years ago is woefully inadequate in today’s terms and to make it do ‘x’ (which seems easy) isn’t because the infrastructure isn’t there to do it.  So the whole thing has to be redone and done so you don’t break backwards compatibility.

Again, sorry for the blog about another persons blog.  I hope you find these discussions helpful and thought provoking.  Thoughts?

It’s Your Party (i.e. GPL Licensing)

Special thanks for John Gruber over at Daring Fireball for finding the post at http://www.red-sweater.com/blog/825/getting-pretty-lonely

I don’t know about you, but I’ve had serious concerns (like most of the REALbasic community) about using MySQL database servers because the GPL-style licensing makes me nervous.  I’d love to use it but if it means I’m on the hook for licensing fees and/or have to release my source code of my apps that use I’d much rather not bother with it.  ARBP did a survey last fall that pretty much showed MySQL usage down 20% and PostgreSQL (which has very liberal licensing) up about the same amount.

Any way you slice it, to us mere mortals the GPL is vague at best.  We’re programmers for heaven’s sake!  We don’t write vague code because vague code doesn’t work.  Be explicit like the MIT license – it’s clear and concise and is far from ambiguous.  I think the GPL should be rewritten to make it explicitly clear.

I didn’t mean to start a whole blog post about someone else’s blog post but I know that there are a lot of questions about GPL and what it means to the developer.  What are your thoughts on the GPL?

Why Pay Someone to Develop Software?

As a software consultant I get asked by non-software developers why do people  have me write custom software when there are easy-to-use tools out there, like Microsoft Access, FileMaker, Visual Basic, and REALbasic?  It’s a tricky question to answer because they aren’t software developers nor or they power users.  They use their computers to write documents, email and surf the web – not exactly the rocket science apps of the world.  So I came up with an analogy that people understand.

This comes from the world of ‘Do It Yourself Home Repair’.  In my younger days (you can read that as not having a lot of money) I would always take a stab at doing all those little projects that come with owning a house.  Faucet needs replacing?  No problem!  I’d go size it up as best as I could, go to the hardware store and pick up what I thought were the parts and tools I needed.

Some of you know where this is going.  On the second trip to the hardware store I’d get the parts I REALLY needed to do the job and on the third trip to the hardware store I’d pick up the things I had no clue I needed to begin with (or possibly to fix what I broke in the process of fixing the original problem).  The final trip to the hardware store is to return all the unused parts.  And all that is assuming I don’t find a leak in the next day or two (or two weeks later).

Did I get the job done?  Sure but it took three trips to the hardware store and an entire day to do it.  I called a plumber to do the same thing recently and they were in and out in 30 minutes and if I’m not happy or something doesn’t work right they come back out (typically for free because I’ve already paid).  My job isn’t too much different than the plumber.

When people come to me for a project I can guess how much work is going to go into it a project before I’m done reading their requirements document (if they have one).  I’ve worked on three accounting applications and the ones that don’t like their current accounting app get excited about that.  I tell them that unless they’re willing to spend a boatload of money and wait a year it won’t happen.  Applications of that complexity are huge, hairy monsters that take time to develop and even then there are yearly (and sometimes monthly) updates (especially if you want payroll taxes calculated automatically).

Sometimes it’s a shame that there are easy-to-use products like FileMaker, MS Access and to a lesser extent Visual Basic and REALbasic.  FileMaker and Access are  powerful tools that let mere mortals do some complex things with a database.  Just like me having a set of minimal tools doesn’t make me a plumber these tools give the user the false impression that they’re a full-fledged database developer when in reality they know how to use some tools.  That’s not to put these folks down because they’ve done some really cool and complex work.

The plumber has a truck full of fittings and miscellaneous parts.  He or she also has a set of specialized tools to aid them in their work and have years of training.  Likewise, software developers have  specialized tools to help us as well and we have years worth of miscellaneous code, controls, libraries that we’ve learned to use.  And perhaps most of all, the software developer knows how to use the tools and parts together.

So sure, you could do your software project yourself and you’ll learn how to do preferences, file I/O, database operations, error handling, licensing and registration, automatic updates, custom controls, and a million other little things.  Software developers already know how to do that.  In the long run, how much is your time (and frustration) worth?

Thoughts?  Did I use the best analogy?  What other benefits are there to having a pro write your software for you?  Do you have any drawbacks?