Really?

Sorry I’m picking on this guy, but he brings up two things that really irritates the living hell out of me about our industry.

Having worked in software development for over 15 years and developing software for nearly 30 years,…

So… you’re counting coding when you were 5?

Look, for all I know this guy was a lawyer who started writing software out of college, but waited to jump ship until he was 35 and he’s now in his 50’s. But most developers I know who want to talk about how much programming experience they are count all the way to the time when their mommy gave them a toy laptop with a BASIC interpreter.

I’m sorry, but I’d like to call “bullshit” on that.

In every other industry I’m aware of, experience is counted as professional experience, where you had a fucking job (or a volunteer job) where you actually went somewhere and did something for money (or to help with a volunteer organization). It involved regular hours and following directions from another managing supervisor, and it involved delivering stuff on a schedule.

Fucking around when you’re 8 on daddy’s computer with the copy of GW-Basic that came on the computer no more counts (in my mind) as “experience” than does wrapping duct tape over a leaking air duct counts as “experience” as an HVAC Contractor, or fixing a leaky pipe counts as a Plumber, or helping a friend nail boards together to tack up a broken piece of trim on their house counts as experience as a finish contractor. Renting a U-Haul doesn’t count as truck driver experience, helping your younger sister with her homework doesn’t count as teaching experience, and convincing a friend he should buy a new phone doesn’t count as sales experience.

So why in the name of Cthulhu does tinkering around with a BASIC interpreter after school in the 2nd grade count as development experience?

Really?!?

To me, experience is professional experience. College education can be counted if called out separately as college, in the same way that taking technical courses to become a plumber can count on your resumé towards being a plumber, if called out separately. Fucking around sniffing pipe glue doesn’t count.

By this metric, I graduated from Caltech in 1988 with a degree in Mathematics, with experience in computer graphics, computational theory, a touch of VLSI design and hardware design, and a touch of mathematical optimization theory. From 1987 to 1988 I worked for a company doing computer graphics for the Macintosh (I needed to take one class to finish my degree, so worked full time while finishing up), and since graduating I’ve worked non-stop as a software developer in a variety of fields.

Which means I have 23 years of professional experience and a 4 year degree from a pretty good school.

I don’t count the time when I got a TRS-80 back in the 70’s, or the time when I was 12 learning Z80 assembler to hack my computer, or the time I spent in high school learning LISP. If I were, I could say things like “well, I have been developing software for nearly 33 years”–or is that longer, since I started tinkering with programmable calculators and electronic circuits well before then?

I call bullshit on the practice. Sorry.

In my opinion development experience starts accumulating the first time you get a real fucking job, either post-college, post-high school, or after dropping out of college. Not from the time your elementary school teacher allowed you to play with the old Commodore 64’s after school if you finished your homework first.

You’ve guessed it, Scrum adresses all of these resulting in 99% – 100% on target delivery. So it’s not due to bad programmers if an agile process can fix this.

I also call bullshit on the “one size fits all management style fixes all the problems in the computer industry.”

Excuse me, but Agile will fix all the ills of wrong estimation, wrong status updates, scope creep, and the like?

Really?

Because Agile will–what, exactly? Reduce the problem set into manageable chunks that can be fed to our steady stream of interchangeable cogs of programmers?

Don’t get me wrong; I think Agile is a reasonable tool for certain problems in a managerial toolkit. Along with good bug tracking, a well organized QA process, and motivated developers, and a good project plan. But Agile doesn’t fix a damned thing: it simply creates a regular communications channel between individual contributors and managers who need to keep track of the bottom line.

It helps, in other words, if you have good managers and good developers. But it won’t do squat if you have dysfunction in the overall team. And while I’ve seen people say that this dysfunction isn’t Agile, I’d argue that if you use a business label to label not just the tool but the overall team result, then you’re no longer describing a tool–you’re describing a condition and attributing it to a tool.

And I despise circular thinking.

Software shipped well before the latest management fad came down the pike, and the introduction of this fad did not make managers good leaders or developers better programmers. And I’d even go so far as to argue that the practice simply altered the workplace, making it harder, not easier, to ship new development efforts which are more properly handled with a waterfall method with constant feedback from the development team.

There is a reason why large companies generally bring new products to market by buying small companies who develop those products, rather than doing it in-house: because all of these managerial fads can never replaced a well motivated small team of people doing something either out of love or out of greed. Large companies take away motivation by greed and they tend to marginalize those who have love for a project.

And Agile will never replace passion.

Thanks for reading my rant. And apologies to Stephan Schmidt whose post just set me off this morning–I actually agree with 90% of what he wrote about the whole “bad programmer” debate, which is honestly a different rant for a different time. Though I will note that just because I need a C compiler to be more effective than entering a program via a toggle switch panel, does that mean I’m a bad programmer because I need a tool to help me figure out which bits in program space should be set to 1, and which ones should be set to 0?

2 thoughts on “Really?

  1. I thought long about answering or just letting your rant stand there, but as you repeat my name several times in the post, I’ll add a comment.

    “Look, for all I know this guy was a lawyer who started writing software out of college, but waited to jump ship until he was 35 and he’s now in his 50′s”.

    Wow, reading the about section of the blog would have helped, but clearly, reading is not a thing people do today, is it? Otherwise: Started to programm at 8, wrote programms for magazines, studied computer science, did my master, been working for money since 1995.

    “[…] are count all the way to the time when their mommy gave them a toy laptop with a BASIC interpreter.”

    First: I’ve bought my first computer on my own (Amstrad CPC). Second: 1980 there was no laptop to buy. Third: 1980 kids here did not “own” computers, but went to a department store to learn programming there. Forth: It wasn’t BASIC but Z80 machine code.

    “Fucking around when you’re 8 on daddy’s computer with the copy of GW-Basic”

    Holy shit, this all happened before GW-Basic. And fathers did usually not have a computer back then, most didn’t know what a computer even was.

    And writing Towers of Hanoi at that age, calculating the number of moves dependent on the tiles, without access to the algorithms is nice I think. Not spectacular but far from “Fucking around”.

    “Excuse me, but Agile will fix all the ills of wrong estimation, wrong status updates, scope creep, and the like? Really?”

    Yes. Really.

    [then there are strawman arguments [1], like “I also call bullshit on the “one size fits all management style fixes all the problems in the computer industry.” which I never made, personal attacks [2] and a lot of noise]

    All in all – reading the about section would have helped, but hey, reading is luxury today.

    Best
    Stephan
    http://codemonkeyism.com

    [1] http://en.wikipedia.org/wiki/Straw_man
    [2] http://en.wikipedia.org/wiki/Ad_hominem

    Like

  2. “Wow, reading the about section of the blog would have helped, but clearly, reading is not a thing people do today, is it? Otherwise: Started to programm at 8,…”

    My basic point is that for whatever reason, ours is the only industry where we count playing around on the computer as children as “experience.” No other industry in the world does this.

    And it strikes me as extremely silly.

    And it’s not you I’m talking about. I didn’t know you, and my comment about not knowing if you were only counting experience out of college and then switching careers stands–since you’re not the only person who does this.

    I had an interesting discussion with a fellow who, after I talked about having 20 years of experience (this was a few years ago) piped up with “well, heck; I’ve been doing this for 25 years.” I patiently explained that I was talking about the time from my first professional post-college job, and–being 30 himself–I can’t imagine him graduating from college at 5. By the same metric, the first time I was stringing together instructions in a program was a couple of years prior to the release of the TRS-80 Model I in the 70’s: does this count? Really?

    There is a very strange sort of insecurity in our industry that causes people to reach back to the earliest days when they were tinkering with BASIC (hence, the comment about GW-Basic, which I’ve seen people use to claim “experience”) and claim this as “experience”–an insecurity you don’t see with pipe fitters or carpenters or plumbers. And I think it’s the dumbest thing.

    I just wish people would properly state their real work experience rather than reach back insecurely to prove some sort of “biggest dick contest” by counting experience no other industry counts.

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s