Up to Newsletter Index

October 2009 Newsletter


Quotable Quotes


Enjoy when you can, and endure when you must.  –Johann Wolfgang von Goethe


In preparing for battle I have always found that plans are useless, but planning is indispensable.  –Dwight Eisenhower


Civility costs nothing and buys everything.  –Mary Wortley Montagu


Some of the world's greatest feats were accomplished by people not smart enough to know they were impossible.  –Doug Larson


The world we have created is a product of our thinking; it cannot be changed without changing our thinking.  –Albert Einstein


A pinch of probability is worth a pound of perhaps.  –James Thurber


The only place where success comes before work is a dictionary.  –Vidal Sassoon


Be kind, for everyone you meet is fighting a hard battle.  –Plato


Return to top


Software Development Process and Methodology

Article:  How The Theory of Constraints Can Help Software Optimization

Often, getting the functionality of an application is the “easy” part.  Optimizing and improving performance is no longer optional for most systems, but is usually quite difficult.  This interesting approach to optimization using Goldratt’s Theory of Constraints gives some fresh perspectives on how to target bottlenecks.



Article:  The Most Important Agile Practice Of All

What do you think is the most important agile practice?  Daily standup meetings?  Burndown charts?  This author says that showing respect to everyone is most important because success with agile development depends on good working relationships.  And I think it’s a good idea, even if you don’t work in an agile shop!



Article:  The Problem with Design and Implementation 

This excellent article discusses the common conundrum of when design stops (or should end) and when implementation/construction begins and how to determine the separation of activities.  While starting with some philosophical arguments the author goes on to the practical matters as they apply to real software development.



Article:  Reactions to Gartner’s Suggestion to Use an “Emergent Architecture”

Industry analysts are coalescing around a new approach for IT enterprise architecture they are calling “emergent architecture”.  (Maybe it should be called “post-modern”!)  This new approach is intended to help bridge the divide between IT and business and allow IT to be more responsive to business needs.  Likewise, others promote the concept of organic development of architecture as a result of a good, sound development process.



Article:  7 fundamentals of IT project success

Projects fail for a variety of reasons, but most of them are not technical in nature.  This author says that projects usually fail due to incorrect expectations most of which result from poor communication.  He goes on to identify seven key factors that make or break a project.



Article:  Developing a good bedside manner

One of the most difficult and unpredictable aspects of software development is debugging.  This article proposes a disciplined debugging process using the model of medical diagnosis and the scientific method.



Article:  Top Ten Things Programmers Hate About Agile

Just like any kind of change, adopting agile development techniques is likely to be met with some amount of resistance.  Here are some of the common difficulties that developers may have with agile with some suggestions for resolving them.  One of the items is opposition to doing pair programming.



Article:  The Difference Between Waterfall, Iterative Waterfall, Scrum and Lean Software Development

With all of the different new (agile) methodologies out there, how do you make heads or tails of them?  This article gives succinct, but clear explanations of some of the common methodologies.  And it even includes a great chart to help visualize the differences.



Article:  The Awesomeness Manifesto

This author proposes that innovation is a passé relic of the industrial age and it should be replaced by what he calls “awesomeness”.  He says that awesomeness is built around four core principles:  ethical production, insanely great stuff, love, and thick value.  While certainly these ideas are targeted toward startups, the same concepts can be applied to IT development in corporate environments, when people start focusing on customers.



Article:  Frequent releases change software engineering

This author suggests that the primary benefit of agile development practices is not the delivery of functionality to customers more quickly, but how it forces IT to change it’s organization to reduce risk, speed development, and improve quality.



Book Excerpts:  Bridging the Communication Gap

In the first couple of chapters of this new book, the author emphasizes that good communication is the most important factor for success in development projects.  He goes on to explain that common terminology between business and IT is how to achieve good communication and recommends “specification by example” as the most effective means of documenting requirements and one of the linchpins of test-driven development (TDD).



Article: Is Java dead?

Pundits (and just plain folks alike!) have been predicting the imminent demise of Java pretty much from it’s beginning almost 15 years ago.  This comprehensive and well-presented article takes another look at this question from a variety of angles.  The author’s conclusion is that Java is not dead, but the Java era is certainly coming to a close, but the future of the JVM seems bright.



Return to top


Software Testing & Quality

Article:  A tester’s perspective on agile projects

A software testing professional looks at the role of the test function in agile projects.  He maps out some very suggestions for early involvement of test and how testing contribute throughout the project.



Article:  How do we know if we have “Quality” software?

I suppose that the definition of quality is kind of like Justice Stewart’s definition of obscenity:  I know it when I see it.  Nevertheless, this article gives good definitions of some of the quality characteristics of applications.



Article:  Hitting the right notes in QA

New software tools for testing and QA focus on metrics and measurement, such as code coverage.  Likewise, these tools are now looking for defect patterns and the underlying cause of such problems.



Article:  World’s First Formal Machine-Checked Proof of a General-Purpose Operating System Kernel

Australian researchers have announced that a general-purpose OS microkernel known as seL4 has been certified as error free by using formal proof methods.  It is intended for use in embedded safety-critical systems.  This milestone demonstrates that verifiably bug-free code is possible (with great effort, of course!).



Article:  The importance of unit testing and functional testing

Recently, there has been an Internet debate about whether both unit testing and functional testing are necessary.  This excellent post makes a great observation about the value of each:  Unit tests measure the quality of material used to build the application.  Functional tests measure the strength of the application structure.  The overall quality of the application is dependent on both.



Return to top



Reference:  History of Communication

This beautiful graphic, available for purchase as a poster, shows the high-level advances of communication and computer technology over the past century.



Tutorial:  A Stick Figure Guide to the Advanced Encryption Standard (AES)

As applications move away from the desktop and onto the network, security has become one of the key factors in development.  This humorous, but thorough, guide to AES covers it’s history and the background of cryptography in general as well as how AES itself works.



Tutorial:  12 Tips for Better Business Writing

Like it or not, most businesses today run on information and most of that information is conveyed via the written word:  e-mail, IM, reports, etc.  Here are some great tips for improving your success at getting your point across.  My favorite tip?  Write once, check twice.



Tutorial:  SQL Antipatterns Strike Back

Want to make your databases and SQL queries more efficient and maintainable?  Check out this presentation of antipatterns to use.



Return to top


Career Development/Miscellaneous

Article:  Five fatal flaws IT leaders must address to advance

In a recent book on leadership, authors Joseph Folkman and John Zenger say that most “weaknesses” that people have do not appreciably hinder their advance.  However, they say that there are five “fatal” flaws that will:  inability to learn from mistakes, interpersonal incompetence, lack of openness to new ideas, tendency to blame others for problems, and lack of initiative.



Article:  On Hearing and Speaking the Truth

Everyone knows that all organizations at least pay lip service to “speaking the truth to power”.  This interesting article puts the question in business terms:  How can a manager make good decisions if he/she doesn’t have all the relevant information?



Opinion: The unspoken truth about managing geeks

In this essay, the author suggests that the reason technical workers (a.k.a. “geeks” or “nerds”) are often difficult to manage is because of the strong meritocracy mindset and desire to “be right” that they have.  He offers an interesting look at some of the factors that surround this.



Article:  Stanford Study Shows Maxi-Multitaskers' Performance Impaired

We frequently point out in this newsletter that multitasking simply doesn’t work.  Here’s information from another study at Stanford that confirms this further.



Article:  Five job search tips for discouraged job seekers

No one looks forward to finding a new job, especially when it goes on for a long time or if it has been quite a while since you were last looking for a new job.  Here are some tips to maintain a good attitude during a protracted job search and interviewing process.



Article:  Why Developers Get Fired

This author, speaking from experience on both sides of the table, explores three common reasons (failure to deliver results, poor communication about their work, and unfulfilled potential) that programmers get the axe and provides suggestions for how to avoid these pitfalls.



Article:  Setting And Achieving Goals The SMART Way

Most readers of this newsletter probably have at least a passing familiar with the SMART technique for writing goals.  But it never hurts to have a refresher from time to time.  This article give a succinct explanation of each of the parts.



Article:  20 Things You Might Not Know About COBOL

How many of you out there cut your programming teeth on COBOL?  Well, as COBOL turns 50, here are some interesting facts about this language that is still relevant and popular.  For example, 15% of new application functionality developed this year will be written in COBOL.



Article:  Business jargon lost in translation

The title of this article belies what it’s really about:  Speaking (and writing!) plainly in the global marketplace.  It bears repeating that there is no substitute for straightforward language and being careful with idioms that might not translate well to other readers or listeners.  Not to mention that our personal and cultural biases have a greater impact on our thinking than we realize.



Article:  Nine Hot IT Jobs in a Lukewarm Market

Like the rest of the economy, hiring in the technology sector has slowed down a lot.  According to job web site Dice.com, here are some categories where jobs are available, including virtualization, .NET, and DBAs.



Article:  Why Incompetence Spreads through Big Organizations

New computational research has found that due to the Peter Principle, organizations should abandon the common-sense approach of promoting people based on competence at their current level and instead adopt one of two other counterintuitive methods:  to promote first the most competent and then the least competent individuals or to promote individuals at random.  Both of these methods contribute to organizational chaos less than the standard method.



Video:  Dan Pink on the surprising science of motivation

Speechwriter-turned-business consultant Daniel Pink talks about how little of current management practice takes into account new information about the science behind motivation.  His presentation is a great summary of his bestselling book A Whole New Mind.



Article:  Voice mail’s time has come–to be replaced

As we mentioned back in the June 2009 issue, the drumbeat for the demise of voice mail is becoming louder.  One of the new technologies poised to help is voice transcription that converts voice mail into text messages or e-mail.



Article:  Not So Fast:  A Manifesto For Slow Communication

The author of a new book called The Tyranny of E-mail opines about how the breakneck pace of modern communication is damaging relationships.  He underlines how the frenetic speed results in lack of context for communication and that it results in distancing ourselves from others instead of bringing us closer.



Return to top


Telecommunications/Networking Industry

Article:  FCC Chairman wants network neutrality, wired and wireless

In a widely expected move, Julius Genachowski has proposed new guidelines to enforce network neutrality for both wireline and wireless services.  Comcast, which was widely seen as one of the targets of the new rules, responded quickly and Windstream said that this approach will slow rural broadband rollouts.  And here’s a collection of comments from a broad swath of both sides of the issue.



Article:  The Blurring of Layer 2 and Layer 3

This is an interesting discussion about how layer 2 (data link layer) and layer 3 (network layer) networking functionality are starting to merge.



Article:  Telco Execs: No Recovery Yet

The CEOs of Verizon and AT&T both say that they have not seen sales improve and that perhaps the telecom market is still contracting.



Return to top


Useful Utilities

Clay Database Modeling (Free – Cross-platform Java – 1.0MB)

Clay is a graphical database modeling plug-in for the Eclipse IDE.  It can generate database models by reverse engineering an existing database.  Likewise, it can generate DDL for many database platforms from the model.



.NET Reflector (Free – Windows 2000/XP/2003/Vista/7 with .NET – 1.04MB)

.NET Reflector is a handy tool for examining the internals of .NET assemblies.  Even if you don’t have the source code, you can examine the classes, member variables, and methods.  Likewise, it shows the relationships between the classes in an easily navigable way.



Storm (Free – Windows 2000/XP/2003/Vista/7 with .NET – 1.54MB)

If you do any development of web services (or applications that use/consume web services), you know that testing them without building a large harness can be difficult.  Storm allows you to exercise web services and view the responses and returned data, even services that take complex inputs.  It supports services/APIs written in most any language and even allows you to directly manipulate SOAP requests.



LoL (Free – Cross-platform with Firefox – 16kB)

If you use the Firefox web browser, you’ve probably found that it requires a lot of switching between the keyboard and the mouse.  LoL makes browsing with only the keyboard much simpler without having to completely abandon the mouse (like with Vimperator or Uzbl).



TenClips (Free – Windows XP/2003/Vista/7 – 129kB)

TenClips is a multi-clipboard utility for Windows (supports 10 clipboards) that allows you to paste text into target without any source formatting (similar to Pure Text), if desired.  It has full hotkey support and you can even define your own hotkeys for each of the clipboards and the options for pasting with or without formatting.



QuickSharp 2008 (Free – Windows XP/2003/Vista/7 with .NET – 1.77MB)

QuickSharp is an alternate IDE for C#/.NET development.  It features all of the normal features you’d expect, such as, syntax highlighting, code folding, regular expression “helper”, and Visual Studio-style docking windows, and much more, without the bloat of Visual Studio.



Return to top


Productivity Tips


View online PDF files without downloading redux

Last month, we had a tip about using Scribd to view PDFs online without downloading or having a PDF viewer.  It turns out that Google Docs makes this even easier!  Just go to http://docs.google.com/viewer and enter the URL of the PDF file (or even a Powerpoint presentation) and get a link to view the document online.  Or just paste the URL at the end of http://docs.google.com/viewer?url= to view it immediately.  (No Google Docs account is required.)


Return to top


Just For Fun

Songs in Code Database

Can you guess the names of the song that are suggested in these Twitter-sized code snippets?  Some are classics (and easy to recognize!), but I guess I’m too old to figure out most of them!  ;)



The Longest Poem in the World

Some creative folks have written an application that takes “tweets” from Twitter and arranges them as verses in an every-changing poem.  Each pair of lines even rhymes.  Not your mother’s iambic pentameter, but still pretty interesting.



The Ultimate Productivity Blog

Need a quick idea for getting more done?  Just check out this blog!  ;)  Or maybe you should just work less.



Google Easter Eggs

You probably use Google everyday and, if so, you know that the Googlers have a sense of humor.  Consider the recent UFO-themed logos.  Here are some other more subtle jokes from across the Google landscape.



The Postmodernism Generator

This fun (and funny!) online generator will produce a random abstract of a seemingly viable paper on a post-modern topic.  It even includes references to actual published philosophy papers.



Return to top