Up to Newsletter Index

January 2013 Newsletter


Quotable Quotes

If you change the way you look at things, the things you look at change.  –Wayne Dyer


Testability = Availability, operability, simplicity, consistency, decomposability, stability and understandability.  –Peter Zimmerer


Simplicity is prerequisite for reliability.  Edsger W. Dijkstra


There is a foolish corner in the brain of the wisest man.  –Aristotle


If you don’t like change, you’re going to like irrelevance even less.  –General Eric Shinseki,  Former Chief of Staff, U.S. Army


There is no exception to the rule that every rule has an exception. –James Thurber


Patience and perseverance have a magical effect before which difficulties disappear and

obstacles vanish.  –John Quincy Adams


Return to top


Software Development Process and Methodology

Article:  Should we stop using Story Points and Velocity?

This article explores a recent wave within the agile community (or, at least, among agile pundits) about abandoning use of story points and/or velocity as productivity metrics.  Most of the concern centers about the abuse and gaming of these measures.



Article:  Finding Lost Time in Software Development

This article asserts that, while estimation is a necessary part of projects, it can subtly become a problem due to Parkinson’s Law, unless there is a clear, defined, and efficient process for doing estimates.  In particular, large task estimates (i.e., work that isn’t well defined) must be avoided.



Article:  Software Engineering Best Practices from a General of the Thirty Years' War

You probably think that modern warfare and software development have little in common.  However, this article shows how the practices of the founder of modern warfare, Swedish general Gustavus Adolphus, apply to successful development efforts, as well.



Article:  All Late Projects Are the Same

Methodology expert Tom DeMarco makes an interesting observation about late projects.  He says that they aren’t late (necessarily) because of bad estimation of effort (although that may be a factor), but because they start late.  It may sound obvious, but the implications are that they started late because of such factors as insufficient business value, lack of business support, etc.



Article:  Right Way(s) of Doing and Being Agile

This article emphasizes that agile is not about following particular practices or adopting a certain philosophy, but rather about making progress.  Agile means that you are doing things that improve the situation both for the development team and your customers.



Article:  With All Content Moving Mobile, Karen McGrane Writes, The API's The Thing

Web content strategy consultant Karen McGrane says that as more web traffic moves to mobile platforms the value and importance of an API for your service increases.  Moreover, the API-centric approach has another benefit for providers in driving a services-based architecture (SOA).



Article:  Agile Planning & Estimation

This comprehensive article emphasizes that, like other agile practices, the key aspect of planning and estimation in the agile world is iteration.  The author explains four levels of planning, each of which is intended to refine the information from the previous level.



Article:  The Process Myth

I chuckle when I put this article in the newsletter, since the heading of this section includes the word “process”.  Anyway, this article does say that all process is bad, but that processes that don’t have an understood and agreed upon purpose are a drain on productivity and morale.



Video:  Agile Product Ownership in a nutshell

This video (along with transcript) gives an excellent overview of the roles and responsibilities of an agile product owner.  The video helps you to visualize the relationships between product owner and other team members very well.  (You can download the complete illustration from the video here.)



Return to top


Software Testing & Quality

Article:  Test Mercenaries

A former Google test engineer dishes about his 5+ year experience of working with development teams to improve code and product quality.  It provides a quite interesting look at the dynamics of long-term improvement efforts.



Article:  The Art of Quality

Just a few of interesting comments about what “quality” means, borrowing heavily from Pirsig’s Zen and the Art of Motorcycle Maintenance.  If you haven’t read this modern-day classic, it has a very strong philosophical examination of quality.



Article:  Solving vs. Fixing (Bugs)

This interesting (and somewhat philosophical) essay explores the subtle difference between fixing a bug (more focused on addressing the symptom) versus solving the underlying problem.  It provides a good bit of food for thought about your own personal approach to quality.



Return to top



Tutorial:  Bash One-Liners Explained - Navigating around

Most shell/command line power users will tell you that they are much more efficient at file management and associated tasks compared to using GUIs.  But, if you are just starting out with bash, this might seem laughable. This excellent article shows you to the default Emacs keyboard shortcuts to supercharge your shell sessions.



Reference:  OverAPI.com

With the recent proliferation of web service APIs, libraries, frameworks and other various resources for programming and web development, it can be difficult to keep track of documentation.  This site provides a well-organized, directory of API documentation.



Tutorial:  Effective Java Debugging with Eclipse

While most of the tips in this article are well known, this is a nice summary of some of the Eclipse functions that make debugging more efficient and productive.



Reference:  Code review guidelines

Most of know the value of code reviews from our own experiences, but they often seem tedious and in many cases are easy to skip in the crunch to get development completed.  This comprehensive guide gives tips to both reviewers and to the developer whose code is being reviewed to make the review more productive and less painful for all involved.



Tutorial:  10 things you need to know about JavaScript

This excellent article teaches you 10 concepts about JavaScript that are generally different from other languages by using examples from the language itself and from some of the popular, well-written frameworks.



Tutorial:  Functional Programming Basics: What’s It All About?

“Uncle Bob” Martin gives a very thorough overview of the philosophy and concepts of functional programming.  He emphasizes the importance of FP, especially as multi-core programming becomes more mainstream.  Of course, his approach is not without its skeptics, such Tim Bray and Cedric Otaku.



Return to top


Career Development/Miscellaneous

Video:  How Tracking 'Small Wins' Makes You Happier and More Productive

Productivity expert Theresa Amabile presents research that shows that the simple task of keeping of journal of small successes improves your productivity. 



Article:  Kernighan's lever

Using Kernighan’s warning against being too clever in writing code, this developer goes on to show how cleverness and elegance are actually part of the process of improving skills, by using them as motivation to go just a little bit beyond your zone of knowledge continuously.



Article:  Working as a Software Developer

This summary of a presentation that programmer gave to first-year students provides a good overview of some of the key principles of development, along with how practice differs from theory.  It’s a good refresher no matter where you are in your career.



Article: Fractured Work

This article makes an excellent observation that programming (and probably most any type of “knowledge work”) inherently has a very small “quantum of work” (the smallest independent bit of work that you can do without consulting outside resources—co-workers, Internet, etc.).  At the same time, he also notes that perhaps we need to look for ways to operate in a less connected manner to improve productivity.



Article:  Workplace Distractions: Here's Why You Won't Finish This Article

Distraction is nothing new, of course.  However, hyper pace of our work world and all of the “screens” that we have to deal with add to the stress.  This article looks at some of the impacts and potential solutions to the onslaught of disturbance.



Article:  Happy New Year: Pick Up a New Skill

While we often hear the cliché “You can’t teach an old dog new tricks,” the author of Guitar Zero, which chronicles his effort to learn music at age 40, says that everyone should try to learn some new skill each year, regardless of age.  He says that the biggest impediment most people face is “critical period” concept that has been drilled into most of us for our entire lives.



Article:  What If You Don't Want to Be a Manager?

What if you’ve worked hard to climb the corporate ladder and you wake up one day and decide you don’t want to be a manager any longer?  This author offers some advice that includes options within your current company and for striking out on your own.



Return to top


Telecommunications/Networking Industry

Article:  Informa Telecoms & Media identifies Top 10 trends for 2013

This analyst group predicts another difficult year for telecom service providers and also some new stumbling blocks for OTT media providers.  Both sectors will focus on increasing revenues from mobile usage, as content providers continue to focus on smartphones and tablets.



Interview:  The End of the Public Phone Network

In this interview, the head of lobbying group Voice Communication Exchange makes the case for retiring the traditional circuit-switched PSTN telephone system in the US by June 2018. 



Return to top


Useful Utilities

Convert Image to Html (Free – Windows XP/2003/Vista/2008/7 and Linux – 2.0MB)

Think of Convert Image to Html as ASCII art meets web page. It will take any image (BMP, GIF, JPG, and PNG supported) and convert it to HTML text with proper colors.  You can chose whatever text you want to use.  Likewise, it allows you to adjust the font style, font size, number of characters per line, the aspect ratio and the background color.



Visual Studio Web Essentials (Free – Windows XP/2003/Vista/2008/7/8 and Visual Studio 2010/2012 – 640kB)

This excellent Visual Studio extension adds many web design features that are missing in the base package, including zen coding, CoffeScript and LESS syntax support, Markdown preview, JSHint support, JavaScript brace auto-completion, VS “region” support for JavaScript, CSS stylesheets and HTML, and much more.  These features should be helpful to any VS user, especially since C# is on the rise as a mobile development language.  You can even write C# (using Mono framework) directly on your Android device.



Expression Web 4 (Free – Windows XP/2003/Vista/2008/7/8 – 99MB)

Microsoft has decided to focus on HTML, CSS, and JavaScript features in Visual Studio and, accordingly, is discontinuing their Expression production line.  As part of change, their Expression Web 4 web design tool is now available for free download (no registration required).  While not the most sophisticated tool, it has some nice capabilities for designing simple sites.



CarotDAV (Free – Windows XP/2003/Vista/2008/7/8 – 1.4MB)

CarotDAV is a Windows WebDAV client that has built-in support for a variety of cloud-based storage services, including Dropbox, SugarSync, SkyDrive, and Google Drive.  Since CarotDAV is a portable tool, you can connect to any of the various services without having to install the specific client.  In addition, CarotDAV supports FTP/FTPS and direct connections to Google Docs.



Suspend Tab (Free – Firefox – N/A)

If you use Firefox and frequently have many tabs open, you are likely familiar with how memory quickly gets consumed.  Suspend Tab will suspend (“unload” the content) of the tab after a user-defined amount of inactive time (30 minutes by default).  You can suspend or resume a tab on demand via the context menu.



Regexper (Free – Cross-platform online tool – N/A)

Learning and testing regular expressions can be notoriously difficult and frustrating.  The Regexper site allows you to enter any valid (JavaScript) regex and it will parse and display the meaning graphically.  It’s a really boon to understanding regexes that you find in others’ code or on the Internet.



Return to top


Just For Fun

Search “Mad Men” Style

Return to the thrilling days of yesteryear (or the 1960s!) when the IBM 360 with keypunch card storage was the state of art.  Enter your search query and watch the punch card update.  And it really does run your search on Google.




WikiGIFs is a fun little time-waster.  It randomly displays one of the animated GIFs on Wikipedia.  Hit the <Space> bar to load another one.  Or click on the link to view the Wikipedia entry that the image came from.



Richard’s guide to software development

You are probably familiar with this comic about software development.  Here’s another humorous look at the programming process.



Return to top