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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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#.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Computer science researchers have created a new model of the connectivity of the Internet that includes host countries and relationships to carriers/ISPs.
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.
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.
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.
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.
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!
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!
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.
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!