October 2010 Newsletter
The scientist describes what is; the engineer creates what never was. –Theodore Von Kármán
Meetings: After all is said and done, there's a lot more said than done. –Unknown
In looking for someone to hire, you look for three qualities: integrity, intelligence, and energy. But the most important is integrity, because if they don’t have that, the other two qualities, intelligence and energy, are going to kill you. –Warren Buffett
The trick is in what one emphasizes. We either make ourselves miserable, or we make ourselves strong. The amount of work is the same. –Carlos Castaneda
Emerging requirements exist on every nontrivial project, and they can cause problems. For example, emergent requirements make it impossible to perfectly predict schedules. Similarly, an up-front design phase will always be imperfect because it will be impossible for the designers to consider the emergent requirements until they do, in fact, emerge. –Mike Cohn, Succeeding with Agile
It behooves every man to remember that the work of the critic is of altogether secondary importance, and that, in the end, progress is accomplished by the man who does things. –Theodore Roosevelt
In this essay, the author thinks about whether agile techniques can scale
to large projects and how agile concepts can be applied to the traditional
methodologies. One key idea is
decomposing large projects into smaller projects that can be successfully
approached with agile.
http://www.sdtimes.com/link/34533
One of the key success factors for agile is building a team that works
well together. Check
out this article for some ideas about the kinds of skills that
make agile succeed.
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectId=16277
This author suggests that the key organizational characteristic that
separates organizations the create "great"
products (simple, intuitive, etc.) is what he calls "design
thinking". Most organizations focus
on "data thinking", which is important, but design thinking is needed
to take a product the last 20% to excellence.
http://farukat.es/journal/2010/09/480-design-thinking-vs-data-thinking
In this article, the author describes a simple planning practice similar
to daily scrum meetings for agile teams where they use a white board with three
colors to specify the work tasks to be completed. The key to the process is that no task can
stay on the board for more than two days, which drives people to define them
with good precision.
http://bigbangtechnology.com/post/doing_the_board1
When business and IT work together and demonstrate honesty with each
other, projects are more likely to succeed.
Interestingly, the US government seems to be leading the way in some of
these transparency efforts.
http://www.zdnet.com/blog/projectfailures/transparency-accountability-and-it-success/10882
As developers, we often like to think that excellent
code can counteract many other deficiencies or bad practices. This article emphasizes that a holistic
approach to project is necessary for success.
http://www.infoq.com/news/2010/09/Good-Code-Is-Not-Enough
This author suggests that much of the terminology that has grown up
around agile development results in confusion and miscommunication with our
business customers. He offers some
suggestions for alternative vocabulary.
http://gojko.net/2010/08/04/lets-change-the-tune/
This article (more of an essay really) explores some of the dark
underbelly of "big A" agile methodologies and its purveyors
(consultants, authors, etc.). While some
of it seems to be a bit of bluster, he does make a good point that teams need
to learn and evolve agile (or any other technique!) by doing and to adapt it to
their particular needs. Likewise, management
can't look at agile (or, again, any technique) as the panacea for all of the
organization's problems.
http://www.whattofix.com/blog/archives/2010/09/agile-ruined-my.php
Who's the most important member of an agile development team? In my view, it's the product owner, because
he/she can really set the tone for success (or failure!). This author gives some great advice on traits
of good product owners.
http://dearjunior.blogspot.com/2010/09/four-chars-of-good-product-owner.html
This writer suggests that one of the factors that frequently contributes to software development project failure is the
fact that most developers are creative types, but the most important skills for
success, particularly those emphasized by agile
methodologies, are management
skills. The key to success he says
is to let the managers manage, but ensure that they understand that they are
managing creative people.
http://software-document.blogspot.com/2010/09/heres-secret-behind-almost-every.html
Even the most seasoned agile convert is likely to find something in this
brief, but comprehensive guide to getting started. The author covers the entire agile process
from start to finish.
http://rubypond.com/blog/quickstart-guide-to-agile
Whether we as testers like it or not, one of the most tangible deliverables of the testing process are bug/defect reports. Thus, to bring due honor to our efforts, it is imperative that we write thorough, yet succinct reports. Here are some excellent practical tips and general principles to follow.
http://www.hans-eric.com/2010/05/25/great-bug-reports/
Well, I missed "debugging day" this year, but I'll try to remember it for 2011. Anyway, in honor of this auspicious occasion Computerworld tells the story of some of the more well-known software failures.
http://www.computerworld.com/s/article/9183580/Epic_failures_11_infamous_software_bugs
One of the frequent tasks for test groups is to refresh their test environment with production data. This can be a time-consuming and frustrating process. This article presents an automation technique to manage the refresh process.
http://www.drdobbs.com/architecture-and-design/227400371
Software development expert Capers Jones argues that we already have many of the tools and metrics needed to improve software quality, but most organizations fail to use them.
http://www.informationweek.com/news/development/c/showArticle.jhtml?articleID=225701340
This article presents a technique for combining exploratory testing with test automation as a method for determining which areas of any application are good candidates for developing automated tests. Very interesting concept!
http://www.sqazone.net/modules/news/article.php?storyid=606
To effectively design a database, it helps significantly to take an
evolutionary approach starting with the conceptual data model (CDM), which
defines the general business entities and primary attribution. This tutorial gives some great tips on what's
important in the CDM analysis process.
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/creating-a-conceptual-data-model
In transitioning from procedural or object-oriented programming to
functional programming, some of the concepts can be quite confusing. This excellent video with slides does a great
job of explaining monads.
http://www.infoq.com/presentations/Demystifying-Monads
Design patterns can
really simplify and standardize your code development process. But for newcomers, they can be difficult to
conceptualize at first. This tutorial
explains the various patterns and when to use them and then presents relevant
examples in C#.
http://www.scribd.com/doc/16352479/Software-Design-Patterns-Made-Simple
This screencast teaches the principles of test-driven development by showing you the
technique used on a real project, including the pitfalls and stops and starts.
http://jamesshore.com/Blog/Lets-Play/Lets-Play-Test-Driven-Development.html
Most developers would do well to at least learn some of the basic
concepts around user
experience and interaction. The
"Design with Intent" toolkit helps you learn the patterns and
paradigms that you can use in your application to influence user behavior and
provide a more pleasing user experience.
http://architectures.danlockton.co.uk/2010/04/10/design-with-intent-toolkit-1-0-now-online/
How would you classify your skill as a programmer? Unlike Lake Wobegon, not everyone can be above average. This article gives a good explanation of programming skill levels, based on Bert Dreyfus' description of competence development.
http://sophwarist.wordpress.com/2010/09/24/programming-skill-and-dreyfus-stages-of-expertise/
In this very interesting essay, the author explains why self-control (and its close cousin of seeing things through to completion) is so important to success. In addition, he discusses the importance of meta-cognition in developing self-control.
Recent high-profile cases notwithstanding, the airline industry is recommending that pilots take short naps to improve alertness. Now, some are suggesting the all organizations have employees get a little shut-eye too, instead of relying on caffeine. Maybe the Spanish have been right all along.
http://blogs.hbr.org/cs/2010/09/why_companies_should_insist_em.html
The periodic meeting with your manager, typically called a "one-on-one", is ubiquitous in most organizations. This author gives a nice 3-step approach to these sessions to make them useful and valuable to both the manager and employee.
http://www.randsinrepose.com/archives/2010/09/22/the_update_the_vent_and_the_disaster.html
Although this article is written primarily for educators or students, it provides some great ideas about how to learn anything new and how to advance your skills from novice to guru in most any area.
http://mathteacherorstudent.blogspot.com/2010/09/habits-of-mind.html
You’d be hard pressed to find a deeper, and yet incredibly productive, thinker than Albert Einstein. Here are some ways that he approached problem solving that you can use too.
http://litemind.com/problem-definition/
According to a new study from the Pew Center, while teens are still the texting champs, almost 3/4 of adult cell phone users in US send text messages, up from 2/3 a year ago. However, only 1/3 of adults have applications on their phones.
http://www.informationweek.com/news/windows/operatingsystems/showArticle.jhtml?articleID=227300068
Whether you need to prioritize your work tasks or just your “honey-dos” around the house, this article offers a nice technique to assign an appropriate weighting to each of your items.
http://www.sitepoint.com/blogs/2010/04/08/how-to-prioritize/
Although you might question their motivation, almost 3/4 of investment advisers say that for the generations following the Baby Boomers, most families will need $2 - $3 million in retirement savings to maintain their standard of living.
http://www.thestreet.com/story/10701792/1/1-million-doesnt-cut-it-for-retirement.html
Everyone wants to improve their productivity, even if it's just to have more free time. So why do we tend to procrastinate, even though we know it's such a drain? This author says that it's because we think (and act) tactically. One tip for improving in this area is to write down the things you need to do.
http://lesswrong.com/lw/2p5/humans_are_not_automatically_strategic/
In this counterintuitive research result, investigators found that those who looked out for the common good were most significantly punished by others in their organization for violating group norms.
http://www.eurekalert.org/pub_releases/2010-08/wsu-pdr082010.php
In the on-going (never-ending?) saga of network neutrality, the FCC has requested more input about wireless regulation, winning praise from providers and raising the ire of public interest groups.
http://www.informationweek.com/news/government/mobile/showArticle.jhtml?articleID=227300026
Computer science researchers have created a new model of the connectivity of the Internet that includes host countries and relationships to carriers/ISPs.
http://www.drdobbs.com/architecture-and-design/227400098
If you use the fantastic Sysinternals tools for monitoring and maintenance of your Windows system, you know how they are frequently updated and it can be difficult to keep up with the latest changes. This simply batch script will check your installation against the version list on the Sysinternals site and then automatically update any out-of-date versions.
http://sysadmingeek.com/articles/batch-script-to-auto-update-sysinternals-tools/
Gow, short for Gnu on Windows, is called "the lightweight alternative to Cygwin". It packages 130 *nix shell commands together in a Windows installer that weighs in at under 10MB after installation. These include many of the useful commands missing from Windows like grep, tail, tee, wget, touch, and even the bash shell.
http://wiki.github.com/bmatzelle/gow/
While I really love PIMs like Evernote, most of the time the last thing that I need is another application or website to check for things that I need to follow up on. Notes For Later is unique: Just add a bookmarklet to your web browser and when you are visiting any web site that you want to send yourself a reminder about then click the bookmarklet and it will email you a link to that page, the time you visited and include anything that you selected to your mailbox. You can even add notes or comments.
Google has released an updated version of the Instantiations Java GUI (SWT, GWT, Swing, and more) visual design tool. It is available for versions 3.4, 3.5, and 3.6 of Eclipse and includes drag-and-drop GUI creation and editing functionality. Likewise, you can tweak the created Java code using the standard Eclipse editing facilities.
http://code.google.com/webtoolkit/tools/download-wbpro.html
PowerCmd is an amazing replacement for the standard Windows command prompt. It allows you to have multiple command prompts open in a single window using either tabs or windowing. It has context sensitivity for changing directories, keeps complete history of commands, automatically logs your command prompt sessions, and really simplifies cut and paste from the command prompt.
This cool mashup using Google Street View takes you to a random location almost anywhere in the world to give you a peek at what's there. It's a great way to see some amazing (or even crazy) vistas on this planet that gets smaller each day.
http://web.mit.edu/~jmcmicha/www/globegenie/
The economic downturn has even hit those roadside attraction tourist traps. Got an extra $45,000 burning a hole in your pocket? Prairie Dog Town can be yours!
Got a web development project coming up? You might want to take a look at this new framework. J Seriously, this is a real MVC framework written using DOS batch files!
http://www.secretgeek.net/dod_intro.asp
Instead of making friends the old-fashioned way (you know, getting involved with those in your community, church, neighborhood, etc.!), you can just pay $10/month to have someone call you every day to tell you how wonderful you are. And if you think I'm kidding about this, apparently over 750 people have already signed up!
http://www.awesomenessreminders.com/
Usually we say that art imitates life, but in this case, some of our most famous science fiction writers "invented" things that became reality later.
http://mashable.com/2010/09/25/11-astounding-predictions/
This parody, with the sub-title "The Entrepreneur's Handbook for Success and Life Success in Running Your Business Life", takes on the business success book industry.
Ever wondered what famous author your writing style was like? Paste in a few paragraphs of your writing from this site and it'll analyze it for you in a flash. According to the site, I write like David Foster Wallace or H.P. Lovecraft. I'm not sure whether I should be proud or dismayed!