Software Testing and Development Newsletter - September 2009
Posted by: Tim Jones in Contributing Blogger on Aug 28, 2009
Quotable Quotes
Perseverance is not a long race; it is many races one after another. –Walter Elliot
Optimism is a revolutionary act. –Cameron Crowe
To dare is to lose one's footing momentarily. To not dare is to lose oneself. –Soren Kierkegaard
The greatest way to live with honor in this world is to be what we pretend to be. –Socrates
When ideas fail, words come in very handy. –Johann Wolfgang von Goethe
Plato is my friend—Aristotle is my friend—but my greatest friend is truth. –Isaac Newton
The weakest living creature, by concentrating his powers on a single object, can accomplish something. The strongest, by dispensing his over many, may fail to accomplish anything. The drop, by continually falling, bores its passage through the hardest rock. The hasty torrent rushes over it with hideous uproar, and leaves no trace behind. –Thomas Carlyle
Impatience never commanded success. –Edwin H. Chapin
The successful person makes a habit of doing what the failing person doesn’t like to do. –Thomas Edison
Software Development Process and Methodology
Article: Law of Averages Overturned
A Stanford professor says that project managers need to bone up on their statistics and apply principles of probability to estimation and project planning. He notes that small deviations in actuals from estimates in project schedules are the main reason for development project “failure”.
http://blogs.cioinsight.com/knowitall/content001/software/law_of_averages_overtuned.html
Articles: Low Tech Approaches to Requirements
As technologists and purveyors of technologies, developers often first turn to the computer for requirements-gathering and documenting tools. In this three-part series, a programmer suggests some decidedly low-tech approaches that are often more efficient and effective. Sometimes, good old pencil and paper and a sit-down conversation with the users is the best technique.
http://chriswoodill.blogspot.com/2007/08/low-tech-approaches-to-requirements.html
Article: Developer's Kvetch: The Rotting Stink of Corporate IT
This author opines about the sad state of corporate IT shops, such as disregard for standards, apathy, and the frustration with “the process”. But she also notes that corporate IT can work, especially who small, empowered teams are used.
Article: It's time for a change: Do less with less
Technology workers are often stressed out and worn out. Borrowing from the slow food movement, this article proposes a set of 10 principles to slow down IT and still deliver value to business customers. Fundamentally, many of these ideas are the underpinnings of lean production model.
http://www.infoworld.com/slowit
Article: Managing UI complexity
This excellent article explains an iterative approach to reducing complexity in user interfaces and, thereby, improving usability and effectiveness of the application. Remember that simplicity is your objective.
http://www.brandonwalkin.com/blog/2009/08/10/managing-ui-complexity/
Article: In need of a theory for software engineering
Just as it has been since the beginning of the software development and engineering discipline, the greatest challenge is how to develop great software. In this excellent (and lengthy!) article, Ivar Jacobson, one of the creators of the Unified Process, explores some of the methodology approaches that may yield fruit. The comments on the article are insightful, as well.
http://ivarblog.com/2009/05/29/in-need-of-a-theory-for-software-engineering/
Article: Agile Adoption: Projects Should Dive-In, Organizations Should Toe-Dip
Development expert Johanna Rothman says that organizations should take a measured approach to implementing agile by using in some projects to understand how it works. At the same time, on the projects selected to use agile, it should be fully implemented.
http://www.infoq.com/news/2009/08/rothman-managers-adopt-gradually
Article: I’m OK; The Bull Is Dead: Communication Skills for Developers
As we frequently discuss here, communication is the key to any successful activity. In this article, the author proposes a simplified communication technique for technical workers, especially on status reports, using the inverted pyramid from journalism: Begin with the conclusion, then state the most important facts, and finally conclude with the details.
http://www.computerworld.com/s/article/print/93903/I_m_OK_The_Bull_Is_Dead
Article: Stand Back and Deliver: Introduction to Key Principles
In many ways, IT project management is more art than science. This book excerpt discusses the main ideas behind “good agile” practice both from the IT and business perspectives.
http://www.informit.com/articles/article.aspx?p=1355310
Article: Do Not Use Design Patterns Upfront
This author claims that design patterns should not be used during initial development, because, at that point, they are essentially a solution in search of a problem. Instead, he suggests that patterns should be part of the refactoring phase and flow from the initial code.
http://blog.jovan-s.com/2009/07/29/do-not-use-design-patterns-upfront/
Software Testing & Quality
Article: The Surprising Right Fit for Software Testing
While autism-spectrum disorders like Asperger’s syndrome are often seen as a handicap to IT professionals, this article indicates that such behavioral differences may be the factor that sets successful testers apart from developers. And here’s a personal story about Asperger’s syndrome from a career tester.
http://hbswk.hbs.edu/item/5869.html
Article: Coding and Testing: Testers and Programmers Working Together
Agile testing expert Lisa Crispin suggests that developers and testers work together throughout the development lifecycle a la pair programming to help the developer consider the appropriate tests to write and for the tester to better understand the application.
http://www.methodsandtools.com/archive/archive.php?id=88
Article: Automated Software Testing Distilled – Standards and other Considerations as Prerequisites to Success
Many people (frequently those without test backgrounds) see automated software testing (AST) as the panacea for testing faster and with fewer people. However, AST itself requires careful analysis for suitability and organizations need to remember to AST involves a development lifecycle itself.
https://www.softwaretechnews.com/stn_view.php?stn_id=50&article_id=134
Article: SQLite: A Lesson In Low-Defect Software
This article provides an in-depth analysis of how SQLite went from “quick hack” project to a high-quality ubiquitous application. (You know that it’s the database engine behind the history, bookmarking, and other data management functions in Firefox web browser, right?) The key aspects are liberal use of comments in code, extensive code coverage for unit tests, and process improvement, all of which are techniques that any developer or project can adopt. One of the points that most stuck out to me is: Safety != Reliability. Safety: no harm; reliability: no failures.
http://aleccolocco.blogspot.com/2009/08/sqlite-lesson-in-low-defect-software.html
Article: Golden rules for software testing
No matter what development methodology your organization uses, there are some software testing principles that always apply. This author gives a brief, succinct list of these “golden rules” from his experience.
http://www.testertroubles.com/2009/05/golden-rules-for-software-testing.html
Tutorials/References
Reference: langref.org
Patterns are a great tool to use to learn a new programming language. This site uses the pattern concept to show how to solve common programming programs in a variety of languages, including Java, PHP, Perl, C++, Python, Ruby, and more. One of the best features of the site is that it gives you the ability to compare an implementation in a language that you already know to one that you are learning, so you can see the differences and subtleties.
Tutorial: Guidelines for Writing Use Cases
Use cases are one of the most effective ways of capturing business requirements. Here are some simple, straightforward tips for doing this effectively.
http://www.johnmichaelbattista.me/software-engineering/use-cases
Tutorial: SQL pie chart
This cool little tutorial shows you how to create an “ASCII art” pie chart using database data entirely in standard SQL. While you might never have need for this, it does show you some handy techniques for your queries.
http://code.openark.org/blog/mysql/sql-pie-chart
Tutorial: Hashing. The whats, hows, and whys.
Using hash keys is one of the most effective ways to improve application performance when a large number of records must be searched. This detailed tutorial explains how to do hashing and details some of the various approaches and algorithms.
http://neverfear.org/blog/view/73/Hashing_The_whats_hows_and_whys
Tutorial: RESTful HTTP in Practice
REST has become a popular method for developing web services. But the REST architecture is often confusing. This tutorial explains how to implement REST web services over HTTP. While somewhat of mid-level tutorial it is useful in understanding the core principles.
http://www.infoq.com/articles/designing-restful-http-apps-roth
Career Development/Miscellaneous
Article: Why goofing off boosts productivity
While this one is certain to be controversial, some new research indicates that those who take breaks that most would consider "slacking" actually are more productive. In particular, those that spend time on non-work-related web surfing are 9% more productive.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9131066
Article: Want to get ahead? Sleep in
In bad news for me, new research via brain imaging shows that later risers have more mental stamina and can outperform early birds. After 10 hours of being awake, the early birds showed reduced activity in brain areas linked to attention span, compared with the night owls. And night owls tend to be wealthier, as well. So much for Ben Franklin’s maxim: Early to bed, early to rise makes a man healthy, wealthy, and wise.
http://www.theglobeandmail.com/news/technology/science/want-to-get-ahead-sleep-in/article1065333/
Video: A kinder, gentler philosophy of success
Many people get caught up in trying to achieve success that is defined by others, which leads to disappointment (so-called “status anxiety”). In this excellent presentation, Alain de Botton explains that each individual should define success for him or herself and then develop goals around that definition.
http://www.ted.com/talks/lang/eng/alain_de_botton_a_kinder_gentler_philosophy_of_success.html
Article: The scientific method
In this succinct article Seth Godin suggests the best way to improve and “get smarter” is to use the scientific method. He says that rather than being defensive, we should enter conversations looking for something to test, measure, and then change. The concept is very similar to Deming’s Plan-Do-Check-Act cycle for improvement.
http://sethgodin.typepad.com/seths_blog/2009/08/the-scientific-method.html
Article: Why Smart People Do Stupid Things
New studies have found that intelligence does not imply the ability to think rationally. This article discusses dysrationalia (my new favorite word!) and how you can improve your rational thinking. One researcher even suggests development of tests to measure RQ (“rationality quotient”) similar to IQ. As well, self-discipline is a greater predictor of performance than IQ.
http://www.magazine.utoronto.ca/feature/why-people-are-irrational-kurt-kleiner/
Article: The problem with PowerPoint
On the occasion of the 25th anniversary of PowerPoint (can you believe it?!), the BBC reports on how these types of presentations are not effective. For example, PowerPoint makes us “dumb” by hiding relevant facts and often the presentations are just too boring (“PowerPoint poisioning” or “death by Powerpoint”) and the audience overlooks relevant information.
http://news.bbc.co.uk/2/hi/uk_news/magazine/8207849.stm
Article: How to improve your email etiquette
Like it or not, e-mail is the de facto communication medium of the 21st century (so far!). To use e-mail successfully, you need to follow some simple rules of protocol. A couple of my favorites from this list: Change the subject line every time you start a new conversation and don’t get the last word in.
http://shine.yahoo.com/channel/life/how-to-improve-your-email-etiquette-481584
Article: 10 signs that it's time to look for a new job
Whether times are good or bad, it’s often difficult to know whether you should leave one job (“the devil you know”) for another (“the one you don’t”). Here are some good questions to ask yourself to determine if it’s time to move on.
http://blogs.techrepublic.com.com/10things/?p=940
Article: The Truth About Grit
Most of the time the history of great developments or happenings gives us the idea that these things were instantaneous flashes of insight or brilliance. But usually these things are the result of diligence and a long-term dedication, says a researcher.
http://www.boston.com/bostonglobe/ideas/articles/2009/08/02/the_truth_about_grit/?page=full
Article: What do CEOs do? A CEO Job Description
Have your sights set on running a company? Well, it’s probably useful to understand the various roles that the CEO plays. And make sure that you develop the skills to be an effective CEO, especially if you are moving from startup to on-going business. And it doesn’t hurt to be tall. ;)
http://www.steverrobbins.com/articles/ceojob.htm
Article: Reversing Your Email Composition
How many times have you sent an e-mail and forgotten the attachment? Or accidentally sent it before you were finished? This simple, but effective tip suggests that you reverse the normal flow of actions for writing an e-mail to help avoid those mistakes: attach files, write the body of the message, write the subject (very important!), and finally enter recipients.
http://www.everyjoe.com/articles/reversing-your-email-composition/
Telecommunications/Networking Industry
Article: VoIP thrives amid telco indifference
Even though most providers don’t seem very interested in VOIP service, it continues to gain traction among consumers. Likewise, even though carriers could stop VOIP, they aren’t doing that either. This observer thinks that carriers should put more effort into VOIP to take advantage of the demand.
http://www.fiercetelecom.com/story/voip-thrives-amid-telco-indifference/2009-08-05
Article: New Study, Same Results: U.S. Broadband Speeds Lagging
CWA’s annual Internet speed test shows U.S. far behind other developed countries. At the present rate of annual speed increases, which was just 1.6Mbps last year, it will take U.S. over 15 years to catch up to leader South Korea’s current speed!
http://www.eweek.com/c/a/Government-IT/New-Study-Same-Results-US-Broadband-Speeds-Lagging-532438/
Article: Broadband Stimulus Plan Has No Map for Success
GigaOM questions the government’s approach for increasing broadband access to rural areas by enlisting carriers to map out locations with limited access.
http://gigaom.com/2009/08/10/broadband-stimulus-plan-has-no-map-for-success/
Article: Why AT&T Killed Google Voice
In this editorial, Andy Kessler says that AT&T was behind Apple’s rejection of Google Voice app for IPhone. He proposes that in the 21st century all communications is data, including voice services, and he proposes an overhaul of current communication policy around that principle.
http://online.wsj.com/article/SB20001424052970204683204574358552882901262.html
Useful Utilities
BrowserTraySwitch (Free – Windows 2000/XP/2003/Vista/7 – 351kB)
Most power users have more than one web browser installed on their system. However, some web-based applications “misbehave” in the preferred browser. BrowserTraySwitch allows you to quickly switch the “default” browser before you click on a link or open an HTML file using the default association. Likewise, you can use it quickly launch one of the alternate browsers or a particular configuration (e.g., with or without proxy) of your browser.
http://www.donationcoder.com/Software/Mouser/browsertray/index.html
addressbook.xml (Free – Cross-platform – 40kB)
This cool little web application (runs entirely in your browser whether you are online or not!) is a simple address book that has lots of useful features, including ability to open a map on Google Maps by clicking on an address, send IM via click on IM ID, create an e-mail, etc. And it’s also a great application to learn about Javascript programming and XML and XSLT.
http://adx.elektronengehirn.net/
Saros (Free – Cross-platform Java/Eclipse – Varies)
Saros is a collaborative editing plugin for Eclipse that is suitable for distributed pair programming scenarios. It uses XMPP/Jabber for communication (the author’s recommend hosting your XMPP server with Openfire, but public XMPP servers can be used, as well) and can even support some integrated voice communication services, like Mumble/Murmur. And, of course, it can be used as a simple instant messenger client within Eclipse.
https://www.inf.fu-berlin.de/w/SE/DPP
SQL Developer Data Modeler (Free – Cross-platform Java – 24MB)
This is an Oracle graphical tool for data modeling, including ERD creation and relational, data type, and multi-dimensional modeling. It will generate DDL (physical model) for Oracle, MS SQL Server, and IBM DB/2 databases.
http://www.oracle.com/technology/products/database/datamodeler/index.html
P2PVPN (Free – Cross-platform Java – 2.1MB)
P2PVPN is full-featured VPN client for any platform that written in Java, including Linux, Mac OS X, and Windows that does not require a central server. Just set up your own network, with or without a “tracker”, and send that to others that you want to connect with. Currently, the application is a little rough around the edges with respect to ease of use, but the core functionality is good. (Note: Using P2PVPN on Windows requires the TAP-Win32 network adapter driver from the OpenVPN application.)
Project Lombok (Free – Cross-platform Java/Eclipse – 330kB)
Project Lombok is a code-generation plug-in for the Eclipse development environment. Unlike many of the code generators with delusions of grandeur, Lombok just does a few things well: it writes the getter/setter methods for your classes, automatically generates equals and hashCode methods for classes, allows you to call close() method without worries of memory leaks, and much more.
Productivity Tips
Quickly toggle text case in MS Word
Most people are familiar with the Format | Change Case feature in MS Word. But here are a couple of keyboard shortcuts that will save you time and the trouble of switching to the mouse: To toggle the case, in sequence (Sentence case à lowercase à UPPERCASE à Title Case), just select the text to be changed and press <Shift>+<F3>. If you simply want to make all of the text uppercase, press <Ctrl>+<Shift>+A.
Just For Fun
Escher in Legos
If you’re a fan of Escher’s fantastic optical illusions, you’ll love this site. This guy has authentically re-created some of Escher’s most famous drawings with Legos. No mean feat by any stretch of the imagination!
http://www.andrewlipson.com/escher
100 Things Your Kids May Never Know About
Here are a hundred pop culture icons of the past half-century that have almost all but disappeared, such as, Han shot first, DOS, Archie and Gopher searches, and much more. How many of these do you remember? And what would you have added to the list? (View-Master is something that my kids still love!)
http://www.wired.com/geekdad/2009/07/100-things-your-kids-may-never-know-about/
Never Gonna Give Your Teen Spirit Up
This video mashup takes Rick Rolling to an incredible new level. Very creative!
http://www.youtube.com/watch?v=NN75im_us4k
Give your boss the illusion of managing you… with pidgin and dbus
This creative programmer took this Dilbert cartoon seriously and actually implemented an IM bot to send his boss silly questions. Now you let your inner Wally really shine through!
Today's Front Pages Map (suggested by Nazneen Shaik)
With this cool interactive web site, just hover your mouse over the any city from around the world (72 countries!) to see the front page from that city’s newspaper. Click on the city “pin” to display that front page.
http://www.newseum.org/todaysfrontpages/flash/default.asp
When Zombies Attack!
This paper, which provides a mathematical model for zombie apocalypse, was actually published in peer-reviewed textbook on infectious disease transmission. Listen to this interview with the professor who oversaw the “research”.
http://www.mathstat.uottawa.ca/~rsmith/zombies.htm
