May 2009 Newsletter
Most of us can read the writing on the wall; we just assume it's addressed to someone else. –Ivern Ball
Pick battles big enough to matter, small enough to win. –Jonathan Kozol
The person who removes a mountain begins by carrying away small stones. –Chinese proverb
The scientists of today think deeply instead of clearly. One must be sane to think clearly, but one can think deeply and be quite insane. –Nikola Tesla
Our actions are the results of our
intentions and our intelligence. –E.
Never neglect details. When everyone's mind is dulled or distracted, the leader must be doubly vigilant. –Colin Powell
There is only one you... Don't you dare change just because you're outnumbered! –Charles Swindoll
Gratitude is the sign of noble souls. –Aesop
The common argument against agile development methodologies are that they are too "loosey-goosey". Well, maybe not that exact term, but you get the idea! In this editorial, the author argues that, in view of the patent failures of the traditional techniques of the last 50 years, maybe it's time to give agile a try.
When IT thinks about "modernization" they usually mean updating hardware or platforms. This author says that modernization should start with repairing the broken relationship between IT and the business.
Most programmers are not the greatest when it comes to user interface design. But this article suggests one simple principle that developers can use to benefit their users immensely: Make the right thing easy to do and the wrong thing awkward to do. The application itself needs to train the user.
Programmers often have debates (or friendly discussions) about the appropriate analogue of software development at physical activities. Many of these center around engineering (building a bridge, etc.) or science. Bruce Eckel says that the correct analogy is to writing, because programming is a creative endeavor.
Software development pundit Gary Pollice explains ten characteristics of successful leaders in agile development. Clearly, his list shows that traditional management techniques must be adapted to succeed with agile.
With the economic slowdown, there seems to have been a dearth of discussion about so-called IT-business alignment. In this interview, the author of the new book The Business Value of IT discusses the six key elements for IT to support their business customers.
Most people, even agile practioners, that requirements are the linchpin of any successful development effort. Scott Berkun says that most sets of requirements are bad because of too factors: Too much design work happens during the requirements gathering and too many people are involved in the requirements process without anyone having final authority or accountability.
At one time or another, your application is likely to get some cruft and duplicate code, but you don't want to do a complete overhaul (rewrite). This article discusses the refactoring process and why you might want to do it. In addition, it includes some good but understand examples using OOP principles in PHP.
This is insightful commentary about the breakdown of association between real-world objects and their counterparts used in object-oriented programming (OOP).
Does your organization use agile techniques? Which ones? Is it a "full" agile process or do you use bits and pieces? Take this anonymous online survey to see how you compare with other organizations and give a broader picture of the adoption of agile.
Agile development teams only function well when the team has a high amount of team cohesion and this mostly comes from developing trust. Esther Derby has five concrete suggestions for building trust: address issues directly, share relevant information, follow through on commitments or give early notice when you can't, say no when you mean no, and show what you know and what you don't know.
Schedule estimation is one of the most difficult tasks in project planning. This author looks at some of the common pitfalls in estimating the effort/duration of development tasks.
In today's economy, most every business (and every worker!) is in "survival" mode. What should software testers do to weather the storm? This author says to adopt agile techniques, especially around bringing innovative ideas to the team.
Regardless of the amount of automation and the number of tools that you use in development, underneath it all programming is a human endeavor and, thus, is susceptible to human error. This author looks at four types of failure types (mechanical, mental, social and environmental), including their causes and methods of prevention.
This article makes the salient point that software development is far behind the manufacturing world in defining quality as fitness for use and providing function/value to the customer. The author emphasizes that development needs to move away from simply finding and fixing bugs, to focusing on quality from the start.
Much of the focus of software testing is on verification that the application functions correctly. This author says that the more valuable contribution of testing is in discovering what we do not know and documenting it to reduce risk.
This author says that attitude, intellectual and technical capacity, flexibility, communication skills, and business sense are the building blocks of a good tester. What other skills would you include?
This document is a comprehensive and up-to-date list of software testing and QA terminology.
Even though e-mail is far less formal than other types of writing, it is still important to use appropriate grammar to maintain credibility. This article presents 10 common grammatical errors with appropriate usage.
One of the most trusty tools for monitoring resource usage is the venerable top utility. This tutorial gives you help in understanding top and using it for a variety of tasks such as locating system bottlenecks, system optimization, and finding applications with memory leaks.
The difference between leadership and management is one of the core concepts of business that interest me. This excellent article provides a good side-by-side comparison of some of the key differences between them. And it points out the tight symbiotic relationship between the two.
You probably don't need to be told that it's a tough job market right now. So what are the skills that are most in demand? Check out this list from freelancer site Elance.
I've probably harped on it enough in recent months in this newsletter, but the fact is the IT job market (like all job markets, I suppose!) is tough. Information Week's annual salary survey of over 12,000 IT professional confirms this.
Most of the productivity methods and tools focus on efficiency. However, efficiency is not very valuable if it doesn't lead you to be more effective. This article explains how to make that happen.
A recent survey by Hewitt shows that, while more than half of companies believe a recovery will start by the end of 2009, almost a quarter of them plan layoffs and other cost-cutting. Some worry that these cuts may make it difficult for these organizations to bounce back if the cuts go too deep.
While I certainly hate to admit it, I'm no longer a spring chicken. This article gives some great tips, especially for your resume, about how to emphasize your skills and experience without looking like a dinosaur.
This author indicates that, as an organization matures, the importance of "hard" technical skills starts to wane and the ability to communicate well, especially in writing, quickly becomes key.
Unnecessary stress is the cause of programming errors, according to one researcher. So what can individuals and organizations do to reduce and mitigate stress?
Very interesting idea. This author says that every e-mail you write should go through a revision process to make sure that recipients actually read it. He suggests the number of recipients should drive the number of revisions. It's very rare that I revise an e-mail before sending; in fact, it's also rare that I even proofread before sending! And maybe that's the point: If we took time to revise, perhaps we wouldn't send so many worthless e-mails!
Normally, you'd probably expect to see an article like this in the Just For Fun section, but it actually has some real implications. Most people probably don't see the connection between philosophy and development, but code often reflects the perception of the programmer to solving the particular problem. And, who knew that Descartes would have been a Java guy?
Your resume is usually the first impression you make on a hiring manager. Here are some suggestions for how to avoid making a bad first impression.
Whether you call it telecommuting or working remotely, at some point in your career you will work in a distributed organization. In this article, the important skills for a successful remote worker are explored. He emphasizes that remote communication is very difficult because of the fact that non-verbal is a significant part of communication.
Sometimes a lot of emphasis is on bad management practices. A more relevant topic, however, is to look at what makes a great manager. That's what this article is about. I think the main thing that came through to me from this list is that great managers are transparent and humane.
has released their latest quarterly
report on the state of the Internet.
Some of the interesting results are:
There are dozens of commonly used (and many more not-so-common) archive formats out there. Frequently, it is useful to move one of the more esoteric formats into a more common one so that other folks can access it. This handy tool converts from over 3 dozen types to a variety of other types, notably including ZIP, 7-Zip, CAB, and RAR formats. And if you need to do batch conversions, they also have a command-line version, as well.
Have you upgraded to Microsoft Office 2007 and the new "ribbon" interface is confusing to you? UBitMenu allows you to retain the familiar menus from previous versions of Office without completely doing away with the "ribbon" bar.
TreeSheets is a new free-form personal information manager (PIM) application. It combines lots of great features into one simple interface, including text editor/word processor, spreadsheets, mind mapper, outliner, and small database. It's strongest suit is the great integration between spreadsheet and word processing functionality. Make sure you go through the excellent tutorial on first launch to understand the power it provides. (Note: See here for information about downloading the Linux beta version.)
Safe Calculator is a portable (no install required) password/PIN keeper cleverly disguised as a fully-functional calculator. Just enter a PIN and then browse for the file to be hidden and it gets "swallowed" into the calculator file itself. Re-enter the PIN (up to 32 digits!) and retrieve your file.
PowerResizer is a utility to easily resize desktop windows, but much more. It's greatest feature is built-in window docking capability. You can dock windows to any of the screen borders or other windows and then resize them using the undocked edges, which makes organizing your windows more efficient.
Amy Editor is a free, online, collaborative text editor based on the fantastic TextEdit tool from Mac OS X. It includes support for TextEdit bundles, as well as allowing your to edit text collaboratively with others. Source code is available, so you can host it on your own site, if you like.
mRemote puts all of your various and disparate remote
connections into a single tabbed-interface application. It supports many different remote access
methods, including Windows Remote Desktop (RDP), VNC, Citrix
Xenocode is an interesting new online virtualization platform. Each of the applications runs completely within your web browser via small plugin. The initial release is focused on allowing you to run various different web browsers, including Google Chrome, Internet Explorer 6, 7, and 8, Mozilla Firefox, and Apple Safari. In addition, they have online versions of Adobe Acrobat Reader, GIMP, and even a Breakout game.
Most folks are familiar with the URL-shortening services, like TinyURL and NotLong. But what if you want an absurdly long, but still valid URL? :) Then this is the place to go! Or maybe you'd rather convert your URL into 19th century English literature (on this the 150th anniversary of Dickens' A Tale of Two Cities). (However, seriously, if you need a service to provide descriptive, however longer, URL, such as for Flickr, check out Long "R" Us.)
The UNESCO-sponsored World Digital Library features high-quality, high-resolution scans of rare and important documents from around the world. Some of the included documents are a 1491 Arabic manuscript entitled "Guide to Operations on Irrational Radicals for Neophytes" and an 18th century journal of Captain Cook's last voyage.
Telephone numbers with 555 prefix (NXX) are frequently used as fictional telephone numbers. This site lists thousands (!) of these numbers and their references from TV and movies.
Not to be outdone by the advocates of the annual Talk Like A Pirate Day, now the Bard's fans have created a holiday for those who want to speak in sonnets! Alas, ye hath missed it this year, but now you've got almost 365 days to prepare for next year!