November 2011 Newsletter
Any idiot can face a crisis—it's day to day living that wears you out. –Anton Chekhov
A good engineer thinks in reverse and asks himself about the stylistic consequences of the components and systems he proposes. –Helmut Jahn
Errors using inadequate data are much less than those using no data at all. –Charles Babbage
Only drug dealers and software companies call their customers ‘users’. –Edward Tufte
Inside my empty bottle I was constructing a lighthouse while all the others were making ships. –Charles Simic
If you do not hope, you will not find what is beyond your hopes. –Clement of Alexandria
The year 2000 was essentially the point at which it became cheaper to collect information than to understand it. –Freeman Dyson
How we think shows through in how we act. Attitudes are mirrors of the mind. They reflect thinking. –David Joseph Schwartz
Most people recognize that any software methodology is only as good as the
people involved in implementing it and executing on a day-to-day basis. This article looks at some of the traps we
can get lulled into with Scrum.
http://www.writemoretests.com/2011/09/agile-scrum-delivering-broken-software.html
A programmer looks at what causes developers to rush and, accordingly,
write bloated, sloppy code. And, of
course, he offers some suggestions for combating this problem, too. And, interestingly, I think that rushing is
often a cause of getting stuck.
http://blog.activelylazy.co.uk/2011/02/09/if-i-had-more-time-i-would-have-written-less-code/
This pundit, whose prognostications seem to be in line with others', such
as Gartner
and Forrester
Research, predict that in just 3 short years, the IT organization will have
fewer employees and more consultants and the focus will be on software,
mobility, and cloud/SAAS.
http://www.techrepublic.com/blog/hiner/what-the-it-department-will-look-like-in-2015/9306
Everyone knows that estimation
is fraught with peril. In this
overview article, some agile pundits discuss whether or not user story
estimation is worthwhile. To some
degree, I wonder if this is a subtle admission that we simply don't know how to
do estimation.
http://www.infoq.com/news/2011/10/Time_to_Stop_Estimating_Stories
This author suggests that internal conflict within IT about whether to
use agile methodologies versus traditional methodologies isn't useful, because
it ignores the needs of the business. He
suggests the popular concept of a hybrid solution and emphasizes that IT needs
to focus on versatility instead of particular methodologies.
http://www.infoworld.com/t/agile-development/end-the-holy-war-over-agile-development-177022
This author suggests that the demand by business customers for mobile
applications will be a key driver behind adoption of agile development
methodologies. In particular, he notes
that cafeteria-style selection of particular techniques by teams will be
important.
http://www.informationweek.com/news/global-cio/interviews/231900280
This article presents an interesting look at the application of Goldratt's Theory of
Constraints to programming. The
discussion focuses on how to identify and remove bottlenecks in the development
process.
http://agile.dzone.com/articles/goal-software-development
While the title of this article was likely to be intentionally incendiary
(and it met
its mark!), the author makes some valid points about adjusting our
processes to better fit the processes and "customs" of the
business. Others have weighed in on their
suggestions for fixing the development process, as well.
http://blogs.forrester.com/mike_gualtieri/11-10-12-agile_software_is_a_cop_out_heres_whats_next
This article provides a good discussion on the fact that successful testing involves a combination of both automated and manual testing. Likewise, it emphasizes that even with automation, the cognitive abilities of people are still the key aspect of developing a good testing approach.
http://thesocialtester.posterous.com/please-replace-me-let-me-go
In this article, the author talks about how she developed (and maintains!) a passion for testing and how that helps her work collaboratively with developers and other team members. It's a great story about how to love your job.
http://www.passionatetester.com/2009/11/harmony-is-beauty.html
While this article is targeted mainly toward developer testing, it really gives a good overview of the importance of a layered approach to testing. Likewise, it provides a very usable framework for structuring your tests.
http://jakegoulding.com/blog/2011/10/10/learned-about-testing-last-year/
This article presents an approachable and straightforward explanation about how code reviews (I know… Everyone hates them!) are better at finding defects than testing. The author emphasizes that from a practical standpoint you have to balance cost with effectiveness of bug detection and removal.
http://kev.inburke.com/kevin/the-best-ways-to-find-bugs-in-your-code/
It seems obvious that tests are only as good as the test cases and scenarios. But have you ever thought about the definition of a good test case? This article provides some ideas for what you should include.
http://www.stagsoftware.com/blog/?p=520
Everyone wants to improve
their skills and our current economic environment makes lifelong learning
imperative. Here are some great tips on
how to advance and hone your programming skills.
http://www.antoarts.com/10-ways-to-improve-your-programming-skills/
Structure
and Interpretation of Computer Programs (SICP) is a well-known book on
introductory computer science using the LISP
dialect known as Scheme. This version is modified to use Clojure, a JVM
language that is closely akin to LISP, which allows you to right programs in
functional style, but run them anywhere that Java can run.
This brief video tutorial, with a comprehensive set of accompanying
slides, provides an excellent explanation of some of the key elements of
creating/implementing a REST API for your application or product. And don't forget to pay attention to the service
end points!
http://blog.apigee.com/detail/restful_api_design/
While the HTML5 standard hasn't been approved yet, it's already widely
used. This brief (85 pages) online book
gives a good overview of the changes and includes chapters on the new rich
media support and on updates to forms support.
http://html5forwebdesigners.com/
In my opinion, Internet search has done more for improving software
development than almost anything else.
You can almost always find an answer to even the most esoteric
questions, if you look hard enough. This
site allows you to search online programming language documentation from many
sources and it neatly organizes the results.
Typically, the results include the full text of the documentation, so
you don't even have to click over to another site. And another nice feature is the home page
includes random little tips, so you're bound to learn something on every visit.
Like me, this person tried electronic means of managing tasks and to-do lists and wound up going back to plain on old paper and pen/pencil. He offers some good practical tips for using them in an unobtrusive way.
https://www.waterflowon.com/blog?category=1&article=43
As a loquacious person, this article really resonated with me. The author makes a strong point that sometimes, as technologists, our effort to explain things precisely and in much detail is exactly what causes us to miss getting the message to our counterparts in the business.
http://www.computerworld.com/s/article/358993/When_Techies_Speak_the_Devil_s_in_the_Details
This article really struck a chord with me and I think it will with many knowledge workers. This technology manager gets straight to the point about how to ensure your employees don't get boredom burn out. Interestingly, he notes that top performers are more likely to quit over boredom. And, certainly, they are likely to have more opportunities which further increases this risk.
http://www.randsinrepose.com/archives/2011/07/12/bored_people_quit.html
According to a new poll, workplace incivility is on the rise and it destroys trust. Trust and accountability are linchpins of agile development. Here are some reasons that your colleagues may not trust you as much as you think. Maybe we all need a "civility makeover" to some degree?
http://www.techrepublic.com/blog/career/seven-reasons-your-coworkers-dont-trust-you/3556
According to a new report, even though the technology sector continued to shed jobs in 2010, the rate was half that of 2009, with a net decline of 115200 jobs or about 2%. Communications sector led the way in job loss with 72100 jobs and only software sector gained a modest 22800. Colorado ranks third in the portion of technology workers.
http://www.eweek.com/c/a/Midmarket/Job-Losses-in-Tech-Industry-Decline-in-2010-Report-104461/
My personal experience is that technology workers have a tendency toward perfectionism. This article, based on the content of The Perfectionist's Handbook, shows how perfectionism can actually be detrimental to your career.
Gartner predicts that spending next year will grow 3.9% from 2011. This is down from their expected growth rate of 6.9% in 2011. While $74 billion was spent on public cloud services in 2010 (3% of IT spending), they expect growth in this area to be 5 times that overall growth.
Most readers of this newsletter probably consider themselves above average intelligence. In this article, Jonah Lehrer discusses the work of Nobel laureate Daniel Kahneman on how easily we fool ourselves by following intuition. Maybe this is why it's so easy to just "Google it".
http://online.wsj.com/article/SB10001424052970203633104576625071820638808.html
Recently, a web site called Spent, which challenges you to see if you can live on $9 per day, which is what many folks in poverty must do every day, has been making the rounds. And doubtless you've heard about this little Occupy Wall Street thing. This guy takes a practical approach to living frugally and shows how to do it. Who knows? Even as a programmer, maybe you can retire in 10 years!
http://earlyretirementextreme.com/how-i-live-on-7000-per-year.html
Malcolm Gladwell provides some insight into how technological superiority can often be overshadowed by aesthetic design and marketing and that technology is not the overall objective. But he goes well below the surface of the legendary story to show how Apple fundamentally extended the concepts that it learned from Xerox PARC to really create something new.
http://www.newyorker.com/reporting/2011/05/16/110516fa_fact_gladwell
New research based on 2010 US Census data shows that even prior to the recent recession, new businesses have started up with fewer employees and stayed smaller. Overall, the data show that new companies started in 2009 will add one million fewer jobs over the next decade than historical averages. (See also Steve Denning's blog for more about this shift.)
While the presentation is a bit rambling and somewhat tentative, the presenter makes a very good case for why we as technology workers must stop trolling and anonymously bashing others online and instead engage in productive, one-on-one dialog about our differences.
http://jsconf.eu/2011/an_end_to_negativity.html
FCC chairman Julius Genakowski has outlined a proposal to revamp the USF/ICC programs which is intended to extend availability of mobile broadband to currently underserved regions of US, especially rural areas.
http://www.eweek.com/c/a/Mobile-and-Wireless/FCC-Unveils-Connect-America-Fund-845265/
If you use Eclipse for development, you probably know how frustrating it can be to simply adjust the font size in the editor windows. This Eclipse plug-in adds a couple of toolbar buttons with associated keyboard shortcuts for increasing and decreasing the font size.
http://code.google.com/p/eclipse-fonts/
Have you ever wanted to save a map from Google Maps or Microsoft Virtual Earth (a.k.a., Bing Maps), but couldn't figure out how to do it? Map Puzzle comes to the rescue. Just specify the map coordinates (latitude/longitude), zoom level (scale), and map size and it will save your map. You can choose the type of map (satellite view, map, hybrid, etc.) and save the map in BMP, JPG, or PNG format. It even supports selection of map size based on paper size.
http://www.evilghozt.se/mappuzzle/
LucidChart is a free online diagramming tool, similar to Visio. It allows collaborative editing of diagrams, such as, flowcharts, network diagrams, mind maps, organizational charts, and even web site or application screen mockups.
One of the more frustrating changes made to Windows over the past few years was the removal of the advanced file search capabilities. If you are looking for a replacement that doesn't require creation of large indexes, check out Dyngrep. Some of the unique features are ability to search for text strings or regular expressions, preview of search results showing the found items in context, and searching in Microsoft Office documents and PDF files. You can even create your own "formatters" to "teach" Dyngrep to ignore headers or other content in particular file types.
http://www.esaro.se/index2.php?start=ugrepw.php
Despite the name, this tool isn't for assembly language. Instead, it's similar to Dependency Walker, but for .NET assemblies. It will show you a tree view of all .NET libraries that a given assembly depends on. And it flags missing dependent files or ones that aren't the proper version. Great for troubleshooting why your .NET application won't run on some machines.
In the spirit of World's Biggest Pac-Man, we give you Infinite Mario Brothers. And don't blame me, if you don't get any work done the rest of the day.
http://mario.fromlifetodeath.com/
Not quite the style of Dueling Banjos, but this is a pretty cool creation with two 3-1/2" floppy drives (remember those?) playing the Imperial March (think Darth Vader).
http://hackaday.com/2011/10/02/star-wars-imperial-march-played-by-dual-floppy-drives/
Uber geek John Graham-Cumming has set out to build a working version of Charles Babbage's analytical engine. Learn more about this incredible undertaking.
http://blogs.baselinemag.com/bottom_line/content/infrastructure/building_babbages_protocomputer.html
Who would have thought that a comic strip about living with a database nerd could be funny? In this one, the author even provides some nice commentary about the motivation for each strip.
This summer, NPR asked readers to suggest the top sci-fi and fantasy books of all times. So how do you decide which one to read first (or next)? This flowchart is just the ticket!
http://www.sfsignal.com/archives/2011/09/flowchart-for-navigating-nprs-top-100-sff-books/
If you and your kids haven't carved your Halloween pumpkin yet, you might want to check out these step-by-step instructions for turning that gourd into the Death Star.
http://www.fantasypumpkins.com/carving-the-deathstar.htm
If you're working on implementing your own new programming language (they seem to be proliferating like rabbits lately—hey, maybe I'll create the Rabbit programming language—or a new real language!), you'll want to make sure you work through this tongue-in-cheek list first. (New! Automated version here!)
http://colinm.org/language_checklist.html