[DrunkAndRetired.com Podcast] Episode 57 – Content is King, Social Networks, High Availability, Track Backs, Virtualization, Linux Package Management, Java and Rake, Hiring Web Redesigners

In this episode we Charles and Cote’ talk about web tools, coding, hiring web redesigners, and the usuaul lot of code-monkey fun.

The Spam plugin that Cote’ mentions is Akismet. It works damn good.

(This episode edited by Cote’)

Tags: , , , , , .

It's 10:35PM. Do You Know Where Your DNS Records Are? Or, HA, The Wealth of Networks, The $100 Laptop, and Generational Change

Thanks to the valiant efforts of Mr. Steve O’Grady, the RedMonk blogs will be up-ish tomorrow. I say “up-ish” because, as most you know, dear readers, switching domain names around on the internet is not a speedy science. Indeed, I’m often taken aback at how controlled and yet how chaotic the ‘net seems.

Then again, I’d be willing to be that there are teams of jack-booted thugs with hex screw-drivers and Cisco certifications ready to keep the network up. I mean, how terrible would that be if it went down?

While we wait for The Switchover, I still have this scrappy old thing. In the world of SaaS, High Availability means having two blogs.

Other Meanings for “High Availability”

I used to work at a company. Let’s call it WXYZ, Inc. One of the class clowns there made this joke one day:

High Availability? Baby, if you wanna get high…WXYZ is available!

Remarks like this were often followed by, “Waitress! Another Dewar’s!”

The Wealth of Networks

I started reading The Wealth of Networks last night. It’s nice, dense yet concise, academic talk about how content-producers controlling the means of production and distribution changes things. Information Marxism? Sure, sign me up as long as I can have a swanky Paris flat to go with it.

I’ve read a scant 20-30 pages, and there’s already a great conclusion: the physical distribution constraints of the “industrial information age” (pre-net) were the requirements driver of all that nasty, hegemony friendly IP law we created and now have.

Now, of course:

The removal of the physical constraints on effective information production has made human creativity and the economics of information itself the core structuring facts in the new networked information economy.

At least, that’s my understanding of those pages.

PC Means “Personal Computer”

As I read it, I keep thinking about the other 4-5 billion people who aren’t on the network. I had the pleasure of hanging out with Mr. Koranteng Ofosu-Amaah last week while he was in town. We had some Ruby’s BBQ and then some coffee (well, he had tea) at Spider House.

Somehow we got to talking about the $10040 laptop. He had two interesting things to say (side-note: a longer post on the hangin’ out is much over-due):

  • The notion of a 1:1 mapping between a computer and user may not be universal.
  • Hey, how ’bout them cellphones?

Which was interesting, because we talked with Nokia this morning. Now there’s a mega-platform for you: cellphones. The strange thing about The Wealth of Networks thinking (my 20-30 pages understanding of it) is that the people who run and own the networks seem a few successful startups away from being PanAm and TWA to the analogous Southwests. I mean: telcos! Come on!

In America, we always wave off madness in the telco world — Korea is light years ahead of us, I hear, and they have some sort of crazy cool network in Europe — as regulation and FUD. Really, it’s probably just 50-100 well paid people who’re waiting to retire until they screw with the golden goose.

Generations


And there we have one of my new pet-theories. (Inquire within for more pet-theories.) Technological change is generational. You have to wait for one generation to hand over the reins before real change can happen. Excited about Agile Software Development? Keep your eye on the retire date of all those managers and “decision makers.” Want better cellphone networks in America? Wait for “insiders” to retire.

If good software takes 10 years, seachanges in software take 30-40. As the man said, “get used to it.”

Of course, firing people works too, but it feels so nasty. And really, wouldn’t you just be sticking it to yourself in that case?

Luby’s Upgraded to STRONG BUY <eom>

The problem for us youngin’s is that retirement is soon to retire itself as a concept. Aside from all the fretting about not being able to live out The Golden Years in an RV or finally getting to writing That Novel, the generations in the tech world need to make a pact. A sort of realpolitik:

OK, we’re all going to keep our minds flexible and updated, right? I mean, if you’re going to stay in the work force forever, you’ll voraciously take on new ideas throughout your term, not just in the first 10 years. Maybe in exchange we’ll slow down a bit and focus on creating technology that allows you to work just 40 hours a week instead of 60. And we won’t say “no” next time you suggest Luby’s…. Okey-okey, and we’ll be less — just a little — snarky if you’re letting us play in your lawn.

Of course, we should probably be lining up to thank the generation ahead of us for working to pay the bills instead of bankrupting society. So, let me be the first: Thanks! …but now can we get on with some badly needed changes in core thinking?

Disclaimer: I actually like Luby’s. One word: okra. Bonus words: tarter sauce, deviled eggs.

Tags: , , , , , , , , , .

Enterprise Software vs. Consumer Software

Stuck in 'Bama!

I’m here in Montgomery, Alabama on the air-strip. Our jetBlue flight (Austin to JFK) had an “unexpected” landing because of some computer problems. Exciting! I hear some Pizza Hut pizza is on the way: “we ordered 20 different pizzas.” And soon, we’ll be on another airplane up to NYC…yeah…in 4 hours.

While waiting — watching some Marine fighter jets (F-16s?) take off, interestingly enough — I started thinking about enterprise software. I’m the guy who read
Crossing the Chasm on the beach during our honeymoon, so what do you expect?

What is Enterprise Software?

While I enjoy a good snark-fest about “Enterprise Software,” the reality is that there is enterprise software and it does have meaning to people. Granted, it has meaning in the same way that the phrase “being American” has meaning: it’s not clear and concise, and the “definition” definitely isn’t the same across different groups, or even intra-groups.

Aspects of Enterprise Software

Here’s the list so far (it’s not ranked, in order, etc.):

  • “Controlled collaboration.”
  • Can 1 person be an “enterprise”?
  • People working together.
  • Controlling the public face/external interface.
  • Executing to plan.
  • Authority. Access. Authentication. Authorization.
  • Uptime. Error-free. Transactional.
  • Money. Profit. Relationship (with customer).
  • Longevity. Growth. Investment. ROI.
  • Careers. Employee. Boss. CEO. Board.
  • Work with other software.
  • Change and adapt to new business models.
  • Cost little.
  • Marketing: good PR from using the software.
  • Knowledge transferable: users can be treated as cogs/easily replaceable/switch outable.
  • Scales.
  • Support from vendor: problems can be resolved or worked around quickly (less than 24 hours).
  • Works with your hardware.
  • Can be upgraded without loosing data, configuration, or needed functionality.
  • Can move to other hardware.
  • Usable by non-technical people.
  • Keeps data and info in the desired walled-gardens. Prevent leaks.
  • Does not help competition.
  • Multi-user.
  • Direct-sales.
  • Fewer customers.
  • Conforms to law, rules and regulations, compliance.
  • Reports, statistics, and dashboards.
  • Hierarchical thinking.
  • Consumer Software

    Of course, the above makes you start thinking “what’s the opposite of enterprise software?” Consumer software:

  • Desktop.
  • 1 user. No Login. Open access.
  • Install.
  • Never upgrade.
  • Same hardware forever.
  • Download everything and anything.
  • Parental control. V-Chip, AOL, Earthlink.
  • DRM.
  • …the customer’s activities and feature set are controlled and dictated by the vendor instead of the customer controlling and dictating to the vendor.
  • High volume sales. Retail.
  • Email, word processing, IM, web browsing, party planning, article/blog/etc. reading, movies.
  • Law keeping/legal behavior not important.
  • Programatic enforcement of law “nonexistent.” (Except DRM.)
  • No historic reporting, reports, etc. needed.
  • Customers have no organized “this is what we want” voice
    • Consumers take what they’re given.
    • Small/growing DIY trend that counters the above. How big is the DIY/Make generation/user base?
  • (Recent/new) span multiple devices.

When the Customers Say "So What?"

As you, dear readers know, I have strong opinions on vestigial features in products. In the same way, I’m a strong believer in dumping and changing features that customers don’t care about: maintaining features that few people use is a night-mare and massive money-suck.

Somewhat counter-intutivly, then, I enjoyed this part of a longer quote from SalesForce.com CEO Marc Benioff:

Once we had the API really working well, then customers really started to hammer me on customization. They would say, ‘Why can’t I change this tab name, why can’t I change this field name, I want to be able to do this, and I want to be able to that.’ Well, [we would say] the problem is that the tab name is through the whole documentation. It’s in the singular, it’s in the plural. It’s not just in one language, it’s in twelve. And then customers would say, ‘Yeah. So what?’

I say it’s somewhat counter-intutive that I’d like that quote because it indicates a high-degree of extra features and customization. Programmers hate those two words. Benioff’s mock-response to the customer says why: whenever you change something, there’s a cascading effect of other stuff you have to change, not least of which is the docs.

Continuity

So, a tiny change of a tab name entails a lot of work. But that’s only because the software vendor wants to maintain continuity in their software: they want all the parts of the software to “make sense” in relation to each other. One part of the software shouldn’t cause another part of the software to seem weird or funny.

Sidebar: Ad Continuity Attacks

As you might be thinking, or have lived through, this point is one of the best ways to waste hours discussing how to implement a feature. Since continuity can be highly judgmental, it’s a good arguing point. See security, usability, and performance for the other best ways to waste lots of time when talking about software.

“How much money does continuity make me?”

The point is, to avoid doing a change in software, we (the software makers) often say, “well, if we do that, it’ll have a cascading effect where this other thing won’t work, the docs won’t make sense, and all manner of other continuity problems will occur.”

While the above is an anecdote, I’d wager that in most cases, enterprise customers wouldn’t care about bad continuity: they’d rather have software that makes them more money than software that has good continuity. This type of thinking is part of what feeds the notion of good enough software.

Of course, things are a little different in consumer software. But then again, which one of Microsoft and Apple has the best continuity in their software?

(And check out the comments for some SalesForce.com backlash.)

Tags: , , , .

Technical vs. Non-technical, or, Re: The Process Variant of Conway’s Law

Scott Sehlhorst has a thorough reply to the Document Mobile example in one of last week’s posts.

I like his re-thinking of the cynical idea that layers of docs are a way for non-technical people to hide-out. Indeed, the docs do provide a sort of “common language” for the technical and non-technical people to talk in.

In fact, Sehlhorst’s post serves well as a “what you should be doing” reply to the problem of Document Mobiles.

Non-Technical People

As I’ve discussed these ideas with people over the last few days, I’ve realized that my definition of “non-technical” is broader than most folks think. For example, I don’t expect a “technical” person to know how to program, or even debug a hairy system problem. Those types of things are what “programmers,” or, at least, “system administrators” do.

What Do Technical People Know?

I do expect “technical” people, for example, to know things like:

  • Right clicking on a web page is an extreamly weird and uncommon thing: like a 3 wheeled car.
  • Changing the wording on a screen isn’t a big deal.
  • When to use a GUI vs. a web app.
  • Most aspects of web app usability and design, e.g.: methods of text overflow controlling and scrolling issues, or what “AJAX” means for making web apps more dynamic and realtime.

Of course, there are exceptions, variations, and thin lines to walk for those, and other, things depending on the system and requirements. But, being able to sort out those issues is the core of what makes someone “technical.”

Editors and Writers

To make an analogy: an editor isn’t a “writer” but they’re certainly in the business of helping put together articles, books, and stories. There’s a shit-load of shared knowledge between editors and writers. If you took some dude off the street and had them be an editor, chances are the best you’d get when they read the book would be “this books is long,” or, “I like this book.”

Non-technical people often give similar responses when confronted with demos of software: “could we move that header over a little to the left?”

An Example

I’ve had the pleasure to meet several “technical” people who aren’t programmers. For the issue at hand, Brandon stands out as a good example. He’s a product manager, though he did used to write code…in C++ I think of, all horrors. No wonder he stopped programming ;>.

Despite being a “mouse person” (as opposed to the “keyboard people” who type code), he knows his shit when it comes to software. For example, if you tell him you’re starting an application, he’ll throw a barrage of technical questions at you like:

  • Are you bundling a database? Oracle? MySQL? Hypersonic? Can I switch out the database? Can I move the database?
  • Is it a web application? Java? Ruby? Does it use JBoss? Just Tomcat? Rails?
  • OK, do you have group permissions? Fine grained permissions? Permissions at all? LDAP? Active Directory?
  • How about an XML over HTTP based API? On that note, do you implement the <insert your domain here> blah-blah data/process standard(s)?
  • You doing water-fall or Agile? How long’s the iteration?
  • Of course you’ll want to upgrade to the new Java. But do we really need to? Does it at least run faster?
  • Users don’t want 3,000 nodes, events, or 3,000 of anything. Let’s give them 5.
  • There is no right click on a web page. Shove that JavaScript up your ass.

(OK, maybe that last, ass part is what I’d say. Brandon has — what do they call it? — couth?)

The above is a good mix of “speeds and feeds and feature tick-lists” and to understanding how technologies are used and can be used, in both old and new ways.

Point being: he can actually add a shit-load of value to the process of writing kick-ass software. And that, of course, is the idea of a “technical” person. They don’t need to write code, but their work should directly inform and feed into the development and (if you’re into making money) monetization of code. Otherwise, there’s probably a degree of waste going on that could be cut out.

Two Takes on Prototypes

As so often happens, two different people in the old blogroll talked about the same general topic the other day. This time, prototypes:

  • Steve O’Grady:

    The net net is that most of the pitches I receive with respect to software are about telling me something, rather than showing me something. It’s one of the reasons that I love firms that ship me the bits; I don’t get to install everything I’d like to, but I play with as much of it as I can. Unsurprisingly, those experiences tend to be infinitely more compelling than anything that can described to me in a Powerpoint deck. And if that’s true of an analyst, how do you think a developer might feel? You think they’d prefer to see how they can use your product to mashup Google Maps and NIPP RSS concerts feed, or look at a couple of slides describing generic web services?

    What do I mean? Let’s take databases, as an example. If I said that Derby can be used as a backend for offline, persistent browser based applications – how interesting is that really? No matter how I dress that up in PowerPoint or wordsmith it, it sounds dry and rather boring. But what if you showed that capability, live? You just might impress some very sharp people.

    So the lesson in all of this is probably rather obvious: if you want to interest new audiences to your product – think about showing it to them. Or better yet, letting them show it to themselves. Because PowerPoint and press releases should be the fallback position, not the default option.

  • Godin, via Cauvin:

    “Too many times, I’ve gotten excited about an idea and created a conceptual prototype. And almost every time, people, smart people, didn’t get it.

    Here’s my new prototype rule of thumb: your prototype has to be better (better build quality, faster interface, better lighting, whatever) than the finished product is going to be. That’s what people expect anyway–they see your prototype and take off 20% for reality.”

Tags: , , , , , .