December 2011 Newsletter
Practice is everything. This is often misquoted as 'Practice makes perfect.' Periander
There are surely worse things than being wrong, and being dull and pedantic are surely among them. Mark Kac
There is something even more valuable to civilization than wisdom, and that is character. H.L. Mencken
All theory is against freedom of the will; all experience for it. Samuel Johnson
Discipline is the bridge between goals and accomplishment. Jim Rohn
Seems to me that much of testing relies on noticing when one is confused rather than accepting it as "Something Computer Programs Do." Sylvia Killinen
While not quite bad as the real 7 deadly sins, these traps and pitfalls can really derail your agile practices. One of the points from this list that I really liked is the idea that your daily scrum meeting/stand-up should be a mini sprint planning session.
According to research recently published in Harvard Business Review, IT projects continue to be very risky investments. In particular, the authors note that a significant IT project that fails can put the entire organization at substantial financial risk.
Software development expert Steve McConnell (his book Code Complete is a must read!) gives an excellent presentation based on his broad research about what sets world class development groups apart. While he doesn't cover a lot new for those familiar with his work, the talk is a good refresher on those ideas.
While he's probably not the kind of boss that anyone wants to have, Darth Vader did have many skills that would make him a good project manager. If nothing else, you can't say that he didn't get things done.
Esther Derby, in her inimitable direct but gentle way, explains why "stack ranking" of workers on agile teams doesn't make sense. She emphasizes that in software development everyone needs to be more than one dimensional (i.e., do more than simply write code) and that this makes simplistic measures of performance impossible.
One of the cornerstones of agile development is developing a good user story to explain clearly the needs and intents of the customer. Certainly, writing good user stories is difficult and this author emphasizes the need to focus on the "why" and not the "how" in the user story.
At this year's Ψredev conference, systems thinking expert John Sneddon explains that the problems with software development (late delivery, over budget, etc.) are not due to methodology (waterfall, agile, scrum, lean, etc.) and tools, which is what IT organizations tend to focus on, but instead are caused by our management processes and lack of systems thinking in the conceptualization of the applications. Fundamentally, he emphasizes that the underlying system (business process) must be optimized before doing anything with the IT aspects.
In this well-reasoned article, the author gives some good reasons from the developer perspective about the reasons for project failure. He also goes on to help developers look at some of the constraints from a management perspective. While he doesn't really offer a lot of solutions, he does point out some "fixes" that don't work.
Robert Martin talks about the principles behind the software craftsmanship movement, which is garnering more attention (some good and some bad) recently. He says that its foundational idea is: We are tired of writing crap. He emphasizes that it's not about philosophy, but focused on personal accountability and responsibility for writing good code.
This excellent article emphasizes the fact that programming is both art and science. The authors suggest that the factors that separate good code from great code have more to do with subjective measures like style and aesthetic factors than hard facts.
Cicero said, "Never go to excess, but let moderation be your guide. In this same vein, this author discusses the idea that balance is a key characteristic of successful developers.
In this article, the author talks about how she developed (and maintains!) a passion for testing and how that helps her work collaboratively with developers and other team members. It's a great story about how to love your job.
Most testers know that you can't put together a (good) test plan in 10 minutes. However, in this article, James Whittaker discusses the key elements of a test plan and gives some tips for how to develop most of you test plan in 30 minutes or less.
This excellent, comprehensive article gives great guidance on how to use the powerful tool of mind mapping for test design. The author really emphasizes the creative aspects of test design and how mind mapping can help you organize your thoughts.
The concept promoted and explained in this article would have been "blasphemy" just a few years ago. However, the author makes the case that for SaaS applications the only really viable option is testing in production. He explains the process of rolling out little bits of functionality for testing by "power users" and then releasing them generally as the functionality matures. Seems pretty agile to me and that it would be something that applies not just to SaaS.
One area of testing that frequently gets overlooked is database testing. Almost all applications today have a database of some sort and that makes the database one of the key elements to be tested. This article discusses some of the important aspects of your database that should be tested.
In this talk from GTAC, Alberto Savoia suggests what is sure to be a controversial that test (at least as we know it) is dead. The entire talk is both entertaining and inspirational for those who want to see changes in how testing is practiced.
If you've ever wanted to learn the Vim editor (Can you believe Vim has been around for 20 years?!), but got stuck after just a short time, OpenVim is an excellent resource. It provides online tutorials along with an online "sandbox" for trying out what you learn that includes context-sensitive help.
This comprehensive article, with good examples, gives some excellent guidance for new (and even old!) Java programmers about how to effectively use logging in your development.
Everything that programmers create are abstractions of one sort or another, so it's important to consider the implications of the design decisions. While specifically intended for graphic design, this amazing article has broad applicability, especially as it pertains to application design and algorithms.
With the success of their Machine Learning class, Stanford has announced a whole plethora of additional free online classes for Spring 2012. The classes start 01/12/12, so don't wait too long to enroll.
The Lean Launchpad (Steve Blank)
Especially since the introduction of CSS3, it's exceedingly difficult to remember all of the attributes, classes, selectors, etc. in the standards. InstaCSS allows you to just enter what you can remember and it will provide comprehensive documentation from the standards, as well as browser-specific extensions.
Despite the title that's a mouthful, this is a brief, but excellent presentation that shows you what the author calls "amplifying your intelligence" by using writing to help you think more clearly, so that you can express your ideas in a cogent, powerful way.
In this interview, leadership expert Rob Goffee talks about some of the special skills and tactics that need to be used in managing and leading what he calls clever people. He defines clever people as those who are extremely smart and highly creative/innovative.
Everyone wants to improve their creativity and brain power. This site provides a plethora (love that word!) of problem-solving exercises of varying difficulty in categories like math/probability, logic, verbal skills, visual/spatial, and lateral thinking.
I admit that I probably save too much of my e-mail, but having an old message has saved me (and others!) a time or two. According to a new study by IBM, using your e-mail system's search functionality works as well or better than having a topical filing system for old messages. It's nice that this validates my method of archiving e-mails by simply saving them in folders for each month.
We all use the Internet every day. In fact, most of us probably depend on the Internet for the existence of our jobs! But how much do you know about the technologies and the people who created them that underpin it? Check out this list of 10 lesser-known creators, including the team that created the Intel 4004 microprocessor that turns 40 years old this month!
In a similar vein to former GM (pre-government take-over) CEO Bob Lutz's essay Driven off the Road by M.B.A.s, this article based on Walter Isaacson's recent biography of Steve Jobs says that technology businesses often decline when they shift from being led by technical people to sales, finance, and accounting types.
Probably the most difficult conversation to have at work is when a supervisor has to give you negative feedback on your performance. This article looks at the three common mistakes that managers make and tips for avoiding them.
A new survey indicates that workers with smartphones tend to put in, on average, an extra hour of work each day and that this time is coming out of their time for sleep and exercise. In addition, nearly 1 in 3 smartphone users have an emotional attachment to their phones.
Everyone wants to get more done (or at least probably work fewer hours each week), but sometimes our organizational culture is part of the problem. This author talks about some of these problems, such as multitasking (or trying to do more than one thing at a time!) and working longer hours, and offers some good ideas about how to bust these myths.
This author says that the most profound skill necessary to build leadership is solitude, which he defines as time alone with your thoughts. Using Conrad's novella Heart of Darkness as a backdrop, he says that the crisis in leadership in America today is because we don't have people who are thinkers. He goes on to explain how to develop skills in leadership.
Most people know that it's difficult to be productive around difficult or negative people. These authors say that three toxic personalities (victims, nonbelievers, and know-it-alls) also hurt innovation.
Om Malik ponders how long before ubiquitous high-speed connectivity will make local storage unnecessary. Personally, I think this is still a long way off (10+ years), but who knows.
Last month, we reported about Genachowski's proposal to remake the Universal Service Fund. And he was able to accomplish this change, which will help bring broadband Internet services to almost 20 million people in rural or otherwise underserved areas.
Sh'elf is a great multi-function tool disguised as a desktop icon viewer. In its small, unobtrusive package, it includes file manager, archive manager, command shell, text viewer, image viewer, and much more. In addition, it allows you to pin icons to the task bar or make them stay on top.
IDLE is the built-in interactive Python IDE, but it is missing some key functions. IdleX tries to fill in some of these gaps such as clearing the window, displaying line numbers with "Goto Line" function, tabbed editing support, exporting output from editor to syntax-highlighted HTML, and many more.
Have an Excel spreadsheet, but no version of Excel? XLS2CSV has got you covered. It will batch convert any modern Excel (Excel 97, 2003, 2007, and 2010) spreadsheet into a CSV file. Has dozens of customizable options, including the CSV delimiter and escape characters, copying the output to mirrored directory, filtering rules, and more. And best of all Microsoft Office is not required.
Comma-separated value (CSV) files are ubiquitous for cross-platform spreadsheets. There are many tools available for editing and viewing CSV files, but sometimes you just want a simple way to open them and take a peek. Spread2Web is a simple standalone (portable) tool that allows you to convert a
CSV file into a basic HTML table so that you can view it any web browser.
If you do any work with Markdown (which is actually a very handy mark-up language), MarkdownPad makes all of those tasks easier. It has built-in side-by-side preview of the output and you can even specify your own style sheets. And it allows you to copy your mark-up directly to valid HTML to paste into your web design tool.
Storywall is like the traditional agile approach of kanban by posting sticky notes on a wall to sequence and prioritize user stories and tasks. Except it all happens in your browser. The free version supports a single user (no sign-up required) and you can collaborate with others via paid account.
Richard Stallman is well-known for his quirky (to say the least!) statements about a wide range of topics. This hilarious site imagines some conversations with RMS and unwitting foils.
A history graduate of Oxford has begun a project to tweet daily events from WW2. He intends to post up to 40 tweets per day chronicling the important events from all fronts for that day. Sounds like a pretty cool way to learn a little history! And maybe the American Revolution would have looked different with Twitter, too!
Can't think of names for your Java classes that seem "enterprise-y" enough? This tool can help. And if the first result isn't good enough, just hit 'Enterprisify!' again to add more.
This humorous infographic traces the history of geekdom from the 18th century sideshow freak to the modern geek chic (notwithstanding the suggestion of the looming demise of geek culture). Nevertheless, I'm still confused about the difference between geeks and nerds.