RSS 2.0
Journal / Blog
Sunday, June 15, 2008
Living The High-tech Illusion: Software Development is Not Rocket Surgery
#CalgaryBarCamp was swell. It was refreshing to meet such a diverse group of like minded people that all essentially do the same thing (create software), but do it in different ways using different tools, platforms, and languages. The ad-hoc discussions both in the bar and between sessions were my highlight. A reoccurring theme in our conversations was that technology, tools, and platforms don't matter that much. What really matters is: people, communication, ideas, taking risks, and motivation.

The topic of our discussions reminded me of something David Heinemeier Hansson said when talking about software development:
"You don't need to be a f***ing genius to make any of this stuff work, it's not rocket surgery!" - David Heinemeier Hansson at Startup School 08
DeMarco and Lister also echoed this outlook back in the 80's, and publicized: the High-Tech Illusion:
the High-Tech Illusion: [is] the widely held conviction among people who deal with any aspect of new technology ... that they are in ... high-tech business. [These people] are indulging in this illusion whenever they find themselves explaining at a ... party, say, that that they are "in computers" ... The implication is that they are part of the high-tech world. [These people] usually aren't. The researchers who made the fundamental breakthroughs in those areas are in the high-tech business. The rest of us are appliers of their work. - Peopleware : Productive Projects and Teams
If we were in the High-Tech business, then we'd be the bottom feeders (the parasites, the grunts), because our daily activities revolve around consuming other peoples research and work (programming languages, platforms, frameworks and the like). We are consumers, we're not on the cutting edge nor are we in the high-tech world.

Perhaps building software could be much like outfitting yourself for a day in the snow. You head off to the local shopping mall, you acquire the functional items to keep yourself warm, but brands and store choice don't really matter. Whether we're buying winter boots or choosing a programming language, technology doesn't really matter. There are an infinite number of ways to solve any problem, as well as an infinite number of technical permutations to form a solution. If we can solve the problem within the constraints of our problem domain then we've succeeded.

The High-Tech Illusion often permeates my world - I work as a Web Developer in the Microsoft realm. I continually see the High-Tech Illusion manifests itself in these situations:
  • Colleagues talking in vague opaque high-level metaphors that patronizingly shield you from the inter working of what they assume is beyond your comprehension
  • Fixations on specific tools, hardware, platforms, and methodologies while the problem that needs to be solved is diluted and any combination of these items could solve the problem
  • Colleagues that assume superiority and can't acknowledge that knowledge is acquired through research and a continual efforts to improve
Pretentiousness in the software realm (in teams, organization, and so on) is usually the byproduct of someone that's living the High-Tech Illusion.

I've been guilty of subscribing to the High-Tech Illusion. How does the High-Tech Illusion permeate your world? How can we get back to reality?

Thursday, March 20, 2008
A Completely Normal Post: Our Dog
My blog posts tend to be obscured in programming languages, and techie gibberish, I thought I'd do a normal post on our dog - after all, pets are what blogs are really about, right? :)

Steph (my wife) and I had been toying with the idea of getting a dog, we've been looking at different breeds, visiting shelters, and emailing breeders - I have to give Steph all the credit, she did most of the research. Anyhow, we came across a post on our Kijiji for a mature Soft Coated Wheaten Terrier. Now we have a dog.

Being a Geek and all, I wasn't sure if I was a dog (or cat person), but Belle is a great dog. Her constant need for a walks is a great reminder to take a micro break while working from home.


Belle, our dog.
Monday, November 12, 2007
Alberta TechFest 2007 was a success : My highlights
This past weekend I attended the Alberta TechFest (an event put on by Calgary .Net User Group). TechFest resembled a code camp, but provides more seminars / sessions geared at a higher level. The sessions were geared towards: project management, the big picture of the Agile process, open source alternatives, as well as some in depth (show me the code type) presentations on Mock objects (using Rhino Mocks), Microsoft’s new Acropolis framework, Test Driven Development (TDD), and Refactoring.

My highlights:
  • The session on Agile Project Planning With User Stories, and Refactoring Automated Unit Tests Using Test Smells and Patterns presented by Gerard Meszaros. I’ve been on a couple projects that could be characterized as “Bad Agile”, so Gerard’s presentation hit many chords, one of the comments he made really stuck out. He said something like: “it’s not about the Agile process, it’s about the results, it’s about delivering…don't be dogmatic”. Sure it’s obvious, but it’s nice to hear it from someone else.  I’m currently in the process of purchasing Gerard’s book: xUnit Test Patterns: Refactoring Test Code.
  • Mock objects  with Rhino Mocks was another great session, the presenter Shane Courtrille is a Rhino Mock ninja. I’ve been using Rhino Mocks for a couple months now, but there’s always so much to learn from someone with more experience.
I’m trying to make it a point to attend more of these events in an effort to expand my community.

Wednesday, September 05, 2007
Interviewing: The Good The Bad and The Ugly
Interviews are usually fun, interesting, and always different.  Last month I went through a number of job interviews for a software developer / consultant positions - my wife got a fulltime position in Calgary, we moved, I needed a new job.

Some of the types of interviews I attended:

A pop-quiz / quiz show type interview, where the interview shook my hand, sat down, and proceeded to run through lists of questions procured from the internet - afterwards, I was able to find the question list the interviewer had quized me via the internet. This went on for an hour or so, when the interviewer ran out of questions he abruptly stood up, shook my hand, and left me to find my way out. 
Reflections: from what I observed, their corporate environment differed significantly from what was presented on their corporate webpage. In addition their interviewer and interview style contradicted their corporate statement of values and corporate culture. I should have been better prepared, but without a specific job description it was difficult to prepare. Many red flags were raised - most large companies should have a formal interview process or an HR department, shouldn't they?

"The second worst kind of interviewer is the Quiz Show Interviewer. This is the kind of person who thinks that smart means “knows a lot of facts.” They just ask a bunch of trivia questions about programming and give points for correct answers." - Joel Spolsky: The Guerrilla Guide to Interviewing (version 3.0)
A write the code first interview, where I was greeted by a nice HR lady, shown to a room with a computer and given a test with a one hour deadline. In the second interview I was met by two developers, I was given a couple white board questions, and asked resume related questions.
Reflections: this company seemed to have many different job descriptions for the same position, the nature of the work didn't vary, but the educational requirements did - their job descriptions individually targeted a High School, a College, and a University Grad. Their job discription was vauge, and wide - it seemed like they were trying to pull anyone in. From what I observed, the staff looked exceptionally young, the interviewers looked tired, and the computer I wrote my test on was old. I did like that I had to write code through the interview process, but again many flags were raised - mature employees are a sign of a healthy work environment, tired interviewers with transparent skin don't give off good first impressions.

A related article: "... the behavior of interviewers influences their decision to accept a position, ... despite the fact that companies are increasingly desperate for talent, many are becoming their own worst obstacles when interviewing qualified candidates. Among the sort of behaviors that adversely affect job seekers' willingness to work at a company are interviewers who are aloof ..." - http://www.management-issues.com/2007/8/9/research/poor-interviewers-driving-away-talent.asp


Anyhow; I'm now happily employed, and working with a great bunch of developers on an exciting Agile project based around Test Driven Development (TDD)  / Unit Testing, Continuous Integration, and the .NET Framework!
Wednesday, July 04, 2007
Married and Moved: What a Busy Month!
It's always difficult to consistently make blog posts through the warm balmy summer months (in Canada our summer typically lasts for 3 - 4 months), but this summer has been especially busy. Over the past month I've managed to get married, and move across Canada - from Ottawa to Calgary which is about a 2,000 km (1270 miles), a four day drive.


Adam & Steph married!
Page rendered at Monday, October 06, 2008 9:35:20 PM (GMT Standard Time, UTC+00:00)