November 2008 Newsletter
We should be careful to get out of an experience only the wisdom that is in it—and stop there—lest we be like the cat that sits down on a hot stove-lid. She will never sit down on a hot stove-lid again, and that is well; but also she will never sit down on a cold one any more. –Mark Twain
Time is the coin of your life. It is the only coin you have, and only you can determine how it will be spent. Be careful lest you let other people spend it for you. –Carl Sandburg
The function of good software is to make the complex appear to be simple. –Grady Booch
I have no special talents. I am only passionately curious. –Albert Einstein
Well done is better than well said. –Benjamin Franklin
The secret of joy in work is contained in one word—excellence. To know how to do something well is to enjoy it. –Pearl Buck
If only there were evil people somewhere insidiously committing evil deeds, and it were necessary only to separate them from the rest of us and destroy them. But the line dividing good and evil cuts through the heart of every human being. And who is willing to destroy a piece of his own heart? –Alexander Solzhenitsyn
You don't stop laughing because you grow old. You grow old because you stop laughing. –Michael Pritchard
The vitality of thought is in adventure. Ideas won't keep. Something must be done about them. –Alfred North Whitehead
Incremental development, which generally means delivering value/features
a little bit at time, usually involves iterative development. This article explains how to do it in a more
classical development methodology.
http://www.infoq.com/news/2007/06/Incremental_SD_wo_Iterations
Despite the numerous
advances in the past 22 years since Fred Brooks published his seminal article, this author
says that there is still not a "one-size-fits-all" approach to
software development. As the agile
"revolution" has demonstrated, each organization must find what works
for them.
http://thecodist.com/article/there_is_still_no_silver_bullet_in_programming
Google developer Steve Yegge discusses some of
the practical concerns and pitfalls to watch out for when you use any type of
model or pattern in application design.
He says that "properties pattern", which defines the
characteristics of an object or application, is universal and should be the
starting point for all other modeling.
http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html
IT
and business alignment and the conflicts between IT and
business groups are frequent topics in IT circles. However, this article is different. It explores, in an understandable and
comprehensive way, the psychological differences that cause the conflicts in
the first place and offers suggestions for how to make breakthroughs on this
level.
http://plpatterns.com/post/55433565/techies-vs-the-business
This summary of a recent conference panel discussion presents the thinking
of some of the industries most respected people, including Fred Brooks himself,
about whether or not software development has advanced in the past 20 years in
terms of methodology improvement.
http://www.infoq.com/articles/No-Silver-Bullet-Summary
Defining the business value is certainly a key task in the early stages
of a project. This author also
emphasizes that your business cases needs to clearly document what success
looks like (metrics) and when the project should be cancelled/abandoned because
it is not meeting the objectives.
http://blogs.techrepublic.com.com/tech-manager/?p=616
A seasoned development manager makes the case that the difficult aspects
of development or infrastructure projects should be tackled first. His main point is that leaving the difficult
aspects to later in a project gives upper management a false sense of really
how far a project is along.
http://www.baselinemag.com/c/a/IT-Management/Do-Not-Defer-the-Difficult-in-IT-Projects/
Tim Bray, the creator of XML, says that the economic turmoil is a great
opportunity for developers to adopt agile
techniques. He isn't promoting any
specific methodology, but more the basic agile concepts, such as focusing on
quick delivery of a small number of features and frequent releases.
http://www.tbray.org/ongoing/When/200x/2008/10/12/Tough-Times-Agility
Scripting
languages are starting to go mainstream for use in
application development. Here are some
lesser-known languages that might be just the thing for your next project.
http://www.cio.com/article/454520
Most of you will recognize Strunk and White's
Elements of Style as the canonical reference for effective writing. This author applies some of the precepts to
software development, such as sticking with a design that works and sticking
with standards where possible.
http://www.codingthewheel.com/archives/programming-aphorisms-of-strunk-and-white
There are lots of articles about the "care and feeding of
developers". This one is
different. The author focuses on the
fact that the fundamental motivator for programmers is the work itself. He says that the main things that drive
developers away is working on projects that are easy,
tangential, and/or that no one will use.
http://lbrandy.com/blog/2008/10/demotivating-a-good-programmer/
With the global economic crisis, IT needs to understand some basic facts
to continue to be relevant to the business:
The CFO always gains power in tough economic times and, for IT to be an
important factor in sustaining the business, they
must know how to measure and communicate their contribution to the business.
http://www.cutter.com/research/2008/edge081007.html
This author discusses (and to some degree laments) that many developers
are required to take on the role of project manager on their development
efforts. Nevertheless, he doesn't see
this as a completely bad thing, but rather as something that developers need to
adjust to.
This author takes 10 common general proverbs and gives a unique look at
how they apply to the practice of programming.
These are insightful and provide good perspective on how software
development and IT fit into the "big picture" of business and life.
http://www.kevinwilliampang.com/post/Programming-Proverbs.aspx
This article discusses 14 typical project management mistakes. The key takeaway from this article is that
project management mistakes fall into three main categories: poor/inadequate planning, poor communication,
or ineffective resource allocation.
http://www.cio.com/article/438930/Project_Management_The_Most_Common_Mistakes_IT_Departments_Make
This is an excellent presentation that explains with great supporting
detail many of the well-known matters that increase or decrease productivity
among developers. Two of the key items
are that collaborative team "war rooms" work and working more than 40
hours per week doesn't.
http://lostgarden.com/2008/09/rules-of-productivity-presentation.html
Sadly, many organizations are faced with ailing (or failing) software
development projects. Here are some
ideas for identifying the characteristics of such
projects and for helping to bring them back from the brink.
http://www.projectsmart.co.uk/keys-to-rescuing-ailing-projects.html
Not every organization can be one of the best places to work,
but what makes for a great IT workplace?
This article might appropriately be sub-titled "The Care and
Feeding of Developers". It covers
the "soft" aspects of creating and sustaining a successful
programming culture and environment.
A number of agile development pundits offer their definitions and criteria of good test cases. Even if you don't agree with their ideas, it gives some good food for thought for how to build good tests for your applications.
http://www.infoq.com/news/2008/10/qualities_good_test
Even if your software development process isn't agile, you can still use agile techniques to define tests. And one pundit says that agile is the natural and best way to do test development.
http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1334163,00.html
This article demonstrates the value that testers can provide to a project in the requirements-gathering and design phase in pointing out how users may do things that the developer never anticipated or expected and the negative consequences that they have. The example presented is with an aircraft control system that allowed the cargo doors to be opened during flight!
http://www.sdtimes.com/link/32994
Everyone offers some panacea (or "silver bullet") for the problems of testing. This article doesn't. Instead it recommends a simple way to improve efficiency and repeatable of testing by using reusable test data.
http://www.sdtimes.com/link/32940
It is not uncommon for test automation to be undertaken without a plan. Test developers must not only be good developers, but also good testers. Here are some great and simple tips for developing good automated tests.
http://www.sdtimes.com/link/32824
The original creator of the open-source Abiword word
processing package opines that one of the core disciplines of good development,
source control (a.k.a., software configuration management) is rarely
taught. He provides a remedy to this
problem via a series of excellent, practical articles.
http://www.ericsink.com/scm/source_control.html
Pivot tables are probably one of the most powerful tools in Excel. However, learning how to create and use them
often seems to be a black art. This simple,
step-by-step tutorial with a good example takes some of the mystery out of
them.
http://wiki.ehow.com/Create-Pivot-Tables-in-Excel
This extensive tutorial explores the REST-ful
way to implement distributed systems using the Web (and web services) as your
platform.
http://www.infoq.com/articles/webber-rest-workflow
Web services and services-oriented architecture are increasing in
importance as web-based distributed applications become the norm. This article gives some good background
information on what web services are and the various protocols involved.
http://www.informit.com/articles/article.aspx?p=1245882
A good, easy-to-read font is one of the best ways to improve programming
productivity. This excellent article
reviews many available fonts and rates them on a variety of criteria. It also shows examples of each with and
without ClearType. Many
of the fonts are free and the others are relatively inexpensive ($8 - $20
each).
http://www.codeproject.com/KB/work/FontSurvey.aspx
On most projects, most of the development effort is on the front-end
(presentation layer) and business logic.
However, the back-end database is probably the single most important
aspect for performance, flexibility, extendibility, and maintainability. Here are some great articles on proper
database design.
http://woork.blogspot.com/2008/09/10-useful-articles-about-database.html
Effective writing can seem daunting, but it doesn't have to be. This article provides some tips on proving
more punch to your writing by reducing some "killer" words.
http://preciseedit.com/Article10OverusedWords/tabid/215/Default.aspx
While there is some current debate about the value of college education and what it actually prepares you to do, most people will take that path to a professional career. But, most colleges teach skills in a narrow "band" of knowledge. Here are some things that you need to know to be successful in most any line of work.
http://www.lifehack.org/articles/lifestyle/8-essential-skills-they-didnt-teach-you-in-school.html
Office politics are a fact of life in most workplaces, even though most people claim to dislike it. Here are some tips for navigating the rapids of office politics.
http://blogs.techrepublic.com.com/10things/?p=419
All organizations want to hire the best and brightest. But managing talented people is often a difficult task in and of itself. Here are some suggestions for how to approach managing these overachievers. For more on this topic, be sure to check out Philip Greenspun's classic essay.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=317362
Even with the economy sinking, salaries for COBOL programmers are on the rise. This is due to a number of factors including retirement of many experienced COBOL developers, lack of large off-shore/outsourced COBOL resources, and the fact that mainframes are still a part of the back offices of many companies and will be for the foreseeable future. [I'm kind of glad I took that COBOL class in college, now!]
http://www.infoworld.com/article/08/10/23/43FE-cobol-jobs_1.html
The always insightful (and sometimes controversial) Jeff Atwood says that to be a successful developer one needs to develop good marketing skills. Not marketing the traditional sense, but good ability at getting people to understand what you are doing and then to develop (no pun intended!) interest and excitement about it.
http://www.codinghorror.com/blog/archives/001177.html
Many organizations have bonus structures based on individual performance or meeting overall company goals. This author suggests that a better scheme is to base bonus on a single level where the individual is in the organization, so that cooperation is encouraged and the person can still have some control and observability of their contribution.
http://stevesmithblog.com/blog/incenting-behavior/
A UCLA business professor and researcher, Samuel Culbert, says that the annual ritual of performance reviews is ineffective at best and downright demotivating in most cases. He says that boss and employee approach reviews completely differently, pay is usually driven more by market factors than performance, and they are too subjective, among many problems he cites. His alternative is two-sided (boss and employee) reciprocal accountable where the boss has a real stake in the employee performance.
http://online.wsj.com/article/SB122426318874844933.html
Even though oil and gas prices have been falling steadily recently, the other aspects of the economic downturn have again put focus on the value of telecommuting. However, the key for the employee is to show the boss the business value.
http://www.wired.com/culture/culturereviews/magazine/16-10/st_essay
CNet looks back at some of the milestones in the development of the Internet from 10 different categories, ranging from the underlying technology to social media and Web 2.0 and more.
http://crave.cnet.co.uk/software/0,39029471,49299033,00.htm
This research paper shows that online gamers are older (average age of 31) than the stereotypes and that women, while only 20% of the players, actually play longer than men.
http://www3.interscience.wiley.com/cgi-bin/fulltext/121394419/HTMLSTART
Every company has the obligatory organization chart: Who reports to who, who's closest to the executives, etc. But there is a less well-known and undocumented, but equality important, element called the "culture chart": Who defines and controls the culture of the organization. This article discusses this and how you must be cognizant of it and how it factors into your success in the organization.
http://www.randsinrepose.com/archives/2008/10/12/the_culture_chart.html
Most managers of development groups are plucked from the ranks of the programmers themselves and they are often ill prepared for their new role. Here are some tips about how to make the transition from "worker bee" to manager.
http://blogs.techrepublic.com.com/career/?p=418
What types of projects are likely to make a programmer famous? Interestingly, most of the famous programmers are known for one single project and that inventing a programming language, game, or operating system is what is most likely to lead to fame.
http://grok-code.com/37/famous-programmers-from-adleman-to-zimmermann/
This author starts off by stating the obvious: You can't make people accountable. However, he goes on to outline an effective regimen to make people want to be accountable, such as by making them feel that they are important and are doing important work and by having control over their ability to succeed or fail.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=322340
Your resume is often your "first impression" for a potential employer. This article suggests some tips to "tune up" your resume, including trying to trim it down to one page and removing fluff and focusing on strong language.
http://lifehacker.com/5042344/rebuild-your-resume-with-five-simple-fixes
What are technology company executives worried about? It's not the economy, according to research into the 2007 SEC 10-K filings of the top 100 public technology companies. The #1 risk is competition and consolidation in the tech sector, cited by over 90% of companies.
http://www.informationweek.com/news/management/interviews/showArticle.jhtml?articleID=208400670
IT leaders from a variety of industries discuss five things that they always want to hear from subordinates and five things that they hope their employees never say.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=320223
Workers need to have some dedicated time to just think (not do!) and one of the primary suggestions is getting out of the office at lunch to a place of calm.
http://news.bbc.co.uk/2/hi/uk_news/magazine/7530594.stm
With all of the discussion about the "old-boys network" and boy-friendly math and science classes, perhaps the overriding reason for the shortage of women in technical fields is the simple fact that American students have free choice in selecting their careers.
http://www.boston.com/bostonglobe/ideas/articles/2008/05/18/the_freedom_to_say_no/?page=full
The Metro Ethernet Forum members are considering creating a peering exchange for carriers to allow easier traffic hand-offs between networks. Such an exchange might speed adoption of carrier Ethernet by making it easier for customers to reach locations not otherwise served by their primary carrier and reducing transit costs for services, which will be important with the growth of 10GB and 40GB Ethernet services.
http://www.lightreading.com/document.asp?doc_id=166341
Even though most telecoms aren't in as bad a position as financial firms, the economic crisis will have some impact on telecom industry, simply because telecom is highly capital intensive. Some even expect Sprint to go into default on its debt. On the upside, higher unemployment may be a boon to wireline carriers due to need to Internet access for job hunting.
http://www.businessweek.com/technology/content/oct2008/tc20081019_305088.htm
Sometimes you have a desktop shortcut that you'd like to look at in Explorer, but there's not an easy way to do that. The Open Target Folder shell extension makes it a snap. It simply adds an "Open Target Folder" option to the context (right-click) menu in Windows that will open Explorer in the containing directory.
http://www.megaleecher.net/Open_Target_Shell_Extension
QNext initially looks like universal instant messaging client (works with MSN, Yahoo, AIM, GTalk, and more), but it really is complete unified communications client. It allows you to set up a secure VPN with other QNext users (on any of the supported platforms) and do audio or video conferencing, secure file sharing, group text chat, and even remote desktop sharing. (It looks like a nice cross-platform alternative to Gbridge.)
Excelixis is an excellent remastered version of the XUbuntu Linux distribution. It runs as a live DVD or you can install it, using the included installation utility. Excelixis really shines in the development tools department, as it includes many cross-platform tools, such as Netbeans, Eclipse, Anjuta, MonoDevelop and more. In addition, it has all of the Internet, multimedia, and graphics tools you'd expect on Linux. All of this is presented with a great GUI. If you want to try it out under Windows (or your existing Linux distribution), I recommend running the live DVD under VirtualBox.
http://excelixis.wordpress.com/excelixis/
If you use the wonderful PuTTY Telnet and SSH client, check out this site for 12 great add-ons to make PuTTY work even better. These tools will make you a PuTTY power user! And if none of these tools fit the bill, check out KiTTY, a fork of PuTTY, which integrates many of these features.
http://www.thegeekstuff.com/2008/08/turbocharge-putty-with-12-powerful-add-ons-software-for-geeks-3/
In most cases, the built-in Windows Task Manager is good for managing processes. However, in some cases, you need more details. MKN TaskExplorer shows performance and memory graphs for each process, which DLLs it is using, and the threads it has launched. It even allows you to stop and resume execution of individual processes or even individual threads.
http://www.mkn-software.de/en/software/desktop/taskexplorer/
MobaXVT is a free, portable X11 server with some built-in Unix (Cygwin) utilities. If you need to access X11 services from your Windows machine, MobaXVT might be just what you are looking for. It includes simply exporting of DISPLAY from remote systems, X11-forwarding via SSH, and a tab-windowed X11 terminal (mrxvt). And best of all, this is all included in a single portable executable. The site even includes a customizer tool, so that you can add other Cygwin utilities.
http://mobaxvt.mobatek.net/en/
A geology
professor at UCLA has undertaken the effort to associate the locations in Tolkien's Middle-Earth with their
real-world counterparts. Who would have
guessed that
http://strangemaps.wordpress.com/2007/06/03/121-where-on-earth-was-middle-earth/
This short video from almost 40 years ago shows what people expected technology to look like. Some of it is certainly science fiction, but other predictions are amazingly accurate.
http://www.youtube.com/v/Y0pPfyYtiBc
On this interactive site, you can
explore some of the most famous journeys of all time, including the Lewis and
Clark expedition, the voyages of Marco Polo, Livingstone's travels in
http://awesome.goodmagazine.com/features/011/Wanderlust/
Got an annoying song stuck in your head? Then bop over to Maim That Tune. They'll play you another annoying song so that you can forget about the original one! :)
http://prettypictures.com/maim/
This is an intriguing story about
how software piracy during the 1980s caused the failure of a
http://www.damninteresting.com/?p=829
Morals and ethics form the foundation not only of ourselves, but of our society in general. You can take this morality quiz and help the researchers collect additional data on this topic, which is so relevant in this time of financial turmoil and in choosing new leaders for our country.