Up to Newsletter Index

December 2010 Newsletter


Quotable Quotes


It is a characteristic of wisdom not to do desperate things.  –Henry David Thoreau


How we spend our days is, of course, how we spend our lives.  –Annie Dillard


Confusion of goals and perfection of means seems, in my opinion, to characterize our age.  –Albert Einstein


If you keep proving stuff that others have done, getting confidence, increasing the complexities of your solutions—for the fun of it—then one day you'll turn around and discover that nobody actually did that one! And that's the way to become a computer scientist.  –Richard Feynman


Practical application is found by not looking for it, and one can say that the whole progress of civilization rests on that principle.  Jacques Hadamard


Effective leadership is putting first things first. Effective management is discipline, carrying it out.  –Stephen Covey


The successful person makes a habit of doing what the failing person doesn't like to do.  –Thomas Edison


Return to top


Software Development Process and Methodology

Article:  Agile programming 10 years on: Did it deliver?

The Agile Manifesto was introduced almost 10 years ago.  This article gives a retrospective of the evolution of agile of the past decade and whether or not it has actually improved the practice of software development.



Article:  Interview and Book Excerpt: George Fairbanks’ Just Enough Software Architecture

George Fairbanks talks about his new book and his views on software architecture.  He strongly discourages big design up front and favors an iterative, risk-based approach to defining architecture and making the architecture practical.



Article:  The Problem with Working Overtime

Most technology professionals are familiar with Brook's Law:  Adding people to a late project makes it later.  This article discusses the typical alternative to adding people to a project:  Working lots of overtime.  The author emphasizes that overtime is ineffective at helping a project that's behind schedule.



Article:  10 questions to ask at the start of your project

Agile development methodologies don't give much guidance about how to start a project.  Here are some things to consider when kicking off a new project.



Article:  Why IT Transformations Fail

Many organizations undertake IT transformation projects, often with limited or little success.  This consultant says that the main reasons for failure are lack of a common shared vision, poor communication which leads to passive resistance, bad metrics to measure progress, and not gathering the low-hanging fruit first.



Article:  Four Decades of Software Engineering:  Are Changes Coming?

In looking at the "revolutions" in software development over the past 40 years, this author believes that visual development tools and languages for end-user programming is the next wave.  Fundamentally, the new path needs to be about making the use of technology seamless.



Article:  Patterns for Splitting User Stories

Sometimes your user stories on a project can get so large that they are unwieldy and certainly can't fit within one iteration/sprint.  How do you decide when and how to split these stories?  This author suggests following the INVEST/SMART approach.



Article:  Demystifying agile - Top 7 myths

Just like anything that you aren't familiar with, there are always some myths and half-truths about agile that need to be dispelled.  This author focuses on some of the legends that managers are likely to get taken in by.



Article:  What is a good software architecture in a nutshell?

Software architecture is almost always a touchy subject with developers.  This author suggests that the most important aspects of software architecture are making it relevant and focusing on separation of concerns to isolate impacts of changes.



Return to top


Software Testing & Quality

Article:  Communicating errors

As a user of an application, one of the aspects that has the most influence on whether your love or hate the system is around how error conditions are communicated.  Even if you have the easiest system in the world to use, but mess up on the error messages, you are likely to get some bad feedback from users.  This article suggest six principles for good error communication:



Article:  Seven key ideas of real quality assurance

One of the key elements of quality assurance (QA) is to recognize that it goes well beyond mere testing and that QA is more about process.  This article explores the principles about developing a quality mindset throughout the development process.



Article:  Developers, Don’t Write Functional Tests!

This author makes a strong argument for maintaining the separation and independence of the testing team from development, especially as it relates to the recent common practice of blurring unit tests into functional tests.  He says that independent testing is invaluable because developers rarely can accurately see the end-user perspective.



Article:  The Future of Testing

This author says that as a result of the quicker cycle times of agile development, the future of testing is test automation.  The upshot of this is that testers need to expand their skill sets to include strong programming expertise.



Return to top



Tutorial:  Crypto Primer: Understanding encryption, public/private key, signatures and certificates

This article is an excellent, detailed (but not too technical) explanation of the basic principles behind public- and private-key cryptography.  The author not only provides great explanations, but uses diagrams and examples effectively.



Tutorial:  Java Unit Testing

This comprehensive set of tutorials for JUnit covers everything from setting up JUnit, to the types of unit tests to using mock objects to using JUnit for test-driven development (TDD).  The author explains everything in good detail and uses examples for each concept.



Tutorial:  Information Architecture 101: Techniques and Best Practices

Even if you aren't a hard-core GUI designer or graphic artist, everyone can benefit from having a little understanding about how to effectively structure the UI of an application based on the audience and how it will be used.



Reference:  5 things you didn't know about multithreaded programming in Java

Java provides substantial support for multithreaded programming, but since the paradigm is quite different than traditional programming, many developers haven't taken the time to fully understand how it works.  This article provides five relevant tips about getting the most out of this tool.



Return to top


Career Development/Miscellaneous

Article:  IT spending looking up for 2011

Goldman Sachs expects IT spending to increase by ~10% in 2011.  While this might not translate directly into higher salaries or IT employment, it's still some good news about the IT milieu. 



Article:  An Ideal Programmer

This author considers the combination of technical and "soft" skills that an ideal developer should have.  Do you agree with the list?  What would you add or take away?



Article:  Seven reasons we need managers, not leaders

In this newsletter, I frequently point out the differences between managers and leaders and their complementary nature.  In this article, pundit John McKee says that to dig ourselves out of the current economic crisis we need more managers instead of more leaders.  It's an interesting perspective, since we frequently see handling crises as the domain of leaders.



Article:  Notetaking as a way to stay smart

No matter how intelligent you think you are, you simply can't remember everything.  Many of the greatest thinkers in history took notes on even the most mundane things as a way remember and reinforce ideas.  Here are some great tips on how to use notetaking as a way to keep your edge.



Article:  How to Answer the ‘Tell Me About Yourself’ Interview Question

The start of most job interviews is awkward and the interview will usually try to break the ice with "Tell me about yourself…"  This is your chance to get the interview off to a good start by highlighting your strengths.  And you might even want to have your response rehearsed.



Article:  Five tips for avoiding false efficiencies

Sometimes we can easily fall into traps around efficiency and productivity that are actually counterproductive, such as multi-tasking.  Here are five suggestions to evaluate your productivity routine.



Article:  Diagrams that changed the world

It's said that a picture paints a thousand words (but why can't I paint you J) and we all know that a good chart or other visualization is invaluable in communicating a point.  To celebrate a new BBC series called The Beauty of Diagrams, here are some of the most effective and ubiquitous diagrams from history.  The obvious point is that simplicity matters whether its words or illustrations that are conveying the message.



Article:  Why Doesn't Anyone Pay Attention Anymore?

Recently, a couple of articles have noted how distraction has become a "natural" part of growing up and that very few people take time to ponder the big questions in life.  This author suggests that after only 15 years into the digital age, it might be too soon to draw conclusions about how people are learning to adapt to these changes, especially around the impacts to the traditional educational process.



Article:  Developing Your Resume

Even if you aren't actively looking for a new job, it's always a good idea to keep your resume up to date (but don't rely on it completely!).  Here's a nifty tip to keep your resume in Markdown, which you can easily transform to HTML or almost any other format, and posted on GitHub so it gets indexed by search engines.



Article:  And the Job Goes to... the Candidate With the Right Keywords

Just like technology pervades every other area of our lives, it's also front and center when it comes to looking for a job.  Even if you submit a résumé in writing, it's likely that it'll be scanned into a computer system.  This article gives you some tips on getting your résumé over the electronic filtering hurdles.



Return to top


Telecommunications/Networking Industry

Article:  The Problem That Keeps the FCC Chairman Up at Night

With the net neutrality debate in full swing, Julius Genakowski says that the problem that worries him more is that the US is not first in broadband Internet access.



Return to top


Useful Utilities

7sDoc (Free – Windows 2000/XP/2003/Vista/2008/7 – 1.1MB)

7sDoc allows you to search documents on your PC by textual content.  A couple of nice features compared to most desktop tools is that it displays the search results like web search engines do with the found results in context and a hyperlink to the result.  Also, it allows you to customize the file types (by extension) that are indexed, so you don't have to bother with indexing file types that you aren't interested in.



dnGREP (Free – Windows 2000/XP/2003/Vista/2008/7 and .NET 4.0 – 2.1MB)

dnGREP is an excellent grep tool for Windows that includes some great extras like using regex in file names to be searched, search and replace, ability to launch your preferred text editor from the search results and display of matches in context in a viewing window.  It also features ability to test your regex on sample data and bookmarks of results.



Endeavour Application Lifecycle Management (Free – Java 2 EE – 121MB)

Endeavour ALM is an enterprise software development project management tool for agile development.  It has support for use cases, iterations, project plan, change requests, defect tracking, test cases, test plans, tasks, document management, reports and many other process artifacts.  It runs completely in browser on client machines and is hosted on most any Java 2 EE platform, such as Tomcat.



DisplayFusion (Free – Windows 2000/XP/2003/Vista/2008/7 x86/x64 – 1.34MB)

Systems with two (or even more!) monitors are now commonplace.  DisplayFusion makes working with multi-monitor displays easier.  Some features include extending the Windows Taskbar across all displays, hotkeys for moving windows, snapping windows to edge of any display, moving maximized windows between displays, and much more.



Return to top


Productivity Tips

Run Windows kernel in RAM to improve performance

By default, Windows is configured to allow the kernel to be swapped to disk paging file.  To improve performance, you can tell Windows to always run the kernel in RAM.  To do so, open the Registry Editor (Start | Run | regedit) and navigate to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management registry folder.  Locate the DisablePagingExecutive DWORD key and change its value from 0 to 1.  Close the Registry Editor and restart Windows for the change to take effect.


Return to top


Just For Fun

Google Latin Translator

The latest addition to Google's line of languages that it can translate to/from is Latin.  Personally, I'm waiting for them to support Klingon or maybe another made-up language.



Hallelujah Chorus from Handel’s “Messiah” @ Macy’s

Most people are familiar with flash mobs.  Well, this one should really put you in the Christmas spirit!  Over 650 members of Philadelphia Opera with other singers "spontaneously" break into the Hallelujah Chorus in Macy's department store.



Rare Star Trek: The Next Generation Photos

It's hard (for me anyway!) to believe that ST:TNG is almost a quarter-century old now.  Here are some rare pictures from behind the scenes of producing the series.



The 2010 InfoWorld Geek IQ Test

The folks at InfoWorld return with their annual quiz to measure your geekiness.



Addicted to Cheese? Here’s Why

Some of you may remember the short Saturday morning PSA about healthy snacking called "Hanker for a Hunk of Cheese" (from the series Time For Timer).  Well, if you have really strong cravings for cheese, it might be because it (along with other dairy products) contains a bit of morphine.  Who knew?



The Bug Count Also Rises

This is a funny short, short story about bug fixing in the prose style of Hemingway.



Budget Puzzle: You Fix the Budget

By now, most people know that the U.S. Congress is incapable of fixing the budget deficit, let alone the national debt.  So this interactive site lets you try your hand at balancing the budget.



Return to top