6 February 2008
15 January 2008
Links – The Fight for Long-Term Thinking
- Ahhh… A great example of how listening to ‘bean counters’ encourages short-term thinking.
How to recognise a good programmer
:
- I like this post… Hopefully it is true, and not just an example of why I think I’m a good programmer.
14 January 2008
Links – Compilation
Hrm… No apparent theme to today’s link roundup…
- Good points. I gotta keep this link around for the future.
Ten Thousand Hours of Design Reviews
:
- WOW! Mathematica has undergone about 10,000 hours worth of design reviews.
- A couple of good examples of how code can be very misleading, and tips on how to avoid the same in your code.
11 January 2008
Links – Synchronicity…
Geez, Reddit
was a raft of apt articles today, dealing with several issues that are coming up in my daily life.
Whatever happened to code reviews?
:
- My answer: short-sighted-ness.
- Another thing to think about when working in an environment where there are no code reviews: How are the developers going to grow? If I come in, and day-to-day just keep dropping the same code that I’ve been dropping, with no one challenging my skills, how am I going to get any better? My personal answer is that I spend out-of-work time pursuing "recreational programming" activities, however I realize that I am the exception to the rule. Most of my peers stagnate, frustrating my growth. And how can "management" ever hope to make any better products than what they’ve had in the past? The answer seems to be "churn": lose engineers and hope that your next hire will be better than the one departing.
The top 4 things you should never do to your users
:
- I shopped this one around my office for a bit, since we are definitely treading on at least 2 of these. And 100% of the responses were along the lines of "But there is a company benefit to it." This makes me ruminate on the difference between a "service organization" and other types of companies.
The 3 Levels of Programmers: The Good, The Bad, and the Lazy
:
- I believe I fall *firmly* into the middle tier, though I try to tread into the upper tier every once in a while.
- I wish it wasn’t impolite to just run out of the room screaming when someone suggests a "lets-build-it-ourselves" approach.
- I think "crunch mode" and "incentive pay" are two concepts that should be discarded.
Maybe I’m just grouchy today, but I am struck by how many companies embrace short-term thinking, even though they purport to be thinking of long-term goals.
4 December 2007
Links – Quality and QA
Sorry I haven’t posted in a while… The Thanksgiving holidays were pretty busy for me…
Joel’s Talk at Yale: Part 1 of 3
:
- "This seems like a kind of brutal example, but nonetheless, this search for the holy grail of program quality is leading a lot of people to a lot of dead ends. The Windows Vista team at Microsoft is a case in point. Apparently—and this is all based on blog rumors and innuendo—Microsoft has had a long term policy of eliminating all software testers who don’t know how to write code, replacing them with what they call SDETs, Software Development Engineers in Test, programmers who write automated testing scripts. The old testers at Microsoft checked lots of things: they checked if fonts were consistent and legible, they checked that the location of controls on dialog boxes was reasonable and neatly aligned, they checked whether the screen flickered when you did things, they looked at how the UI flowed, they considered how easy the software was to use, how consistent the wording was, they worried about performance, they checked the spelling and grammar of all the error messages, and they spent a lot of time making sure that the user interface was consistent from one part of the product to another, because a consistent user interface is easier to use than an inconsistent one."
- This bit reminds me that we need to look at some of the non-technical benefits of having non-technical testers. (This is something that I have been challenged with in the past.) Now, I’m not advocating getting rid of automated testing, but there is an undeniable benefit to having actual people actually poke your software.
- "Currently, in the battle between the geeks and the suits, the suits are winning, because they control the budget…"
- This quote echo’s something that I’ve seen in my career as of late. Adopting some of Joel’s language: There is a continuum between the suits and the geeks, with the suits wanting to rush stuff out the door and the geeks striving for high-quality code purity. In every business there are judgments and compromises to be made, but it is my job as a geek to make sure my projects land in the middle of the continuum by representing the code purity side. If I did not do my job we would be left with quickly delivering a lot of buggy code. I am the geek Yin to the suits’ Yang.
- Mirroring what I said above about the "suit vs. geek, quick vs. quality" continuum, this article helps to point out that contention in many instances.
11 November 2007
Link – Nerd Handbook
"The Nerd Handbook":
http://www.randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html

- Wow!
- This is such a great "dissection" of me, that I am almost embarrassed.
5 November 2007
Links – The Network and the Mob
"Mob Rules (The Law of Fives)"
- This is an amazing article!
- The author moves from cell phones in impoverished regions to political censorship to the social network of humanity to network resilience to SF’s Free Net Project to humanity as a mob to filesharing to future prognostications. He covers a lot of ground, but I was enthralled throughout the whole article. So many good points!
30 October 2007
Links – A Backlog
"Automating tests vs. test-automation" 
- This post brings up my suspicion that the terms "unit testing" and "integration testing" may be a bit harmful. I prefer to think of them as "single-layer testing" and "double-layer testing". (Maybe I’ll make a post about this concept in the future…?)
" TDD with Acceptance Tests and Unit Tests"
- The best quote in this whole post: "Manual testing is immoral."
- I like these delineations: Developers are responsible for writing unit tests and writing code to match the acceptance tests. QA is responsible for writing the acceptance tests, and exploratory testing. (As my current PM likes to say "A good QA tester has a shit-finger.")
"Welcome to the Shitty Code Support Group"
- I linked to the same post that Ted is talking about: "Confessions of a Terrible Programmer"
- Even in Java, I agree that Static Analysis tools (FindBugs
, PMD
and CPD
, CheckStyle
, JDepend
, and JavaNCSS
) are really useful. Though my management is not yet convinced, I find that paying attention to these reports gives me a great cross-project view of quality, and allows me to apply coding diligence to some of the code hot-spots.
- I love Ted’s Declaration of Anti-Perfectionism: "I am human, therefore I make mistakes. If I make mistakes, then I cannot assume that I will write code that has no mistakes. If I cannot write code that has no mistakes, then I must assume that mistakes are rampant within the code. If mistakes are rampant within the code, then I must find them. But because I make mistakes, then I must also assume that I make mistakes trying to identify the mistakes in the code. Therefore, I will seek the best support I can find in helping me find the mistakes in my code."
- Coding for NASA. I really admire their quality, but I have tried to steer my career to avoid writing code that could kill someone.
"So Long Apple. The Party’s Over"
- I thought I was going to upgrade to Leopard on my home machine, but I can’t risk Java5 getting broken.
- (Besides, I already use offsite hosted SVN to back up my important stuff already. And TimeMachine was my biggest draw…)
17 October 2007
Links – A Cornucopia
"The Green Shift Anti-Pattern", or How Does Upper Management Get The Wrong Idea:
http://www.ddj.com/architect/191600661?cid=Ambysoft

JavaScript Self-Education:
http://blog.mootools.net/2007/6/5/help-i-dont-know-javascript
A FANTASTIC WTF…
http://forums.worsethanfailure.com/forums/thread/133345.aspx
5 October 2007
Links – Pro-Testing (Yay!)
http://jamesgolick.com/2007/8/28/we-dont-write-tests-there-just-isnt-time-for-luxuries

Testing is good for you!