Entries Tagged 'Software Development' ↓

The Fallacy of Management

In case you missed Gates VP’s comment about The Fallacy of Management on my recent post Q & A on Leaving Management for Development, I’ve re-printed it below:

===

I have a working theory that I’ve titled The Fallacy of Management.

The basic definition is that current managers would have us believe that the work they do is the very reason for project success and therefore they believe (and have convinced others) that their’s is the most important role.

The real truth is that most managers are just overhead, projects would likely self-assemble without them, especially with good devs on the job. However, companies do things like targeting management for bonuses and taking other steps to make management a “position of privilege.” The truth is, good managers don’t deliver projects on time, good programmers deliver projects on time and managers just guide the process.

Continue reading →

Q & A on Leaving Management for Development

I’ve received several emails about my post Why Good Developers are Promoted Into Unhappiness. One reader asked some interesting questions on his quest to decide between development and management.

Here are some excerpts from our conversation:

Q: Does leaving management for coding greatly cut your salary?
Going back to coding may cut your salary, but it’s quite possible it will not. In my case, the first time I went from management to coding I was fortunate enough to move into a higher paying development position. The second time I didn’t receive additional money for my “promotion” into running a development team, so going back required no monetary sacrifice.

Continue reading →

A Conversation with Joel Spolsky

I relocated from Los Angeles to Connecticut a few months ago, and a few of my geekier friends joked that I had to meet Joel Spolsky and Paul Graham before I came back to California.

Joel is in the midst of his 21-city FogBugz World Tour and one of his first stops was in New York City, where I saw him demo FogBugz 6.0 two weeks ago. In fact, in the picture at the top of Joel’s post about the session, you can barely see my head peeping out over the guy with the black shirt and white stripes on the left side. Those stinking paparazzi never leave me alone.

FogBugz 6.0
The demo went well; it wasn’t spectacular, but it was a good 40-minute overview of FogBugz’s main components: a wiki, forums, bug tracking, and scheduling. But it didn’t need a big flashy presentation - the application itself is seriously impressive.

Continue reading →

The Inside Story of a Small Software Acquisition (Part 1 of 3)

My startup history goes back a few years.

In 5th grade I sold comic books to my classmates at a 30-40% markup. I was a voracious marketer; I handed out homemade flyers, created checklists so customers could see “at-a-glance” which issues they needed, and even started a subscription service. Whenever kids in my school had extra money the first thing they thought of was buying comics.

In 8th grade I sold candy at a 500-800% markup because kids couldn’t buy it within walking distance of school. I made money hand over fist, and quickly learned that you should re-invest your profits instead of purchasing DJ equipment that you think will make you cool, but will actually collect dust in the back room of your house because you never spend the time to perfect your cross-fade.

In high school I wrote a booklet about comic collecting and sold it through classified ads. Technically I broke even, but realistically I lost money on the 50+ unpaid hours I spent researching and writing. This was the first business I launched “in the wild,” and I learned a lot about what it takes to market a product in the real world (i.e., to someone other than my classmates).

During college I sold $5,000 worth of comic books on newsgroups and eBay (this was circa 1997, when eBay was still black and white and so slow you had to snipe 40 seconds before the auction ended or your bid wouldn’t hit the servers in time). This business funded my entertainment expenses for two years. I had many Silver Age books that were some of the few copies for sale on the internet at the time.

Continue reading →

The Two Fundamental, No Frills, Square One Rules of Exception Handling

When I was a coding newbie I thought applications should never crash. I wrote code that caught and ignored errors because I didn’t know how else to handle them. I didn’t want the user to see an error page, and figured a running application was always better than an error page. Oh, how wrong I was. On one application alone (not written by me) I wasted 50+ hours over the course of a few months because of exceptions that were caught and not properly handled. Don’t let this happen to you.

I’ve found this mindset to be so common among new developers that I’ve distilled the basics down to two fundamental rules a new developer should follow to the letter. I’m exhausted with cracking open code and seeing a Try/Catch block with no action after the catch. Whether you’re using a language with actual exceptions is beside the point - what matters is that you read through these few simple paragraphs and never, ever obfuscate your application errors.

Picture this (in C#):

Try
{

‘ Application code here
}
Catch
{

‘ Do nothing
}

What happens when an exception is thrown from the application code? Nothing…and that’s a problem.

Continue reading →

New Article: Computer Science Enrollment is Going Down, and Taking Software Jobs With It

From my new article Computer Science Enrollment is Going Down, and Taking Software Jobs With It:

“How many of us would kill to work with ultra-qualified, talented developers instead of whoever we can find that has a pulse and once wrote an Excel macro for a junior high class project? If Computer Science enrollment continues to drop people will eventually get hired, with or without degrees and regardless of how qualified they are, because companies will be desperate. And then we’ll be stuck working with folks who can’t find their text editor with two hands and an issue of Dr. Dobb’s Journal.”

Read the complete article here.

Why Good Developers are Promoted into Unhappiness

I once thought I had traveled a unique career path. Graduating from college with a degree in computer engineering and electrical engineering I was on fire to be a manager. My dad had worked for the same electrical contractor for 30-something years and I knew everyone from the Chairman of the Board down to the woman who worked the front desk. I had a major “in” and was quickly shuffled into a management training program, with my sights set on one day becoming CEO of the $600 million firm.

18 months later I left for a job writing software for a dot com in Sacramento, and within 3 months I was running multiple project teams (albeit, small ones). I was young, it was fast paced, and I loved it.

When that company experienced difficult times in 2001, I transitioned into contracting, which I did for about three years before taking a position as the Application Development and Database Supervisor at the City of Pasadena, directly responsible for the management and supervision of 10 developers and DBAs. The prestige? High. The paycheck? Fat. The job? Hated it.

Continue reading →

Computer Science Enrollment is Going Down, and Taking Software Jobs With It

You’ve heard it before: there’s a massive shortage of IT workers in the US (the stats are a few years old, but pick your number: 600,000, 578,711, or 425,000 excess jobs). Whether you’ve read the articles or experienced it first-hand, there is a noticeable lack of qualified programmers in the U.S. According to the US Department of Labor, 8 of the 10 fastest growing occupations between 2000 and 2010 will be computer related.

With programmers making up the single largest category of IT workers (around 21%), and somewhere around 60% of software developers having a bachelor’s degrees, a good way to increase the supply of domestic software developers would be to enroll more Computer Science (CS) students.

Are you with me so far? CS enrollment up = more programmers in four years. Easy enough.

But this is where it gets grim: the number of students listing Computer Science as their probable major while entering college has dropped 60% over the past 4 years (you can see this graphically on the first page of this document).

Continue reading →

Becoming a Better Developer Part 11: Get a Massage (and Get Your Boss to Pay For it)

This is part of an ongoing series centered on becoming a better software developer. For other posts in the series, see the Becoming a Better Developer heading in the right navigation.

Last Valentine’s Day my wife gave me a gift certificate for a massage. Nearly a year later (obviously a busy one) I finally redeemed it, and had the most productive day I’ve had in a while.

I’m a pretty healthy guy with no medical conditions or injuries, and I only occasionally eat my weight in carne asada. But I have aches and pains just like anyone else who sites in front of a computer all day.

My massage therapist (whom I mistakenly called a masseuse…oops!) gave me quite an education while I was there. She began by asking about my breathing; most people with desk jobs tend to have very shallow breathing while seated. She drew my attention to my breathing as she worked on my neck, chest, rib cage and, oh yes, the back! Anyone out there with neck aches? Rounded shoulders? Pain in wrists & forearms? Yeah, I thought so. You can have the best ergonomic workstation in the world, but our bodies need care to compensate for endless hours in a chair. Massage with an eye towards specific work in these problems areas can go a long way towards longevity in this field.

Continue reading →

Source Control for Micro-ISVs

I perform a good portion of my ASP.NET consulting work as a one-person team. After resuming contract work late last year I was faced with a challenge: get a “real” version control system in place. Of course, anything’s better than FTPing code off-site three times a week.

My big hang-up was set-up and maintenance time. Three years ago I spent 8 hours trying to install and configure CVS before bailing on it and purchasing SourceGear’s Vault, which I had up and running in about 20 minutes. At the time a five user license ran $599, which I consider a decent trade off for 7.5 hours of work.

This time around some things had changed: Vault licenses are $289 apiece which means expanding would be painful on the wallet (when coupled with the cost of bug tracking licenses, development tools, etc… this requires a substantial investment to bring on a new developer). In addition, there’s nothing I hate more than maintaining my own servers. My DSL has gone down once a week for the past few years, so if I had attempted to host it myself anyone trying to hit my servers from the outside world would be cut off until I rebooted my router. And like anyone else who gets busy writing code, I don’t perform backups as often as I should.

In my opinion, as a 1-3 person shop I’m much better off leaving my web, email and FTP hosting to professionals. So I began toying with the idea of hosting my source control off-site. This is a concept that has always set the hairs on the back of my neck at attention, for obvious reasons.

I did a search for “hosted source control” and noticed OrcsWeb has Vault hosting for the full price of a Vault license up front, plus $40 per user per month. Ouch…at that price I’d prefer to do it myself, drawbacks and all. I also found wush.net, who does Subversion hosted source control and has an insane back-up schedule (a back-up after every check-in). As I performed my final pass through of the search results before signing up with wush.net I noticed one of the companies doing Subversion hosting was DreamHost, the company I use for Linux hosting.

I’ve been with DreamHost about 18 months. Their reliability is awesome, and their tech support fabulously knowledgeable and easy to work with. But I never realized that my web hosting account, which I pay $16/month for, includes north of 350GB of storage. That’s approach half a terabyte. And it includes unlimited Subversion repositories. That is nuts!

After a brief email exchange, I learned that while DreamHost doesn’t back-up every 9 seconds like wush, they do keep my data from 1 and 2 hours ago, 1 and 2 days ago, and 1 and 2 weeks ago, and I can see the Subversion files when I FTP into my web server — a shared hosting package, mind you, so I can back them up manually if I want, or write a cron to do it for me.

After installing TortoiseSVN and the Ankh Visual Studio plug-in I was checking in my first project within 20 minutes. A few hours later a developer who’s contracting for me was pulling files down and we were off to the races. No 8 hour install time, no worrying about backups, no downtime, and no additional cost. I’ve been up and running for 4 months now without a hiccup.

As long as I don’t run over my 350GB storage limit I’m sitting pretty. Let’s see…that comes out to about 3.5 billion lines of code…