21 Jun 2009 @ 5:09 AM 

Almost five years after starting J-Soup Software, Inc., I finally decided that it was time to call it quits.  jSoup has been on the sidelines for the last two and a half years anyway, during which time a number of small contracts have come and gone.  At this point, I really haven’t got the time to put into it, so enough is enough.

The story of jSoup is certainly not unique, but it’s worth a blog entry.  I started with an idea for a website catered to home owners.  The centerpiece was an application called Upkeep that would help people track the maintenance of their homes.  At the time, I was a new homeowner, and my premise was that most people (like myself) had no idea how to keep what is probably their biggest investment in good shape.  Upkeep would give you a basic schedule of service items (i.e., chores) and connect you with local service providers who could help.  Revenue would come from service providers and advertisers.  Still not a bad idea.

I spent the first summer of jSoup working up a business plan, establishing the company and trying to arrange for some help.  Three things got in my way.  First, I did not have even a working prototype, so I had nothing to show either prospective users or investors.  Second, the founding team consisted of me, myself and I, and it turns out that investors look for teams of at least three different people.  Third, while I had some money saved up, enough to get through the business plan, that was not enough.  A couple of friends agreed to help build the application.  Ironically, I had trouble putting together a cost-effective (uh virtually free) environment in which to do distributed Java development.  Nowadays, I would just use Ruby, but back then I was trying to build a Java Web app using Tapestry, and renting a Java-capable server was not cheap for a company without much cash.  Ultimately, under-capitalization was the downfall of jSoup.

By the Fall of 2004, I needed to start making money again to pay the mortgage, so I found a contract with a company in San Jose.  When I look back, perhaps I should have called it quits then and there instead of implicitly switching to a different business model.  Before I left the previous company, I was offered a chance to contract for the company I had just left, and the COO who made the offer was baffled when I turned him down.  He saw it as a way to keep making money while I test my idea.  I said that I didn’t want to be distracted from my main business — web apps for home maintenance.  Four months later, I suppose I had convinced myself that I could do both.

Eventually, I did contract with my former employer.  After a couple of gigs with the San Jose company, I was contacted because the guy who had taken over some of the work I was doing was about to leave.  Would I be interested in continuing that work?  I sure was, so I went back.  I was told that they had a really big customer that would be signing some paperwork really soon and that there would be enough work for three or so from jSoup — at last a chance to expand the business.  That prospect vaporized when their customer got restructured before signing the contract, and at that point my hours were also reduced.

In an attempt to recast jSoup as a consulting company, I spent a decent portion of my earnings on marketing.  I got myself into a software conference twice as a presenter, which was enlightening and educational, and which led to exactly no leads for consulting engagements.  I also took a sales course for non-sales professionals and sent 200 letters to software company executives in a direct marketing campaign.  Many letters were returned because the businesses had folded or moved, and I actually had one angry response to please take them off my list.  I actually made about 20 cold calls — for me, a gut wrenching experience — and never managed to reach a sole.  Admittedly, cold calling is all about numbers, and I probably would have needed to make hundreds or thousands of calls to reach anyone.  Or maybe I was just barking up the wrong tree.  Sales is like that.

From time to time, the nagging memory that I had started jSoup to do something other than contract work or consulting would surface.  Some people do not distinguish between the two kinds of work, but there is a difference to me.  If I am making recommendations or contributing some particularly specialized knowledge to a problem, I’m a consultant.  If I am one of the paid-by-the-hour hired hands as a sub-contractor on a job, I’m a contractor.  Maybe it’s a continuum, but regardless, it is easier to find contract jobs than to be a respected, highly paid consultant.  I wasn’t satisfied with contracting, so I decided to go back to full-time work.

When I decided to quit jSoup, I had recently entered a two-year lease.  Not wanting a blotch on my credit record, I fulfilled the remaining terms of my lease, using the space as my work-at-home location.  Just when I was about to close jSoup last summer, I got a call from some people I worked with in San Jose.  I kept the company open and worked on a contract basis for them for a few months, during which my third child was born, we sold our house and moved to a bigger rental house, and I got promoted into management at work.  Crazy times, and I wasn’t able to do the contract job justice in terms of my availability.  Life remains too busy to have enough consistent time to offer anyone on the side, so that’s that.

Maybe now I’ll get back to writing web applications, only this time just for fun.

Tags Categories: General Posted By: Dave
Last Edit: 21 Jun 2009 @ 05 09 AM

E-mailPermalinkComments (0)

 11 Feb 2009 @ 6:28 AM 

At Guidewire, we are big on Agile development, and the team that I lead has adopted 2-week sprints. For the uninitiated, a sprint is a time period during which one attempts to complete some number of well-defined user stories. A story is some bit of useful functionality, and it has to be totally done within the sprint boundaries in order to get credit for completing it. We involve product managers (as the proxy for “the customer”) and QA testers during development to provide checks and balances to the developers.

After about 3 months of writing software this way, I wonder if 2 weeks is a bit short for a sprint. Once you get started knocking off stories, it’s kind of nice to just keep rolling. Having to stop every two weeks can be somewhat disruptive to the flow. Having some kind of rhythm is important, with a regular break to reflect on how things are going. Before we started this release, we used 4-week sprints, which were almost too long. I wonder if 3-week sprints would be best, or if that kind of fiddling has no net impact.

Tags Categories: Software Development Posted By: Dave
Last Edit: 14 Feb 2009 @ 10 47 PM

E-mailPermalinkComments Off

 25 Jan 2009 @ 8:50 AM 

I am an avid reader of the Dilbert.com blog by Scott Adams. On December 30, 2008, Scott wrote about the correlation between glucose and free will. There is a quote that has been rattling about in my brain since then.

“It turns out that resisting one sort of temptation makes it harder to resist a different sort at the same time.”

Most of his blog entry discusses the positive impact that glucose has on concentration and clever ways to seduce a date. For my part, this one line gave me a way to rationalize slacking off — say, not shaving for a couple of days — while I am in the software-writing zone.

Disciplined programming means continuously resisting temptations, such as being overly optimistic while estimating effort, leaving assumptions unvalidated, cutting corners, ignoring crufty code and putting off testing until the proverbial end. As in any endeavor in life, good habits and proper expectations go a long way toward supporting a disciplined approach

On the other hand, after a couple of days of programming to the best of my abilities (yeah, on that rare occassion), I tend to have the strongest urge to watch tv all night. I don’t shave every day, I tend to eat more of the wrong kinds of food, and I completely neglect to exercise. Maybe it’s a discipline problem, or it might be the fact that I have three kids to help look after.

Anyway, I think it helps to be aware of the phenomenon. After a couple of hours of being good, it can be too easy to get lazy. All the more reason to take frequent breaks and cut some slack in other areas, all in the name of clean code. Does anybody else want a donut?

Tags Categories: Software Development Posted By: Dave
Last Edit: 04 Feb 2009 @ 04 01 AM

E-mailPermalinkComments Off

 04 Jan 2009 @ 3:08 PM 

I am a software engineer. I started jSoup Software in the summer of 2004 when I got tired of waiting for the dot-com, eCommerce, B-to-B, ASP company I was employed by to go somewhere. (They got bought a couple of years later.) In 2006, I joined Guidewire Software as a programmer, and I kept jSoup going on the side to wait out a contractual obligation and to see what would happen.

Just as I was about to close up the jSoup shop, I got a call from some guys who I worked for in 2005. The new gig with them is what keeps jSoup in business. I also manage a website for the karate dojo that my daughter attends — more for fun than profit.

Recently I consolidated my hosting to one provider. In the switch, I obliterated the old jSoup website. It was not an accident as I am not much for maintaining relics. The site had information primarily about web services that is certainly out of date. Now that jSoup is staying in business, I figure it’s time to bring back the homepage. I also have jSoup Software which is my marketing website.

So, what is this website for? For starters, I will make an attempt at agile blogging. Software developers probably have some notion of what Agile means even if they have not been swept up by this latest paradigm shift. Quite simply, agile is sort of a follow your nose approach to software development. You start with a reasonable enough understanding of what you are trying to accomplish, break that objective into bit-sized stories, then write just enough code to get that story to work. Throughout the process, requirements are  uncovered or discovered on a need-to-know basis.

With this website, I am trying to start a conversation about software development. To get things going, I’ll identify some stories from my experience and write about them. If I manage to type out 20 posts this year, I’d consider that a success.

That’s all for now.

Tags Categories: Software Development Posted By: Dave
Last Edit: 04 Feb 2009 @ 04 02 AM

E-mailPermalinkComments Off

\/ More Options ...
Change Theme...
  • Users » 1
  • Posts/Pages » 5
  • Comments » 0
Change Theme...
  • VoidVoid
  • LifeLife « Default
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LiteLight
  • No Child Pages.