Fog Creek Software
Discussion Board




any ISV out there?

is there an independent SoftWare vendor here? If yes i would love to know the nature of your job and how you became one.

ronald
Monday, July 12, 2004

There are lots of ISVs here, including good old Joel who hosts this site.

If you got questions, ask away....

Steve Jones (UK)
Monday, July 12, 2004

I'm an ISV.  I got started writing therapy software for my wife to use at work, to practice programming skills.

Then we started selling the programs.

That was about 10 years ago.

Mr. Analogy
Monday, July 12, 2004

I develop software, whose requirements are specified by a business person ("our fearless leader").

As lead developer my job includes refining the requirements, doing the design, making technology (e.g. programming language) decisions, sharing the coding with other developers, relating with our boss, and sharing "best practices" with other developers, so that they're my peers rather than by subordinates.

I got my job by being hired by the business person ... who had previously been a software reseller and who decided that he'd prefer to develop, own, and market software of his own.

My job does not include the other side of being an ISV: dealing with money, customers, the distribution channel, researching the market, hiring sales and technical support and office staff, renting offices ... I (we) develope the software and my boss does everything else ... a nice partition of labour.

Christopher Wells
Monday, July 12, 2004

The point that comes across pretty clearly every time someone asks this question is that there are a lot of talented programmers out there with no particular gift for business, which is required to market, sell, and profit from a given product, regardless of what the product actually is.

sir_flexalot
Monday, July 12, 2004

I've been an ISV for 17 years and gone from being the sole programmer to heading a team of 6. I'm in the strange position of being a business-aware techie and although I'm not a salesperson I handle/manage the whole process, from pre-sales and functional analysis/specs to implementation and support/maintenance.

I believe the most important quality for an ISV to have is imagination - the ability to put yourself in your customer's shoes so you can understand how their business works and what they need the software to do. Being a brilliant programmer is absolutely NO use if you can't give the customer a product that does what he/she needs.

Would be glad to try to answer any specific questions you might have.

Miranda (UK)
Monday, July 12, 2004

How did did you acquire your business-awareness? Did you acquire some before you became an ISV? Specifically, how did you find customers and/or know what products they would need?

Christopher Wells
Monday, July 12, 2004

"Being a brilliant programmer is absolutely NO use if you can't give the customer a product that does what he/she needs. "

IN fact, I'd argue that being a brilliant programmer is likely to make you LESS empathetic to the customer.  It's the old joke that schools hire B-grade students to teach. A-grade students "just understand" the material, they don't need to teach it.

You learn in this order:
a. Conscious incompetence
b. Unconscious competence
c. Conscious competence

BRILLIANT people jump right to B.  But only people at "c" can teach. Only they know HOW they do what they do.  Ironically, you master, then you learn HOW you mastered.

http://www.businessballs.com/consciouscompetencelearningmodel.htm

Mr. Analogy
Monday, July 12, 2004

"How did did you acquire your business-awareness? "

Empathy and talking to your target customer. Ideally, finding one of your customers who can GENERALIZE. (Most people can only see THIER problem, not generalize that "oh features 1-10 only help at my company, but 12, 17, and 23 will help just about any teacher".

I was lucky: my wife is one of my "customers".

The empathy can be developed. The initial domain knowledge is aquired very slowly. Ideally, get paid to do it. That's why so much sw is developed by domain-expert, programmer-newbies.  The domain knowledge it what gives you that empathy, which helps with ALL aspects of the business.  It keeps the business focused on the customer.

Mr. Analogy
Monday, July 12, 2004

BTW, it think it's critical to have a close relationship with your customer (you don't need to marry them :-).

This can be a partnership or a team or just a very good long term working relationship.

Mr. Analogy
Monday, July 12, 2004

So: do you choose a "target customer" *before* you choose a target product (because it's the customer, not you, who is aware of what product they want)? How then do you choose a target customer?

> talented programmers out there with no particular gift for business

> That's why so much sw is developed by domain-expert, programmer-newbies.

I have four comments to make about that.

1)  As a professional programmer, my boss (the founder of the business) is my customer: when you said ...

    "Empathy and talking to your target customer. Ideally, finding one of your customers who can GENERALIZE."

... it's my boss who sees a need for a potential software product) that can be generalized to several end-users.

2)  I'm presently writing software that is sufficiently large and complicated, requiring so many different types of technical expertise, that I reckon its creation would be beyond the competence of anyone who hasn't studied programming full-time for several years. I admit that some customer needs can be satisfied by smaller, simpler software, but some can't.

3)    Again, as a "developer" I become involved with the customer at the moment when it's time to specify the requirements in further detail. However I'm not exposed to (not experienced with) the step which happens just before that: when the business analysis is done that decides that there is some requirement that worth implementing in software and passing to a software developer to be specified in any detail.

4)  As soon as the project becomes large enough to require *two* people's time, doesn't it make sense (i.e. isn't it a competitive advantage) for those people to have different roles? For example to have one person concentrate on the "business" and another to concentrate on the "software" (for example, because two experts in their respective fields can produce better results than two part-timers)?

Christopher Wells
Tuesday, July 13, 2004

*  Recent Topics

*  Fog Creek Home