Up to Newsletter Index

October 2011 Newsletter


Quotable Quotes


The possession of power unavoidably spoils the free use of reason.  –Immanuel Kant


The art of resting the mind and the power of dismissing from it all care and worry is probably one of the secrets of our great men and women.  –J.A. Hadfield


Object-oriented programming makes code understandable by encapsulating moving parts. Functional programming makes code understandable by minimizing moving parts.  Michael Feathers


A good laugh overcomes more difficulties and dissipates more dark clouds than any other one thing.  –Laura Ingalls Wilder


Right action is better than knowledge; but in order to do what is right, we must know what is right.  Carolus Magnus (a.k.a. Charlemagne)


No man is rich enough to buy back his past.  –Oscar Wilde


Let him who would enjoy a good future waste none of his present.  –Roger Babson


Return to top


Software Development Process and Methodology

Article:  Agile: The good, the bad and the ugly.

Anytime that you approach some work, you need to consider both the benefits and the costs.  This excellent, brief article looks at some of the upsides and possible difficulties with adoption (small "a") agile.



Article:  33 Lessons for Software Industry Novices

Everyone is "new" at some point in his/her career.  While this article indicates that it's for "newbies", it really has some good advice for everyone who works in programming or other technology disciplines.



Article:  Organizational Culture and Agile: Does it fit?

One of the often overlooked aspects of implementing agile (or any significant methodology or process change) is the organizational culture.  This interview emphasizes that culture change will be part of your implementation, whether your plan for it or not.



Article:  About Requirements Management

Many agile teams struggle with getting the content of user stories correct, without getting too much or too little detail.  This article gives some brief, simple tips on how to effectively clean up your user stories so that they contain good requirements.



Article:  Earth to developers: Grow up!

This author pleads with technology workers to take a break from the endless "religious wars" (think Emacs versus Vim or Java versus .NET) and eschew dogmatic thinking.  He proposes a so-called Maturity Manifesto where programmers take the high road on these petty differences to better serve their customers.



Article:  Ten Mistakes That Software Team Leads Make

The "team leader" role is often the first foray that developers make into the realm of supervision and management.  As such, this article points out some of the common pitfalls and gives some suggestions for how to navigate the waters.



Article:  7 Agile Sins

While not quite bad as the real 7 deadly sins, these traps and pitfalls can really derail your agile practices.  One of the points from this list that I really liked is the idea that your daily scrum meeting/stand-up should be a mini sprint planning session.



Return to top


Software Testing & Quality

Article:  Tips for Writing Test Cases

Perhaps the most important task in software testing is the creation of a good set of test cases.  Even testers with many years of experience will find some great tips in this article for improving the process of writing test cases.



Article:  Things I Have Learned About Software Testing

Many folks, especially developers, have a naïve understanding about software testing.  In this "confession", the author outlines some of the key aspects of testing and its integral importance in the development process.



Article:  Testing is a Whole Team Activity

This article provides an elegant explanation of the agile principle that the entire team has ownership of and responsibility for testing and the quality of the application.  The author mainly tries the bridge the gap that testers and developers belong to separate disciplines.



Article:  How to Improve Communication Between QA and Development

Communication between individuals and groups in literally the life-blood of a project.  This is especially important when it comes to communication between develops and testers.  This article explores the differences in approach and thinking between these groups and how to bridge these disparities.



Article:  Size is the best predictor of code quality

This article cites research which demonstrates what should be second nature to most folks with any experience in large-scale development:  Larger code bases typically have more defects.  However, it's unknown what the relationship is between code size and number of defects.



Return to top



Tutorial:  Learn Vim Progressively

Even if you don't use Vim as your standard editor (and the Vim versus Emacs debate aside), knowing Vim (or Vi) is a useful skill, especially since they are ubiquitous and cross-platform.  This tutorial provides a 4-step framework for learning Vim: Survive; Feel comfortable; Feel Better, Stronger, Faster; and Use vim superpowers.



Reference:  10 Immutable Laws of Security

Application security should be at the top of every developer and tester's list of priorities.  Here are 10 basic rules that you should always consider with it comes to developing a secure program or web application.



Tutorial:  Better Programming through Functional Programming

Dean Wampler, author of Programming Scala, gives a simple, yet comprehensive of the principles of functional programming.  He focuses on how applying FP principles to your existing practices can improve your code without transitioning entirely to FP.



Tutorial/Reference:  SSH Everything

Want to set up port forwarding on your home router, so you can connect from the office?  Or maybe you need for X Windows graphics from a Linux server to your Windows machine.  This tutorial shows you this and much more and includes some great diagrams to explain the whole set up.



Tutorial:  What's A Closure?

Closures are one of the core concepts of functional programming (FP), but are often a stumbling block for FP beginners.  This multi-part interactive tutorial gently teaches you the concept using Javascript.



Return to top


Career Development/Miscellaneous

Article:  Creative Thinkering: 9 Easy Ways to Create Ideas

T.S. Eliot said, "Good poets borrow, great poets steal." (or maybe not quite).  Anyway, the point is that much of what is "new" is a mashup or recasting of something that already exists.  This article explains the SCAMPER (a mnemonic) method to explore how you can extend, improve, or reuse an existing idea or product.



Article:  Appraisals and Agile Don't Play Nicely

This article suggests that performance reviews be re-cast in the model of agile, where an employee receives timely feedback on performance on a frequent basis.  Wow!  What a concept?!



Article:  Working Remotely

This author looks at remote workers and distributed teams from both the perspective of being a remote employee and from the angle of working with remote people.  Not surprisingly, his main point is that intentional communication by the entire time (those in the central location and the remote folks) and use of formal communication channels is the key to success.  He also notes that distributed teams are only going to increase in the future.



Article:  Do Happier People Work Harder?

New research indicates that it makes economic sense for employers create an environment where employees not just survive, but actually thrive.  This article suggests some simple things that managers can do to increase worker happiness.



Article:  Why Your Passion for Work Could Ruin Your Career

"Employee engagement" is certainly one of the HR watchwords of the 21st century.  But, in this counterintuitive result, researchers have found that some employees' emotional attachment to work (called "obsessive passion") is not adaptable and can actually be detrimental in the long run, often leading to burnout.



Article:  Boost your productivity: Cripple your technology

Most readers of this newsletter probably don't want to be considered Luddites, but many probably also get easily distracted with all of the technology and gadgets in our lives.  This article gives some good practical advice on beating distraction and procrastination by making it harder to use some of the technology.



Article:  Your employees: Working from home or “working” from home?

Some interesting results from a new survey about telecommuting, including that 1/6 of respondents actually admit to working less than an hour a day when working from home.  Also, almost 1/3 get distracted by household chores.



Article:  Workers More Honest When Someone is Watching

Recently, we featured an article about the cognitive overhead of open work spaces.  This article, summarizing the findings of a recent survey, says that open work areas not only enhance collaboration, but also increases ethical behavior.



Article:  Value of a Good Manager? People Leave Managers Not Companies!

According to a survey, 1 in 6 workers said that their manager or supervisor was the most disliked aspect of their job.  This article explores the key questions that both employees and managers should ask themselves about the worker-manager interaction to have a good relationship.  Perhaps this is part of the reason that IT manager was named the most hated job in America.



Return to top


Useful Utilities

Literate Eclipse Programming (Free – Cross-platform/Eclipse – 4.0 MB)

Literate Eclipse Programming (LEP) is an Eclipse plugin that helps you write well-structured and documented source code in the style of Knuth's literate programming (remember that source code is meant for reading by people!).  It includes features such as PDF/LaTex export supports C/C++ and Java programming languages.



Web Pinner (Free – Windows 7 – 175kB)

This handy add-on for Windows 7 allows you to add your favorite web sites (such as, this newsletter!) to the Windows 7 desktop context (right-click) menu.  You can choose which browser to open the shortcut with and even use the site's favorite icon to quickly identify it.



ls++ (Free – Linux/Cygwin – 100kB)

ls++ is nicknamed "ls on steroids" and it really meets those expectations.  It has excellent layout of file listings and provides customized color-coding of output.



ClickTo (Free Windows XP/2003/Vista/2008/7 – 3.2 MB)

ClickTo is a productivity enhancement that allows you quickly perform actions when copying objects to the clipboard.  You can specify a target for the object, such as a document, e-mail, or web browser, or even "program" ClickTo to automatically perform specific actions based on the type of item selected.



Micro Cloud Foundry (Free – Cross-platform/VMware Player – Varies)

VMware's Micro Cloud Foundry toolkit allows developers or testers to run an instance of their standard Cloud Foundry product on their local workstation to run and build cloud applications locally without having to configure middleware, and scale and deploy their applications wherever they want without modifying code.  The platform supports Spring, Rails, Node.js, Grails, and Scala application platforms and MongoDB, MySQL, and Redis databases.



Return to top


Just For Fun

Epigrams on Programming

Here are some pithy (and mostly punny) axioms about programming that you'll probably find enjoyable.



The Force of Typography

Check out these cool renderings of the faces of Star Wars characters using typographical fonts only.  The subtlety of how fonts can be used in this way is amazing.



Monsters of Grok

What if, instead of making T-shirts for rock bands, we made them for some of history's greatest thinkers.  Perhaps they'd look like this. 



Computers on TV and in Movies

Here's a light-hearted look at how the computer (and technology, in general) has been portrayed over the past 50+ years on TV and in movies.



Return to top