Software Testing and Development Newsletter - October 2009
Posted by: Tim Jones in Contributing Blogger on Sep 29, 2009
Quotable Quotes
Enjoy when you can, and endure when you must. –Johann Wolfgang von Goethe
In preparing for battle I have always found that plans are useless, but planning is indispensable. –Dwight Eisenhower
Civility costs nothing and buys everything. –Mary Wortley Montagu
Some of the world's greatest feats were accomplished by people not smart enough to know they were impossible. –Doug Larson
The world we have created is a product of our thinking; it cannot be changed without changing our thinking. –Albert Einstein
A pinch of probability is worth a pound of perhaps. –James Thurber
The only place where success comes before work is a dictionary. –Vidal Sassoon
Be kind, for everyone you meet is fighting a hard battle. –Plato
Software Development Process and Methodology
Article: How The Theory of Constraints Can Help Software Optimization
Often, getting the functionality of an application is the “easy” part. Optimizing and improving performance is no longer optional for most systems, but is usually quite difficult. This interesting approach to optimization using Goldratt’s Theory of Constraints gives some fresh perspectives on how to target bottlenecks.
http://www.ddj.com/development-tools/218101302
Article: The Most Important Agile Practice Of All
What do you think is the most important agile practice? Daily standup meetings? Burndown charts? This author says that showing respect to everyone is most important because success with agile development depends on good working relationships. And I think it’s a good idea, even if you don’t work in an agile shop!
http://www.skorks.com/2009/08/the-most-important-agile-practice-of-all/
Article: The Problem with Design and Implementation
This excellent article discusses the common conundrum of when design stops (or should end) and when implementation/construction begins and how to determine the separation of activities. While starting with some philosophical arguments the author goes on to the practical matters as they apply to real software development.
http://www.osnews.com/story/22135/The_Problem_with_Design_and_Implementation
Article: Reactions to Gartner’s Suggestion to Use an “Emergent Architecture”
Industry analysts are coalescing around a new approach for IT enterprise architecture they are calling “emergent architecture”. (Maybe it should be called “post-modern”!) This new approach is intended to help bridge the divide between IT and business and allow IT to be more responsive to business needs. Likewise, others promote the concept of organic development of architecture as a result of a good, sound development process.
http://www.infoq.com/news/2009/08/Emergent-Architecture
Article: 7 fundamentals of IT project success
Projects fail for a variety of reasons, but most of them are not technical in nature. This author says that projects usually fail due to incorrect expectations most of which result from poor communication. He goes on to identify seven key factors that make or break a project.
http://blogs.zdnet.com/projectfailures/?p=5934
Article: Developing a good bedside manner
One of the most difficult and unpredictable aspects of software development is debugging. This article proposes a disciplined debugging process using the model of medical diagnosis and the scientific method.
http://www.embedded.com/columns/breakpoint/220100899
Article: Top Ten Things Programmers Hate About Agile
Just like any kind of change, adopting agile development techniques is likely to be met with some amount of resistance. Here are some of the common difficulties that developers may have with agile with some suggestions for resolving them. One of the items is opposition to doing pair programming.
http://damonpoole.blogspot.com/2009/09/management-top-ten-things-programmers.html
Article: The Difference Between Waterfall, Iterative Waterfall, Scrum and Lean Software Development
With all of the different new (agile) methodologies out there, how do you make heads or tails of them? This article gives succinct, but clear explanations of some of the common methodologies. And it even includes a great chart to help visualize the differences.
Article: The Awesomeness Manifesto
This author proposes that innovation is a passé relic of the industrial age and it should be replaced by what he calls “awesomeness”. He says that awesomeness is built around four core principles: ethical production, insanely great stuff, love, and thick value. While certainly these ideas are targeted toward startups, the same concepts can be applied to IT development in corporate environments, when people start focusing on customers.
http://blogs.harvardbusiness.org/haque/2009/09/is_your_business_innovative_or.html
Article: Frequent releases change software engineering
This author suggests that the primary benefit of agile development practices is not the delivery of functionality to customers more quickly, but how it forces IT to change it’s organization to reduce risk, speed development, and improve quality.
http://cacm.acm.org/blogs/blog-cacm/40796-frequent-releases-change-software-engineering/fulltext
Book Excerpts: Bridging the Communication Gap
In the first couple of chapters of this new book, the author emphasizes that good communication is the most important factor for success in development projects. He goes on to explain that common terminology between business and IT is how to achieve good communication and recommends “specification by example” as the most effective means of documenting requirements and one of the linchpins of test-driven development (TDD).
http://www.acceptancetesting.info/the-book/
Article: Is Java dead?
Pundits (and just plain folks alike!) have been predicting the imminent demise of Java pretty much from it’s beginning almost 15 years ago. This comprehensive and well-presented article takes another look at this question from a variety of angles. The author’s conclusion is that Java is not dead, but the Java era is certainly coming to a close, but the future of the JVM seems bright.
http://codemonkeyism.com/java-dead/
Software Testing & Quality
Article: A tester’s perspective on agile projects
A software testing professional looks at the role of the test function in agile projects. He maps out some very suggestions for early involvement of test and how testing contribute throughout the project.
http://www.pankajnakhat.com/agile-testing/08/a-tester%E2%80%99s-perspective-on-agile-projects/
Article: How do we know if we have “Quality” software?
I suppose that the definition of quality is kind of like Justice Stewart’s definition of obscenity: “I know it when I see it.” Nevertheless, this article gives good definitions of some of the quality characteristics of applications.
http://php.jglobal.com/blog/?p=209
Article: Hitting the right notes in QA
New software tools for testing and QA focus on metrics and measurement, such as code coverage. Likewise, these tools are now looking for defect patterns and the underlying cause of such problems.
http://www.sdtimes.com/link/33688
Article: World’s First Formal Machine-Checked Proof of a General-Purpose Operating System Kernel
Australian researchers have announced that a general-purpose OS microkernel known as seL4 has been certified as error free by using formal proof methods. It is intended for use in embedded safety-critical systems. This milestone demonstrates that verifiably bug-free code is possible (with great effort, of course!).
Article: The importance of unit testing and functional testing
Recently, there has been an Internet debate about whether both unit testing and functional testing are necessary. This excellent post makes a great observation about the value of each: Unit tests measure the quality of material used to build the application. Functional tests measure the strength of the application structure. The overall quality of the application is dependent on both.
http://app.arat.us/blog/?p=159
Tutorials/References
Reference: History of Communication
This beautiful graphic, available for purchase as a poster, shows the high-level advances of communication and computer technology over the past century.
http://www.geopanch.com/index.php?/work/history-of-communication/
Tutorial: A Stick Figure Guide to the Advanced Encryption Standard (AES)
As applications move away from the desktop and onto the network, security has become one of the key factors in development. This humorous, but thorough, guide to AES covers it’s history and the background of cryptography in general as well as how AES itself works.
http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html
Tutorial: 12 Tips for Better Business Writing
Like it or not, most businesses today run on information and most of that information is conveyed via the written word: e-mail, IM, reports, etc. Here are some great tips for improving your success at getting your point across. My favorite tip? Write once, check twice.
http://www.lifehack.org/articles/communication/12-tips-for-better-business-writing.html
Tutorial: SQL Antipatterns Strike Back
Want to make your databases and SQL queries more efficient and maintainable? Check out this presentation of antipatterns to use.
http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back
Career Development/Miscellaneous
Article: Five fatal flaws IT leaders must address to advance
In a recent book on leadership, authors Joseph Folkman and John Zenger say that most “weaknesses” that people have do not appreciably hinder their advance. However, they say that there are five “fatal” flaws that will: inability to learn from mistakes, interpersonal incompetence, lack of openness to new ideas, tendency to blame others for problems, and lack of initiative.
http://blogs.techrepublic.com.com/career/?p=1037
Article: On Hearing and Speaking the Truth
Everyone knows that all organizations at least pay lip service to “speaking the truth to power”. This interesting article puts the question in business terms: How can a manager make good decisions if he/she doesn’t have all the relevant information?
http://blog.slickedit.com/?p=327
Opinion: The unspoken truth about managing geeks
In this essay, the author suggests that the reason technical workers (a.k.a. “geeks” or “nerds”) are often difficult to manage is because of the strong meritocracy mindset and desire to “be right” that they have. He offers an interesting look at some of the factors that surround this.
http://www.computerworld.com/s/article/9137708/Opinion_The_unspoken_truth_about_managing_geeks
Article: Stanford Study Shows Maxi-Multitaskers' Performance Impaired
We frequently point out in this newsletter that multitasking simply doesn’t work. Here’s information from another study at Stanford that confirms this further.
http://www.infoq.com/news/2009/09/study-multitasking-performance
Article: Five job search tips for discouraged job seekers
No one looks forward to finding a new job, especially when it goes on for a long time or if it has been quite a while since you were last looking for a new job. Here are some tips to maintain a good attitude during a protracted job search and interviewing process.
http://blogs.techrepublic.com.com/career/?p=1217
Article: Why Developers Get Fired
This author, speaking from experience on both sides of the table, explores three common reasons (failure to deliver results, poor communication about their work, and unfulfilled potential) that programmers get the axe and provides suggestions for how to avoid these pitfalls.
http://itmanagement.earthweb.com/features/article.php/3839981/Why-Developers-Get-Fired.htm
Article: Setting And Achieving Goals The SMART Way
Most readers of this newsletter probably have at least a passing familiar with the SMART technique for writing goals. But it never hurts to have a refresher from time to time. This article give a succinct explanation of each of the parts.
http://www.dumblittleman.com/2009/08/setting-and-achieving-goals-smart-way.html
Article: 20 Things You Might Not Know About COBOL
How many of you out there cut your programming teeth on COBOL? Well, as COBOL turns 50, here are some interesting facts about this language that is still relevant and popular. For example, 15% of new application functionality developed this year will be written in COBOL.
Article: Business jargon lost in translation
The title of this article belies what it’s really about: Speaking (and writing!) plainly in the global marketplace. It bears repeating that there is no substitute for straightforward language and being careful with idioms that might not translate well to other readers or listeners. Not to mention that our personal and cultural biases have a greater impact on our thinking than we realize.
http://marketingdonut.co.uk/news/marketing/business-jargon-lost-in-translation
Article: Nine Hot IT Jobs in a Lukewarm Market
Like the rest of the economy, hiring in the technology sector has slowed down a lot. According to job web site Dice.com, here are some categories where jobs are available, including virtualization, .NET, and DBAs.
http://www.baselinemag.com/c/a/Careers/Nine-Hot-IT-Jobs-in-a-Lukewarm-Market-897905/
Article: Why Incompetence Spreads through Big Organizations
New computational research has found that due to the Peter Principle, organizations should abandon the common-sense approach of promoting people based on competence at their current level and instead adopt one of two other counterintuitive methods: to promote first the most competent and then the least competent individuals or to promote individuals at random. Both of these methods contribute to organizational chaos less than the standard method.
http://www.technologyreview.com/blog/arxiv/23800/
Video: Dan Pink on the surprising science of motivation
Speechwriter-turned-business consultant Daniel Pink talks about how little of current management practice takes into account new information about the science behind motivation. His presentation is a great summary of his bestselling book A Whole New Mind.
http://www.ted.com/talks/dan_pink_on_motivation.html
Article: Voice mail’s time has come–to be replaced
As we mentioned back in the June 2009 issue, the drumbeat for the demise of voice mail is becoming louder. One of the new technologies poised to help is voice transcription that converts voice mail into text messages or e-mail.
Article: Not So Fast: A Manifesto For Slow Communication
The author of a new book called The Tyranny of E-mail opines about how the breakneck pace of modern communication is damaging relationships. He underlines how the frenetic speed results in lack of context for communication and that it results in distancing ourselves from others instead of bringing us closer.
http://online.wsj.com/article/SB20001424052970203550604574358643117407778.html
Telecommunications/Networking Industry
Article: FCC Chairman wants network neutrality, wired and wireless
In a widely expected move, Julius Genachowski has proposed new guidelines to enforce network neutrality for both wireline and wireless services. Comcast, which was widely seen as one of the targets of the new rules, responded quickly and Windstream said that this approach will slow rural broadband rollouts. And here’s a collection of comments from a broad swath of both sides of the issue.
Article: The Blurring of Layer 2 and Layer 3
This is an interesting discussion about how layer 2 (data link layer) and layer 3 (network layer) networking functionality are starting to merge.
http://idleprocess.wordpress.com/2009/09/24/the-blurring-of-layer-2-and-layer-3/
Article: Telco Execs: No Recovery Yet
The CEOs of Verizon and AT&T both say that they have not seen sales improve and that perhaps the telecom market is still contracting.
http://blogs.barrons.com/techtraderdaily/2009/09/17/telco-execs-no-recovery-yet/
Useful Utilities
Clay Database Modeling (Free – Cross-platform Java – 1.0MB)
Clay is a graphical database modeling plug-in for the Eclipse IDE. It can generate database models by reverse engineering an existing database. Likewise, it can generate DDL for many database platforms from the model.
http://www.azzurri.jp/en/clay/index.html
.NET Reflector (Free – Windows 2000/XP/2003/Vista/7 with .NET – 1.04MB)
.NET Reflector is a handy tool for examining the internals of .NET assemblies. Even if you don’t have the source code, you can examine the classes, member variables, and methods. Likewise, it shows the relationships between the classes in an easily navigable way.
http://www.red-gate.com/products/reflector/
Storm (Free – Windows 2000/XP/2003/Vista/7 with .NET – 1.54MB)
If you do any development of web services (or applications that use/consume web services), you know that testing them without building a large harness can be difficult. Storm allows you to exercise web services and view the responses and returned data, even services that take complex inputs. It supports services/APIs written in most any language and even allows you to directly manipulate SOAP requests.
LoL (Free – Cross-platform with Firefox – 16kB)
If you use the Firefox web browser, you’ve probably found that it requires a lot of switching between the keyboard and the mouse. LoL makes browsing with only the keyboard much simpler without having to completely abandon the mouse (like with Vimperator or Uzbl).
TenClips (Free – Windows XP/2003/Vista/7 – 129kB)
TenClips is a multi-clipboard utility for Windows (supports 10 clipboards) that allows you to paste text into target without any source formatting (similar to Pure Text), if desired. It has full hotkey support and you can even define your own hotkeys for each of the clipboards and the options for pasting with or without formatting.
http://www.paludour.net/TenClips.html
QuickSharp 2008 (Free – Windows XP/2003/Vista/7 with .NET – 1.77MB)
QuickSharp is an alternate IDE for C#/.NET development. It features all of the normal features you’d expect, such as, syntax highlighting, code folding, regular expression “helper”, and Visual Studio-style docking windows, and much more, without the bloat of Visual Studio.
http://quicksharp.sourceforge.net/
Productivity Tips
View online PDF files without downloading redux
Last month, we had a tip about using Scribd to view PDFs online without downloading or having a PDF viewer. It turns out that Google Docs makes this even easier! Just go to http://docs.google.com/viewer and enter the URL of the PDF file (or even a Powerpoint presentation) and get a link to view the document online. Or just paste the URL at the end of http://docs.google.com/viewer?url= to view it immediately. (No Google Docs account is required.)
Just For Fun
Songs in Code Database
Can you guess the names of the song that are suggested in these Twitter-sized code snippets? Some are classics (and easy to recognize!), but I guess I’m too old to figure out most of them! ;)
The Longest Poem in the World
Some creative folks have written an application that takes “tweets” from Twitter and arranges them as verses in an every-changing poem. Each pair of lines even rhymes. Not your mother’s iambic pentameter, but still pretty interesting.
http://www.longestpoemintheworld.com/
The Ultimate Productivity Blog
Need a quick idea for getting more done? Just check out this blog! ;) Or maybe you should just work less.
http://productiveblog.tumblr.com/
Google Easter Eggs
You probably use Google everyday and, if so, you know that the Googlers have a sense of humor. Consider the recent UFO-themed logos. Here are some other more subtle jokes from across the Google landscape.
http://www.telegraph.co.uk/technology/google/6201814/Google-easter-eggs-15-best-hidden-jokes.html
The Postmodernism Generator
This fun (and funny!) online generator will produce a random abstract of a seemingly viable paper on a post-modern topic. It even includes references to actual published philosophy papers.
http://www.elsewhere.org/pomo/

