Up to Newsletter Index

October 2013 Newsletter


Quotable Quotes


If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.  –Antoine de Saint-Exupery


It’s a curious thing about our industry [software development]: not only do we not learn from our mistakes, we also don’t learn from our successes.  Keith Braithwaite


The effective programmer is keenly aware of the limited size of his own head.  Edsger W. Dijkstra


Return to top


Software Development Process and Methodology

Article:  Software Development Estimates: Where Do I Start?

Development estimation for software projects is definitely more of an art than a science (at least, at this point).  This article doesn’t claim to solve all of the intricacies involved in estimate a development effort, but it gives some principles for how to do it based on the premise that every new piece of software is a machine that has never been built before



Article:  The Myth of the Rockstar Programmer

Scott Hanselman makes an excellent observation about the myth of developers who are significantly better than the average (sometimes called “10x developers”).  He emphasizes that most projects are team efforts and organizations should focus on developing high-performing teams, by looking at the particular skills of each team member.  Of course, there are some who disagree with this view.



Article:  You Must Try, and then You Must Ask

Most of us have probably worked with someone who would give up trying to solve a technical problem without going very deep (or someone who would spend days trying to figure it out on their own).  This article suggests a good solution to these conundrums where the person spends another 15 minutes, including documenting what they’ve tried, and then must ask for help.  This helps to strike a balance between giving up too soon and spending inordinate amounts of time struggling for a solution.



Article:  Effective Metrics Use Isn’t All About the Numbers

Most managers operate primarily on metrics of some sort.  This article makes the relevant point that using metrics requires a certain level of maturity both on the part of the individuals/managers and the organization as a whole.



Article:  What makes a good engineering culture?

Organizational culture is one of the most important factors in determining productivity and success in application development.  This author explains 10 factors that he believes are key to a healthy, effective programming culture.



Article:  Software Development is More About People Than Technology

If you think about “difficult” projects that you’ve worked on, you’ll probably recognize that it wasn’t technological limitations, but interpersonal problems (so-called “soft skills”) that were the main pitfall.  This author suggests that the current “growing pains” with agile methodologies are mostly rooted in the same fundamental problem.



Article:  Writing “As a User” does not make it a user story

This article emphasizes the agile principle of “people over processes” by noting that user stories are intended to describe functionality and behavior that adds value and not to waste time on formality and preparing stories for non-value-added items.



Article:  Rethinking Agile in an office-less world

One of the interesting aspects of the agile development methodologies is that most of them came about just about the time that our world became “highly connected”.  With the ubiquitous connectivity, many development teams are now widely distributed, while quite a few of the agile principles emphasize co-location (for example, “stand-up meetings”).  This author suggests that the next wave in agile will be how to adapt it for distributed teams.



Article:  Flow in Agile Software Development: What, Why and How

Most developers are familiar with the concept of “flow”:  the situation where you are totally focused on the task at hand and code just seems to pour from your fingers.  This article looks at how to achieve flow in programming on a consistent basis by reducing distraction.



Return to top


Software Testing & Quality

Article:  Software, Design Defects Cripple Health-Care Website

While most of us probably don’t work on applications or web sites with this high of a profile, the problems with the health exchange web sites certainly show the value and importance of good design and testing in most any endeavor.



Article:  How Engineering Tools & Practices Impact Software Quality & Delivery

As humans, we use tools to give ourselves an advantage:  be more productive, simplify processes, and more.  This comprehensive report explains how develop tools and methodologies influence the quality and schedule of projects.



Article:  How Does Test Planning Differ for Manual and Automation Projects?

This excellent article gives some ideas about how the test planning process varies between manual testing efforts and automation projects.  He emphasizes that automation efforts are typically application development projects themselves and, accordingly, need to be planned as such.



Return to top



Tutorial: Android for the Busy Developer

Are you wanting to learn development for Android platform, but aren’t sure where to start?  This excellent 12-part video tutorial series takes you step-by-step through the process, including topics such as consuming external services over HTTP and local data storage.  (The course is essentially a gateway to try to get you to purchase the IntelliJ IDEA tool, but you can do the entire course using the free community edition of the platform available here.)



Reference:  65 useful Keyboard Shortcuts for Chrome

Keeping your hands on the keyboard helps your productivity.  Here are over 5 dozen keyboard shortcuts for Google Chrome browser to help speed your web browsing.



Tutorial:  Bootstrap 3 Video Tutorials

Even if you haven’t used it, you’ve likely heard about (or, at least, seen sites developed with!) the Twitter Bootstrap framework.  This excellent six-part video tutorial series teaches you how to build a responsive web design, including navigation bar and footer with the built-in grid system.



Reference:  Coding Interview Solutions Manual

If you are looking for a new job (or even if you just want to keep your skills sharp!), chances are that you’ll do some sort of coding during your interviews.  This opt-in newsletter will send you a weekly programming puzzle and solution which includes an explanation of the solution and possible alternatives.



Tutorial:  Refactor to Functional

If you are interested in moving to functional programming, but aren’t sure where to start, this article suggests transitioning by refactoring existing code from imperative to functional form.  The author gives great examples of the core functional programming principles using JavaScript.



Return to top


Career Development/Miscellaneous

Article:  40 Years of UNIX, and ‘The Scariest Thing I’ve Ever Done’

October 2013 marks the 40th anniversary of Ken Thompson and Dennis Ritchie presenting their paper about the new operating system they had created: Unix.  Ken Thompson said, “The scariest thing I’ve ever done.”



Article:  Online Time Can Hobble Brain's Important Work

As a child, you may have heard the phrase:  Idle hands are the devil’s workshop.  The grown-up equivalent is probably the mantra that you need to be doing something all the time and don’t waste any valuable time.  Contrary this conventional wisdom, brain researchers have found that “mental downtime” is important for solidifying memory from short-term into long-term memory.



Article:  Little Rules For Working Life

We all have those “rules” that we live and work by.  One of the original creators of Adobe Shockwave shares her tips for maintaining sanity on development projects, as a technical leader, and just with life in general.



Article:  10 Ways You’re Making Your Employees Less Productive

Everyone wants to be productive at their work.  However, many times productivity is diminished by factors beyond each worker’s control.  Here are some tips for how managers and the entire organization can improve productivity.



Article:  Salary Negotiation For Geeks

With real earnings stagnant over the past several years and a recent survey showing that less than half of job candidates negotiate salary, you would do well to heed these tips for effectively trying to get a little more money in your pocket when taking a new position.



Return to top


Telecommunications/Networking Industry

Article:  The U.S.'s crap infrastructure threatens the cloud

In this opinion (rant?), the author says that the political climate in the US is mostly to blame for the lack of technological advancements in telecom services and that this is preventing adoption of cloud technologies by business.



Return to top


Useful Utilities

Concord (Free – Cross-platform/JavaScript – 146kB)

Concord is a simple, web-based outlining text editor built with JavaScript.  It works just like other browser text editors, except that pressing <Tab> or <Shift>+<Tab> indents or outdents text hierarchically. 



Freelan (Free – Linux/Mac OS X/Windows XP/2003/Vista/2008/7/8 – Varies)

Freelan is a free, open-source VPN application.  It supports both peer-to-peer (direct) secure connections and traditional server-based VPN connections, as well as, hybrids of the two.  The focus of the application is on performance and security, but usability improvements are in the works.



PyCharm (Free – Windows 2000/XP/2003/Vista/2008/7/8 – 107MB)

JetBrains has just released a new version of their excellent PyCharm IDE for Python and they now have a free, open-source community edition.  It is limited to pure Python development and, therefore, doesn’t include all of the additional tooling of the commercial version, but it is still a competent and full-featured IDE.  It includes code completion, integrated debugger, support for virtualenv, integration with Git, Subversion, and other popular version control tools, and much more.



FlashFirebug (Free – Cross-platform/Mozilla Firefox – N/A)

FlashFirebug is a Firefox add-on that allows debugging of ActionScript 3 Flash content in your browser with an interface similar to Firebug.  By integrating with Firebug, Flash debugging can be done in a familiar and integrated manner along with CSS, HTML, and JavaScript.



Return to top


Just For Fun

Sci-Fi Spacecraft Size Comparison Chart

Have you ever wondered if the Enterprise from Star Trek is bigger than the Galactica craft?  Wonder no more!  This amazing chart shows the relative sizes of hundreds of space craft from the world of sci-fi.



Star Wars opening crawl in HTML and CSS

Even after more than 35 years, the opening text crawl from Star Wars is still spine-tingling.  This guy re-created the whole thing using HTML and CSS.  And he even provides a detailed tutorial on how to build it.



Super Mario Kart Clone in HTML5

Many times it’s hard to understand why some video games captivate our imaginations and take on lives of their own.  Even after 20 years, Super Mario Kart still inspires us.  Here’s a browser-playable (and still being enhanced) clone of the game written in HTML5 Canvas and JavaScript.



Return to top