Software Testing and Development Newsletter - July 2009
Posted by: Tim Jones in Contributing Blogger on Jul 30, 2009
Quotable Quotes
Truth is tough. It will not break, like a bubble, at a touch; nay, you may kick it about all day like a football, and it will be round and full at evening. –Oliver Wendell Holmes
We have more ability than will power, and it is often an excuse to ourselves that we imagine that things are impossible. –François de la Rochefoucauld
Life is a grindstone. Whether it grinds you down or polishes you up depends on what you're made of. –Jacob M. Braude
It is a trick among the dishonest to offer sacrifices that are not needed, or not possible, to avoid making those that are required. –Ivan Goncharov
Don't judge each day by the harvest you reap, but by the seeds that you plant. –Robert Louis Stevenson
The only correct actions are those that demand no explanation and no apology. –Red Auerbach
Software Development Process and Methodology
Article: The Cognitive View: A Different Look at Software Design
This excellent essay, excerpted from Robert Glass' book Software Conflict 2.0, explores the question “What is software design?” He emphasizes that design is not about external representations or methodologies, but it is a creative activity that takes place in the mind. And one of the most interesting things about this essay is that it was written almost 20 years ago. I guess it’s true what they say: The more things change, the more they stay the same.
http://www.developerdotstar.com/mag/articles/glass_cognitive_view.html
Article: Why Does Software Work Take So Long?
In this classic article from Watts Humphrey, he discusses the underlying causes of delays in software development (and inaccurate estimation, as a consequence). He says that the main cause is all of the miscellaneous work that programmers do in addition to the actual development. And his remedy for the problem is profound: Developers should keep track of time in detail to see where all of their time goes.
http://www.sei.cmu.edu/news-at-sei/columns/watts_new/1998/June/watts-jun98.htm
Article: The speed, size and dependability of programming languages
Most of the time programming languages are “graded” on performance benchmarks, but these are often flawed and certainly don’t tell the entire story. This author took on the challenge of comparing languages based on speed, size, and dependability.
http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html
Article: Effective Strategy To Estimate Time For Your Design Projects
While the intended audience for this article is web designers, it contains some great general principles for estimation of most any sort of development or programming project. The article discusses developing a standard framework of tasks that always apply and then using it to make specific estimates based on the requirements of a particular project.
Article: REST is a style -- WOA is the architecture
The architectural paradigms of web-based systems continues to evolve. (Some pundits say that we are now moving from Web 2.0 to Web 3.0.) This article argues that REST is really just a means to an end and that the real architectural pattern is WOA or “web-oriented architecture”.
http://www.infoq.com/news/2009/06/hinchcliffe-REST-WOA
Article: Erase the IT/Business divide mindset to achieve better results
In this newsletter, we often feature articles about “IT-business alignment”. This excellent article emphasizes that even naming this is part of the problem. Instead, we need to simply recognize IT as part of the overall business, just like sales, operations, etc., that has a specific role in the success of the enterprise.
http://blogs.techrepublic.com.com/tech-manager/?p=1453
Article: How Technical Does an IT Manager Need to Be?
Among the debates in the IT profession that never seem to be settled is how much technical skill IT managers should have. This article explores this question and it seems that the answer (as you probably expected!) is that “It depends!”
Article: Misconceptions with Test Driven Development
One of the popular agile practices (not to be confused with methodologies!) is test-driven development (TDD). In this article, the author tries to dispel some of the common misunderstandings, such as TDD doesn’t work in developing architecture and writing tests after coding isn’t any different from TDD.
http://www.notesfromatooluser.com/2008/11/misconceptions-with-test-driven-development.html
Article: Software Engineering ≠ Computer Science
This insightful article seeks to better define the line between the software engineering (SE) discipline, which tends to focus on process and methodology, and computer science, which covers the technical underpinnings of programming, such as algorithms and complexity. Certainly, it doesn’t resolve the matter once and for all, but it does help to bring some clarity. And, Tony Hoare gives his views on this divide as well.
http://www.ddj.com/architect/217701907
Article: The New IT Manifesto: 10 Steps For Transformative CIOs
The role of the CIO is changing from being the head honcho over technology to being a key player in how to leverage technology as part of business strategy. Here are the steps that the CIO, and everyone in IT, need to focus on to remain relevant.
http://www.informationweek.com/blog/main/archives/2009/04/the_new_it_mani.html
Article: How To Write Unmaintainable Code
In the noble method of anti-pattern, learn how to write code that is confusing and indecipherable! Seriously, this should give you some ideas of how code in a way that understandable and maintainable.
http://freeworld.thc.org/root/phun/unmaintain.html
Article: Programming as a Fine Art
Never one to shy away from controversy, Joel Spolsky proposes a bachelor of fine arts track for programmers who are more interested in the craft of programming instead of the traditional computer science approach.
http://www.eweek.com/c/a/Application-Development/Programming-as-a-Fine-Art/
Article: Father of Use Cases Says Agile Needs to Get Smarter
Ivar Jacobson promotes a new concept called “Smart is Agile++”. Basically, he says that any organization can do "agile" simply by adopting smart practices over unsmart ones.
http://www.infoq.com/news/2009/04/Agile-Get-Smarter
Article: 10 Papers Every Software Architect Should Read (At Least Twice)
A couple of months ago, we featured an article about 10 classic papers that all programmers should read. Now, here are 10 more papers that address software architecture.
Software Testing & Quality
Articles: Quality is Dead
James Bach bemoans the sad state of software quality and says that underlying cause of the problem is the tolerance of defects by customers. And he offers some suggestions for finding our way out of the mess.
http://www.satisfice.com/blog/archives/224
http://www.satisfice.com/blog/archives/251
Article: Did Computer Failure Bring Down Air France 447?
I don’t think that this author is implying that computer or software problems were the primary cause of the accident, but he does make a good point about how important software testing and quality are in this age of increasing dependence on technology systems.
http://www.informationweek.com/blog/main/archives/2009/06/did_computer_fa.html
Article: Bizarre bugs: 9 of the strangest software glitches ever
Most testers have an interest in the weird ways that applications can fail. (One blogger even writes about the “favorite” bugs of his coworkers in the Microsoft test group.) This article reviews some well-known and yet still extraordinary application failures.
http://www.infoworld.com/d/security-central/bizarre-bugs-9-strangest-software-glitches-ever-971
Article: Top Ten Reasons to Love Agile Testing
In a recent thread on the Agile Software Testing mailing list, members made their suggestions about the advantages and value of agile testing approaches, even on traditional methodology projects. Read this summarized list of the results.
http://www.infoq.com/news/2009/06/love_agile_testing
Article: Bug-killing standards for firmware coding
In enterprise development, coding standards are often non-existent or not followed if they are available. This article explains the value of coding standards in preventing code defects from the beginning.
http://www.embedded.com/columns/barrcode/216200567
Article: Anatomy of a Software Development Role: Quality Assurance
Although I somewhat disagree with this author's general idea that "quality" and "testing" are synonymous, he still gives a good overview of the role of these functions within the development process.
http://www.developer.com/java/other/article.php/3515426
Resource: Test Forge
Test Forge is a new wiki-based site where you can share test plans, designs, procedures and test cases, as well as other various software testing wisdom with others. It's quite new, so it's a bit sparse right now, but it seems like a great idea. Get out there and share some of your stuff with others!
Tutorials/References
Reference: Blue Screen of Death Survival Guide: Every Error Explained
Every Windows users' nightmare is the Blue Screen of Death (BSOD). This non-technical guide explains what the various BSOD errors are and gives you some tips for how to troubleshoot and resolve them.
http://www.maximumpc.com/article/features/blue_screen_survival_guide
Tutorial: JavaScript for C & Python programmers
JavaScript is the de facto standard for client-side scripting in web applications. Most readers of newsletters already have some programming background. Thus, this is a great tutorial if you want to use your existing knowledge to get started with JavaScript.
http://www.wooji-juice.com/blog/javascript-article.html
Tutorial: How to Write an Equality Method in Java
Trying to write a “generalizable” equals method for your Java class that appropriately handles inheritance and subclassing is fraught with peril. This excellent tutorial takes you through some of the common pitfalls and provides guidance for how to implement your method taking them into proper account.
http://www.artima.com/lejava/articles/equality.html
Reference: 10 Essential SQL Tips for Developers
In the Internet age, it is rare that even the simplest of applications don’t have some sort of database, either on the backend or embedded. (Did you know that even Firefox browser has SQLite embedded for storing bookmarks, history, etc.?) Thus, SQL skills are an imperative for all developers. This reference gives some tips, as well as great links to other resources, about how to implement good database structures.
http://net.tutsplus.com/tutorials/other/10-essential-sql-tips-for-developers/
Reference: Common Java Cookbook
If you do any programming in Java, you’ll want to look at this! It explains best practices and patterns across a wide realm of Java programming from some of the best known the Apache projects, like Lucene and Commons. For those getting started with EJB/J2EE, it includes a fantastic section on JavaBeans.
http://www.discursive.com/books/cjcook/reference/book-cjcook.html
Tutorial: Table Layouts vs. Div Layouts: From Hell to… Hell?
Most designers and developers know that CSS is preferred for web page layout over tables. But sometimes CSS is just too complicated. This article gives you some tips about how to use CSS effectively and simply.
http://www.smashingmagazine.com/2009/04/08/from-table-hell-to-div-hell/
Career Development/Miscellaneous
Article: Why text messages are limited to 160 characters
Ever wonder where the 160-character limit to SMS messages came from? Well, it’s not as random as you might think at first and it really pre-dates the portable technology boom era. The limit came about in 1985 when the chairman of the GSM committee responsible for non-voice services used a typewriter (remember those?!) to do some personal research about the maximum length of single-sentence blurbs and questions. And, thus, the SMS message length was born (and the Twitter message length of 140 characters maximum was derived.)
http://latimesblogs.latimes.com/technology/2009/05/invented-text-messaging.html
Site: Glassdoor.com
Want to know what the environment is really like at that potential employer? Curious about salaries at competitors? Glassdoor.com can help. This site allows you to find reviews and salary information from actual employees at companies in many industries. You can even contribute your own information, anonymously, if you prefer. And they even have a section on how employees rate their CEOs. (And also check out competitor Telonu.com. [Get it? Tell-on-you.])
Article: 10 Answers You Should Know Before Your Job Interview
With continuing job losses, the chances that you will be looking for a new job get bigger with each passing day. Here are ten questions that you are likely to face in most any interview regardless of the job type or industry, such as “Tell me about a problem you had in your life and how you solved it” and “Do you have questions for me?” These are always good to have thought about before the interview, but don’t just come up with “canned” answers to them.
http://www.dumblittleman.com/2009/06/10-answers-you-should-know-before-your.html
Article: Could You Take An 'E-Mail Sabbatical'?
As summer is upon us, vacation season is in full swing. (I just got back from a week off myself.) This article looks at an interesting approach to vacation e-mail: just delete it all and tell people to contact you again when you return. How do you handle e-mail during absences?
http://www.informationweek.com/blog/main/archives/2009/06/could_you_take.html
Report: Unix turns 40: The past, present and future of a revolutionary OS
This summer, Unix reaches middle age! One of the most amazing things to me from this article is that Ken Thompson wrote not only the original version of Unix itself in one month, but also an editor, a shell, and an assembler, as well! Pretty amazing even today with multi-year application development projects being the norm.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9133570
List: The Manager's Cheat Sheet: 101 Common-Sense Rules for Leaders
Even if you’re not officially a manager, these tips will help improve your effectiveness, efficiency, and relationships with coworkers and maybe even impress the boss. Most of these items are simple common sense (which Benjamin Franklin observed isn’t all that common!), but seeing them together in one place helps you make some good connections between them.
http://www.focus.com/fyi/human-resources/managers-cheat-sheet-101-common-sense-rules-leaders/
Article: The 10 Hardest Jobs To Fill In America
For the second year in a row, engineer tops Manpower’s talent shortage survey. It is followed closely by IT staffer.
http://www.forbes.com/2009/06/03/hard-jobs-fill-leadership-careers-employment.html
Article: How To Become A Software Engineer/Programmer
Many people are enticed by a career in programming because of the view that it is technically challenging and provides good, stable employment. This author points out this is true, if you are also committed to being a life-long learner and you can emotionally detach yourself from the code you write. And, certainly, you should always have a “plan B” in any career.
http://maximporges.blogspot.com/2009/06/how-to-become-software.html
Article: How Does Our Language Shape The Way We Think?
While epistemology might not be your idea of an interesting subject (or maybe not even something that you’ve even thought of!), this article has some interesting implications not only for natural languages, but also for our limitations of perception when it comes to programming languages.
http://edge.org/3rd_culture/boroditsky09/boroditsky09_index.html
Article: 10 ways to keep your job despite the tough economy
As most people know, it's tough finding a new job right now. So, everyone should focus on what to do to keep your current gig. These tips will point you in the right direction. And, the fact is that they are good advice regardless of the job market.
http://blogs.techrepublic.com.com/10things/?p=701
Article: The slow reversal of periods and quotation marks
This posting (from 2001!) notes that technology is driving grammar to reverse the standard of punctuation marks being put inside closing quotation marks. I feel vindicated, since this is how I have written my entire life, much to the chagrin of many English teachers!
http://everything2.com/node/1070878
Article: 10 Worst Work Habits
What are some of the things that others (or—Heaven forbid—you your yourself!) do at work that annoy you? Here’s a list of some of the bad habits that everyone needs to break. And, yes, my personal worst—procrastination—is number 1! (I even have procrastination as a tag on Delicious!)
http://www.careerbuilder.com/Article/CB-1249-The-Workplace-10-Worst-Work-Habits/
Article: Sometimes, The Better You Program, The Worse You Communicate.
Everyone knows that communication is the linchpin of work and really of all relationships that we have with others. At the same time, technical people seem to think and communicate in different ways than “normal” people. This author explains four salient differences and gives some great advice for how to overcome some of these variations in communication style.
http://secretgeek.net/program_communicate_4reasons.asp
Article: Are computers transforming humanity?
Advances in technology always result in social change. Just think about the automobile and the telephone. Certainly, the answer to the question posed in the title of this article is “Yes,” but the more relevant question is how is society changing because of computers. Interestingly, the computer is hastening is the demise of the metanarrative.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=338575
Telecommunications/Networking Industry
Article: 2.5 Billion New Subscribers By 2013: Who? What? Where? When?
Telegeography says that the global economic downturn will only temporarily slow broadband growth and predicts that worldwide broadband subscriptions will top 700 million by 2013 up from 400 million today. They also indicate that this, along with wireless growth, will mostly offset losses in landlines.
http://www.telegeography.com/cu/article.php?article_id=28641
Article: On the Street and On Facebook: The Homeless Stay Wired
Even homeless people recognize the importance and value of Internet access. Here’s a quote from one of the homeless people featured in the article: "You don't need a TV. You don't need a radio. You don't even need a newspaper. But you need the Internet."
http://online.wsj.com/article/SB124363359881267523.html
Article: Cisco: Video Is Eating the Internet
Cisco is predicting that by 2013, video will account for 90% of IP traffic and that the amount of traffic will be the equivalent of the contents of 10 billion DVDs per month!
http://www.contentinople.com/author.asp?section_id=430&doc_id=177779
Article: 48% of Americans Would Drop Mobile Data Service Completely
In a new survey, almost half of respondents said that they would drop their mobile data plan to reduce personal expenses, if necessary. By comparison, only 10% said that they would get rid of home broadband service.
http://www.mobiletechnews.com/info/2009/06/26/002836.html
Article: What is a router?
Everyone knows what a router is, right? Well, modern routers are changing from one-trick-ponies into integrated devices that are often more about applications and services.
http://www.networkworld.com/news/2009/061709-what-is-a-router.html
Article: 3 Million New North American Broadband Subscribers Added in First Quarter 2009 Despite Economic Downturn
Even with the economic difficulties in the US, carriers added over 3 million new broadband subscribers for a total of over 12 million new subscribers in the past year. The increase was second only to China.
Useful Utilities
PicPick (Free – Windows NT/2000/XP/2003/Vista – 798kB)
PicPick is a multi-function tool for application developers and web designers. It features screen capture, image editor, color picker, color palette, pixel ruler, protractor, whiteboard, and more. It runs from the system tray, so all of the functions are quickly available.
http://picpick.wiziple.net/forum
Trowser (Free – Cross-platform – 80kB)
Trowser is a cross-platform (Unix, Linux, Windows, Mac OS X, etc.) text file browser that is intended to be a GUI-based alternative to less. It is a great tool for looking at log files and includes color highlighting, a persistent search history, graphical bookmarking, separate search result (i.e. filter) windows. Its key bindings are loosely based on Vim, so most users will be comfortable with keyboard navigation. (Requires Tcl/Tk version 8.4 or later. Windows users probably want Active Tcl.)
http://www.nefkom.net/tomzo/prj/trowser/
CodeRun (Free – Cross-platform online tool – N/A)
CodeRun is a browser-based online IDE (integrated development environment). It can be used for developing in most any language, but includes “channels” with code libraries/snippets for ASP.NET, PHP, and AJAX. It even has integrated Subversion (SVN) version control.
WindowTabs (Free* – Windows XP/2003/Vista/7 – 398kB)
Tab grouping on the task bar is one of my favorite features introduced in Windows XP. But it isn’t always the most convenient way to switch between instances of the same application. WindowTabs is a much more natural way of grouping. It adds Google Chrome-like tabs to windows so you can easily switch using mouse or <Ctrl>+<→>/<Ctrl>+<←>. It even lets you group windows from different applications. (*Note: The free version is limited to 3 tabs per application. The $19 full version removes this restriction.)
TotalEdit (Free – Windows 2000/XP/2003/Vista/7 – 7.5MB)
Text editors are kind of a passion (addiction?) of mine. I frequently try out different ones to see if there is something that I like. I guess my favorite is really an amalgamation of a variety of editors. Nevertheless, TotalEdit is a really strong contender among the category of freeware editors. It has an amazing set of features that are too numerous to do justice here, but some of the key ones are excellent support for development tool integration like compilers, debuggers, etc., built-in diff/compare, search and replace with regular expressions, support for project files, column mode editing, and support for portable installation.
http://www.codertools.com/totaledit.aspx
HelpNDoc (Free – Windows 2000/XP/2003/Vista/7 – 2.6MB)
Most users consider an application of any complexity incomplete without good documentation. HelpNDoc is a free help documentation authoring tool that can output documentation regular HTML, Microsoft Compiled HTML Help (CHM), PDF, or Word formats. You can define your own variables to ensure nomenclature consistency, such as product name, throughout the document.
Productivity Tips
Copy message box text to clipboard in Windows
If you are working with MS Windows and you get an error or informational message box from the application, you can simply press <Ctrl>+C (standard “Copy” keystroke) to copy the title text, the message text and the text of each of the message box buttons to the clipboard. Then you can just paste this information into any text processor.
Just For Fun
25 Years of Tetris
Can you believe it? Tetris has been around for a quarter-century. I don’t even want to think about how many hours (days?) I’ve wasted spinning little blocks.
http://digitaltools.node3000.com/blog/1191-25-years-of-tetris
http://www.guardian.co.uk/technology/gamesblog/2009/jun/02/tetris-25anniversary-alexey-pajitnov
Armstrong's 'poetic' slip on Moon
Forty years after the historic moon landing (I watched it on a B/W TV in a store window with my family, since we didn’t have a TV!), the debate continues about whether or not Neil Armstrong said ‘a’ in his famous first words from the moon’s surface.
http://news.bbc.co.uk/2/hi/science/nature/8081817.stm
The Ultimate Top 25 Chuck Norris “The Programmer” Jokes
These probably aren’t that funny for the under-30 crowd, but I found them quite humorous.
http://www.codesqueeze.com/the-ultimate-top-25-chuck-norris-the-programmer-jokes/
The Hunt for Gollum
If you liked The Lord of the Rings films, this site is a must-see. It has an amazing 40-minute fan film in the style of the originals made for under $5000.
http://www.thehuntforgollum.com/

