Skip to main content

lecture Nov. 15: "How to be a Software Expert"

The CS department at Fort Lewis College in Durango has a tradition of featuring a speaker from the community for the last lecture before the Thanksgiving break. I did the lecture two years ago on "The History of Software Testing", and I had a blast.

I was asked to do it again this year after starting the Four Corners Open Source mail list. (I hope to have a number of students (and even professors) join after the lecture.) I have a few things on my mind this time around.

For one thing, the job that I moved to Durango to take, got outsourced to Canada. Or possibly Denver. Or maybe Israel. I left before they figured out the details. But it's definitely gone.

For another thing, I spent a year working for Thoughtworks. TW itself is not gigantic (although they are spread-out) but I worked on some enormous agile projects with some really smart people from all over the world. The work was amazing, but the travel was brutal.

For another thing, I've published some pretty heavy articles and given some big time presentations since then.

So I'm not really an expert except maybe at some niche software-test tool stuff, but I do get to talk to some real experts now and then, and I've seen a lot more of the software world since the last time I gave this lecture.

However, because of the bit of expertise that I do have, I am very concerned that the world these students think they're about to enter does not really exist. I'd like to be able to give them pointers about how to jump in and survive in a world where IT paradigms are upset over and over and over again every few years or even months, where the future is always uncertain and the only way to keep up is to keep learning, keep teaching, keep asking questions, and stay flexible. Funny that as I got my material together, Kathy Sierra published this nice bit:
"Why does engineering/math/science education in the US suck?" which points out among other things that "
Where we used to prepare students for a "job for life", now we must prepare students to be jobless."

More than that, though, I would like to point them toward tools and attitudes that will allow them to live and work in Durango, which may or may not be a "faux town" today, but certainly will be soon without more highly-skilled, high-paying jobs. Like in IT.

Here's the blurb, the outline will follow:

How to be a Software Expert

Are you so talented that companies will seek you out to make you a job offer? Or is your next job being outsourced already?

Routine information technology jobs of coding, support, and implementation are leaving the US for places like India and China. But at the same time, tech companies report that they face a desperate shortage of talented employees. ("The Battle for Brainpower", The Economist, Oct 5 2006).

You can be the talent; or you can be outsourced.

In this presentation, Chris McMahon explains how you can use a wealth of free resources to become an expert in information technology, and a valuable (outsource-resistant) IT asset. From local interest groups to world-wide open source software projects, Chris explains and demonstrates the tools and resources that talented experts must know in order to succeed in a global market for IT employment.

Chris is an expert in software testing and agile software development. He has published many articles about software testing, presented tutorials at software testing conferences, runs a weblog dedicated to software testing, and he contributes to a number of open-source projects. He is currently telecommuting from Durango for a software company based near San Francisco.

So here's what I'm going to talk about, feel free to leave a comment or drop me an email:

Copyright and licenses. You have copyright to everything you produce. Learn how to use it, and how to give it away.

Overview of GPL and BSD licenses, along with real-life stories about why they're useful. Possible contrast to i.e. Windows.

Money. A few people get paid because they sell a great idea, like a singer/songwriter. Think Paul McCartney. Most people get paid because they sell a service, like a studio musician or member of Paul McCartney's touring band. So we know how Paul McCartney gets paid. His drummer got the gig because he's an expert drummer.

If you expect to make a living by performing perfectly clear assignments under reasonable deadlines from your immediate supervisor, your job is being outsourced right now. Start thinking now about how to use your talent and expertise to create value and reduce cost wherever and however you work.
Agile teams. Point to Thoughtblogs
Distributed teams. Mention Magpie
Startups. Mention Skywerx

Keep a blog
Write articles
Get a portfolio. Mention Entropy Media. (Check out their About page: "...Every update is important to us. Every client is important to us. Every request is at the top of our list, not waiting to be filled." Go Entropy!)
Contribute to mail lists and technical communities like user groups or SIGs.
Present at conferences if you can
Contribute to open-source projects

Contributing questions. Mention perlmonks, soap4r, Watir
Contributing documentation. Mention the FreeBSD paper noted above and it's origins at PNSQC
Contributing code is often the least important thing you can do.

LAMP is NOT "the acronym given to the mainstream open source movement"! It's an application development stack, and it doesn't even stand for what it used to stand for. (What were you people thinking?)
Ebay, Amazon, Google, Yahoo: who uses Windows?
Google Tech Talks

Ask and answer questions in public to increase your skill.
Work in public because it gives others confidence in your abilities.
Share your work, and others will share theirs with you.
Work with others because doing it all yourself is impossible.
Quote Jerry Weinberg: "Give your best work away for free."


ade said…

Dave Hoover and I are working on a book that's about this exact topic. We're working to document the habits, techniques and mindsets of successful software practitioners so that the next generation can benefit.

You may have seen it already but our drafts are available online at:

Your audience might find some of it useful or at least thought-provoking.

--ade from thoughtworks

Popular posts from this blog

Reviewing "Context Driven Approach to Automation in Testing"

I recently had occasion to read the "Context Driven Approach to Automation in Testing". As a professional software tester with extensive experience in test automation at the user interface (both UI and API) for the last decade or more for organizations such as Thoughtworks, Wikipedia, Salesforce, and others, I found it a nostalgic mixture of FUD (Fear, Uncertainty, Doubt), propaganda, ignorance and obfuscation. 

It was weirdly nostalgic for me: take away the obfuscatory modern propaganda terminology and it could be an artifact directly out of the test automation landscape circa 1998 when vendors, in the absence of any competition, foisted broken tools like WinRunner and SilkTest on gullible customers, when Open Source was exotic, when the World Wide Web was novel. Times have changed since 1998, but the CDT approach to test automation has not changed with it. I'd like to point out the deficiencies in this document as a warning to people who might be tempted to take it se…

Watir is What You Use Instead When Local Conditions Make Automated Browser Testing Otherwise Difficult.

I spent last weekend in Toronto talking to Titus Fortner, Jeff "Cheezy" Morgan, Bret Pettichord, and a number of other experts involved with the Watir project. There are a few things you should know:

The primary audience and target user group for Watir is people who use programming languages other than Ruby, and also people who do little or no programming at all. Let's say that again:

The most important audience for Watir is not Ruby programmers 
Let's talk about "local conditions":

it may be that the language in which you work does not support Selenium
I have been involved with Watir since the very beginning, but I started using modern Watir with the Wikimedia Foundation to test Wikipedia software. The main language of Wikipedia is PHP, in which Selenium is not fully supported, and in which automated testing in general is difficult. Watir/Ruby was a great choice to do browser testing.  At the time we started the project, there were no selenium bindings for …

Open letter to the Association for Software Testing

To the Association for Software Testing:

Considering the discussion in the software testing community with regard to my blog post "Test is a Ghetto", I ask the Board of the AST  to release a statement regarding the relationship of the AST with Keith Klain and Per Scholas, particularly in regard to the lawsuit for fraud filed by Doran Jones (PDF download link) .

The AST has a Code of Ethics  and I also ask the AST Board to release a public statement on whether the AST would consider creating an Ethics Committee similar to, or as a part of the recently created Committee on Standards and Professional Practices.

The yearly election for the Board of the AST happens in just a few weeks, and I hope that the candidates for the Board and the voting members of the Association for Software Testing will consider these requests with the gravity they deserve.