I’ve hacked both the PHP and CSS that drive this website. But if I had to write PHP or CSS from scratch, I literally wouldn’t know how to begin.
Something similar, I suspect, is broadly true of “business analysts.” I don’t know how somebody can be a competent business analyst without being able to generate, read, and edit SQL. (Or some comparable language; e.g., there surely are business analysts who only know MDX.) I would hope they could write basic SELECT statements as well.
But does that mean business analysts are comfortable with the fancy-schmantzy extended SQL that the analytic platform vendors offer them? I would assume that many are but many others are not. And thus I advised such a vendor recently to offer sample code, and lots of it — dozens or hundreds of isolated SQL statements, each of which does a specific task.* A business analyst could reasonably be expected to edit any of those to point them his own actual databases, even though he can’t necessarily be expected to easily write such statements from scratch.
*Actually, the vendor is Teradata Aster. After I showed them a draft of this post, they indicated that it’s OK to use their name in the post, and they fondly think they’re already doing what I suggest in their current product.
Similar thoughts apply to other software domains. If one of your selling points is some variant on “ease of development”, yet it’s difficult for you to supply generous amounts of sample code, then probably either:
- You’re really doing a great job at visual programming, point-and-click, or some other code-free paradigm. Congratulations!
- Or your product isn’t as easy to program for as you hope.
- Or you’re so confused as to what your product is used for that you can’t imagine what kinds of sample code to whip up.
Please note that these are not exclusive ORs.
I’m not suggesting “app stores where users can post and sell — or give away — their own apps”. Those may be good ideas (although probably not as good as you think), but they miss the point. You need to do the basic work yourself. Or, if it’s a big expensive deal for you to do the work, then you should make your product more usable. For if it’s hard for YOU to program in your technology, why would somebody else pay you so that they may have the privilege of doing so?