August 2012 Newsletter
The ability to pay attention, to focus, to concentrate, to resist distractions, is as essential to the design process as it is to successful life generally. It is the quality of attention that distinguishes design detail, that enables an architect to design a building that belongs where it is. For attention to detail does not mean fussiness, but an appropriate locating of energies. In the end, it is something very close to grace. –Ralph Caplan, Cracking the Whip: Essays on Design and its Side Effects
I seek not to know the answers, but to understand the questions. –Kwai Chang Caine
A long habit of not thinking a thing wrong gives it the superficial appearance of being right, and raises at first a formidable outcry in defense of custom. But the tumult soon subsides. Time makes more converts than reason. –Thomas Paine
We learn more by looking for the answer to a question and not finding it than we do from learning the answer itself. –Lloyd Alexander
Programming requires, above all, a quiet, peaceful attitude toward the feeling that you don’t really know what you’re doing. –Stephen Ramsay, Learning to Program
We do not err because truth is difficult to see. It is visible at a glance. We err because this is more comfortable. –Alexander Solzhenitsyn
This article presents some strong evidence that even though the technical
advances in programming over the past 50 years have been incredible, at its
core, programming is still more art than science.
http://spin.atomicobject.com/2012/06/12/computer-programming-is-still-an-art/
In the last decade, it was outsourcing; now, the IT organization faces
the challenge of cloud providers (remember when they were called ASPs in
the 1990s?). Here are some tips from a new organization dedicated to helping IT
become a nimble competitor and partner with their business groups and sustain
their relevance in the organization.
One of the factors that makes (small "a") agile (or any
methodology for that matter!) successful is the ability to adapt and adjust for
your particular environment. This
article presents some good examples of how one organization structured their
process.
http://blog.gist.com/2012/06/26/how-we-changed-the-agile-development-process-to-work-for-gist/
As agile methods continue to mature, one of the significant transitions
is the adoption of lean principles along with agile, particularly kanban. In this free
ebook excerpt, the author examines one of five common
objections to kanban:
It takes longer.
http://www.infoq.com/articles/kanban-for-skeptics
This short article looks at the metrics question from the perspective of
how much control a project needs. The
author makes the interesting observation that the more control required by a
project is a good indicator of (proxy for) low value or return on investment of
the effort. And, therefore,
organizations should invest in low-control, high-value projects.
http://plasmasturm.org/log/valueofcontrol/
Alan Kay, pioneer
of object-oriented programming and co-creator of Smalltalk, is a larger than life
figure in the programming world. This
wide-ranging interview gives you some new insight to his genius and how he
continues to impact the development realm.
http://www.drdobbs.com/architecture-and-design/interview-with-alan-kay/240003442
This article reflects on pundit Steve Jones' (no relation) contention
that over the past 5 years, IT has focused too much on the "bright shiny
object" of technology without regard for the business value to the
detriment of emphasizing problem-solving and thinking.
http://www.infoq.com/news/2012/07/thinking-is-dead
This article eschews the common agile "marketing" terminology
(what might be called "big-A Agile") and discusses the important
principles and concepts for teams to adopt to actually implement ("little
a") agile in their organization.
http://caines.ca/blog/programming/agile-the-good-parts/
Estimation in software development is still considered by many (most?) a
black art. This two-part series offers
six specific ideas from agile methodologies to help improve the estimation
process.
http://www.writemoretests.com/2012/02/how-to-estimate-like-adult-part-1.html
This book
excerpt presents a hybrid agile framework that addresses one of the
shortcomings of most agile methodologies in that they do not deal with the
overall solution delivery process (see also patterns
of effective delivery). The article
describes it as: The Disciplined Agile Delivery (DAD) process framework is a
people-first, learning-oriented hybrid agile approach to IT solution delivery.
It has a risk-value lifecycle, is goal-driven, is scalable, and is enterprise
aware.
http://www.informit.com/articles/article.aspx?p=1912063
Poka-yoke (Japanese for "mistake-proofing") is one of the cornerstones of lean manufacturing concepts from the Toyota Production System. This article discusses how to apply this concept to software design and development, including some salient examples.
http://techie-notebook.blogspot.in/2012/07/poka-yoke-applying-mistake-proofing-to.html
This excellent article presents some ideas about developer-tester communication and how to implement an independent test function within a team as a project grows. The authors discuss many practical ideas for overcoming "fuzzy" requirements when developing and implementing tests.
http://www.adampetersen.se/articles/developmentfuel/DevelopmentFuel.htm
As an outgrowth of the development of exploratory testing, James Bach also created the concept of session-based testing. This mind map (also in list form, if you prefer!) provides a concise reference to SBTM to help you get started.
http://www.ministryoftesting.com/2012/06/session-based-test-management-the-mindmap/
Udacity has introduced a new online course in software testing presented by John Regehr. Topics include the basic elements of testing, code coverage, and various subjects in random testing.
http://www.udacity.com/overview/Course/cs258/
Most people involved with software development know that agile methodologies like Scrum require each team member to more of a jack-of-all-trades rather than a specialist. This first-person essay demonstrates just how true that is for the test analyst.
http://www.infoq.com/articles/experience-qa-scrum
Services and APIs
are becoming nearly as important as web applications themselves. This article presents some suggestions on how
to make your REST service discoverable by others via a "generic"
response to your URI.
http://www.baeldung.com/2011/11/06/restful-web-service-discoverability-part-4/
With the rise of JavaScript as both a client (browser) and server
language, chances are that you'll do some development with it in the
not-too-distant future. This article is
intended to help you understand some of the basic concepts that you'll need to
work with the various JavaScript frameworks.
http://www.codethinked.com/preparing-yourself-for-modern-javascript-development
Many Web 2.0 startups have transitioned from service provider to
"API provider" and the majority use REST web services. This comprehensive, yet very understandable,
article explains how to design and implement a good REST API for your application.
http://www.websanova.com/tutorials/web-services/how-to-design-a-rest-api-and-why-you-should
User stories are the cornerstone of Scrum and other agile
methodologies. This excellent video
tutorial from Mike Cohn
explores how to prepare good user stories and to use them for requirements on
agile projects.
http://www.requirementsmanagement.net/videos/user-stories-for-agile-requirements-2/
If you're still trying to learn Git and need a nice cheat sheet to use, check out this
reference. It provides a simple, visual
reference to the basic Git concepts and the most used commands.
http://marklodato.github.com/visual-git-guide/index-en.html
Still using the plain batch/command scripts in Windows, because you
haven't had time to learn PowerShell? Well, put those excuses aside and spend just
a little more than an hour to learn it using this video featuring PowerShell expert Don Jones (no
relation).
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/WSV321-R
New research suggests that telecommuters are judged more strictly by managers when it comes to performance reviews. This article also has some tips for both workers and managers on how to improve interactions and make the review process more consistent. Of course, there are differences of opinion on the whole matter, such as this one.
http://sloanreview.mit.edu/the-magazine/2012-summer/53407/why-showing-your-face-at-work-matters/
Good grammar is a passion of mine (some might say more like an extreme pet peeve!). Frequently, people dismiss good grammar as a "nice-to-have". This essay eloquently shows the importance of good grammar and plain language as a relates to professionalism and attention to detail.
http://blogs.hbr.org/cs/2012/07/i_wont_hire_people_who_use_poo.html
The "class warfare" nomenclature aside, this article gives an excellent explanation for the dichotomy of so many unemployed IT workers at the same time that businesses say that they can't find qualified IT employees. The bottom line is that it's simple economics: Companies want to pay less for IT workers.
http://www.cringely.com/2012/07/06/it-class-warfare-its-just-ibm/
Everyone likes to receive compliments. But not all of us are good are making our accolades specific, timely, and heart-felt. This essay talks about how to do it and make it natural.
http://www.esquire.com/print-this/how-to-compliment-1009?page=all
While you can brush up on answers to the "soft skill" questions that you are likely to get in an interview, it's often hard to anticipate the coding questions. This essay gives a good approach for handling it and, just like writing good code, it starts with outlining your design, before writing the code. And I would add that in most cases the interviewer is really just trying to verify the skills you list on your resume. So if you don't really know Java, don't list it on your resume.
http://www.etherealbits.com/2012/07/a-strategy-for-the-dreaded-interview-coding-question/
This site presents some excellent visualizations (a.k.a. infographics) about anticipated trends through 2040 in technology and innovation in a broad spectrum of domains, including AI, energy, biotech, robotics, and more. The author assesses the relative importance and consumer impact.
In this newsletter, we frequently feature tips about improving productivity and avoiding procrastination. In this interview with Frank Partnoy, author of the new book Wait: The Art and Science of Delay, he says that our drive to fill every waking moment with productive activity has detrimental effects on creativity among other things.
There are probably enough web sites and articles on the Internet about productivity for you to spend the rest of your life (and beyond) trying to avoid procrastination. This brief one has some great practical ideas. The one that I liked best is to "bill yourself" for time-wasting activities.
http://www.stentontoledo.com/blog/how-i-learned-to-stop-getting-distracted-and-love-productivity/
This author makes the interesting observation that most of the stress we experience is due to unmet expectations. Accordingly, he suggests that to reduce stress we need to re-calibrate (not necessarily lower!) our expectations into big-picture context.
http://blogs.hbr.org/bregman/2012/07/the-best-strategy-for-reducing.html
Management expert Steven Covey died this past month. On the occasion of his passing, WSJ published this brief summary of his famous Seven Habits of Highly Effective People and the time-management matrix. These principles are timeless and it helps to be reminded of them from time to time. (In some ways, I find it ironic that the day he died is the same day that Marissa Mayer became CEO of Yahoo and the number of articles about Mayer's job change far outweighed those reporting about Covey's death.)
With costs for carrier-grade wi-fi access points typically 20% of that of small-scale cellular picocells, this author suggests that industry look toward wi-fi technology for wireless WAN access.
http://gigaom.com/2012/07/10/we-already-use-wi-fi-more-than-cellular-why-not-continue-the-trend/
If you ever want to find ALL occurrences of something in Excel, but are tired of clicking "Find Next", the Multi Find add-in comes to the rescue. It displays all of the cells that meet your search criteria and allows you to go right the desired cell or to highlight all of them. Moreover, you can search for multiple different items at one time.
http://www.mightymacros.com.au/Downloads.html#mfind
HTML Shell is a free online generator for building a standards-compliant HTML boilerplate file. In has options to include populate Javascript libraries (Mootools
, jQuery, and Dojo), Google Web Fonts, external or inline CSS style sheets and more.This is a plug-in for Eclipse to supports syntax highlighting and code completion for MyBatis (formerly iBatis) XML files. It supports both iBatis 2 and MyBatis 3 configuration syntax. You can even navigate via <Ctrl>+click between your Java code and the MyBatis SQL definitions.
http://code.google.com/a/eclipselabs.org/p/mybatiseditor/
Weinre stands for WEb INspector REmote is a Node.js-based web debugger similar to Firebug, but designed to work remotely. It is mainly intended to allow debugging of web applications running on mobile devices.
http://people.apache.org/~pmuellr/weinre/
Codebank is a comprehensive hierarchical code snippet storage and management tool. It includes syntax highlighting for popular languages (C/C++, Object Pascal, Java, XML, Visual Basic, VBScript, JavaScript, CSS, HTML, PHP, Perl, Python, SQL), indexed searching with regex support, encryption of snippet database, storage in portable XML format, shortcut keys for almost all functions, and much more.
http://zeraha.org/2011/06/codebank-hierachical-source-code-snippet-database/
Collide (collaborative IDE) is a Java 7-based standalone collaborative editor designed to be used within a local network (i.e., no security, authentication, etc.). It is built on a variety of technologies, including the open-source version of Google Wave. Just launch it from the directory that you want to edit and have everyone connect via a web browser. What could be simpler?!
http://code.google.com/p/collide/
Do a "View Source" on this page in your browser. Very interesting use of steganography to embed HTML markup in a JPEG file… Or is it the other way around?!
http://lcamtuf.coredump.cx/squirrel/
With Apple's recent award of patent #8223134 for the scroll bar, perhaps this satirical application for patenting ASCII code will make it through too.
Let it never be said that geeks do not have a sense of humor. Although I haven't been able to find any Telnet implementations that include this. And this is only one of many funny RFCs.
https://tools.ietf.org/html/rfc1097
This site's tag line is "stylishly destroy the web". Basically, it provides a bookmarklet that allows you to "blow up" any web page by having it scatter the text content around the page. Don't like what you're reading? Then "fontBomb" it.