This comic is too funny – and this time I don’t think I misread anything. But then I could be wrong… Too bad I didn’t see this eight months ago
In my Test Infecting talk, I do my best to counter a number of myths that I (and others) have encountered when introducing testing into an organization. One of the most persistent misconception revolves around time – or rather the lack thereof. Many a developer has claimed they don’t have time to test to which I generally reply with a Pat Parelli quote from this post on Kathy Sierra‘s blog:
“Take the time it takes so it takes less time.”
Kathy was talking about multitasking but my point is simple: forgo testing and you’ll pay that price plus more later when the defects start rolling in. While I *think* this is persuasive, Dean Wampler went one better by using charts which we all know makes for a better argument Dean makes some great points in Why you have time for TDD (but may not know it yet…) though the part about moving unscheduled project end time up earlier into the project really hit home.
Ranges are fine and the key to success is frequent milestones; as we learn more about the problem domain and the technology we are using, the more accurate our estimates. But most organizations take a random guess (with, I’d say, a wind’s spittle of support) and turn that into a concrete date around which the world turns. They then ignore all the little milestones (if they track them at all) or they green shift the project status. The result is failure, though sometimes we redefine that word to mean something else entirely…
Like any geek, I find Dilbert to be just about the funniest thing around and this strip in particular caught my eye. Now, I just have to find a way to work “wind’s spittle” into my daily conversations. BTW, Scott Adams has a new book coming out based on his blog…that’s the good life there!
Like any industry, ours likes to pretend that today’s problems are new and unique – it’s part of how we justify our salaries. And while the demands on what we are expected to do with technology continues to exceed the gains made with improved languages and hardware, the more things change, the more they stay the same. For example, take collaborative work environments. With today’s focus on outsourcing, far flung offices, and distributed supply chains, using technology to help distributed teams work together is a must. While some people might think this is a relatively new phenomena, in truth, Douglas Engelbart (inventor of the mouse) was working on these issues back in the early 60′s (a point Doug Crockford made in his RWE keynote). A while back, I stumbled upon this video of a presentation from Alan Kay circa 1988.
During the talk, Kay shows a video of Engelbart demonstrating some really amazing stuff. In the presentation, Engelbart works with a colleague located about 30 miles away – along with sharing the desktop, they’ve got full audio and video connectivity. Needless to say, I was pretty wowed.
Further along, you see some amazing applications developed by school children! While some of this may seem quite simple today, you have to consider when this was filmed. I’ve long been fascinated by novel ways technology is applied in the classroom – something beyond using a word processor or doing some research on the web. I have to wonder what has become of programs like those discussed in this talk. Of course now we have things like Yahoo! Teachers but still, the focus seems to be on attendance and grades not on enhanced teaching methods.
These days you can’t swing a short iron without running into some discussion of patent law and how it applies to software (or more often doesn’t apply) but I was really surprised to hear it come up in the Q&A of Kay’s talk! To paraphrase Alan, while he feels that protecting inventions is good, there is “enormous confusion between whatâ€™s an idea and whatâ€™s an inventionâ€. He argues that there should be some protection but that it is and can be abused. A little later, he argues for more than just a technical education and as a graduate of a small liberal arts college, I was very pleased to hear him urge computer scientists to get a liberal arts background arguing that the challenge is to find the aesthetic. Frankly, I think my BA in computer science makes me a far more well rounded individual and has allowed me to perform a wider variety of duties.
Anyway, a very fascinating presentation by a giant of computing. I highly recommend you take the time to watch these; despite their age, they are still quite timely.
Despite our best efforts, many technology projects don’t succeed (and a few that do define “success” in interesting ways…) Many many words have been spilt trying to answer why failure is so common and even more describing the one true way to counter that sorry state; I’m certainly not going to add to that ink bath but maybe I can give you a heads up that will save you the pain of yet another death march. In a series of chats with various project survivors, I’ve assembled the following short list of signs that you it might be time to find something new.
- “The file extension is .java” is the first item on your code review checklist.
- You throw out a random TLA in a meeting and no one misses a beat.
- The project manager says the data model is already 95% done.
- The use of the term “code smell” is outlawed.
- Developers insist that unit testing will only slow them down.
- Estimates aren’t ranges.
- Your manager tried to send people to Waterfall 2006.
- Technologies are evaluated based on the quality of the golf course.
- The first thing the tech lead does when he downloads a piece of open source software is hack the code.
- The term “Big Bang” is thrown around liberally.
- Your project structure requires an upgrade to your toolset in order to function properly.
- The architect is babbling like the Oracle at Delphi…and everyone is nodding.
- You feel the need to build a “concrete containment building” around a part of your code base.
- Your IDE is responsible for generating nearly all your code.
- All technical questions are answered with a recap of the project history.
- End users have update access to the production database tables.
- You do something special when your page has checkbox3.
Though influenced by my own experience, any resemblance to projects real or imagined is entirely coincidental… [Shortly after writing this, I was listening to a Java Posse podcast that had a nice list of project smells.]