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.
http://blog.scrumphony.com/2011/06/7-agile-sins/
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.
http://www.infoq.com/news/2011/10/risky-it-projects
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.
http://www.youtube.com/watch?v=EE-t5J7hnHE
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.
http://www.geekwire.com/2011/top-10-reasons-darth-vader-amazing-project-manager
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.
http://www.estherderby.com/2011/10/peck-peck-peck.html
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.
http://agile.techwell.com/blogs/agile-testing-lisa-crispin/helping-customer-stick-purpose-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.
http://isaacsu.com/2011/11/systems-thinking-in-it/
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.
http://sealedabstract.com/rants/why-software-projects-are-terrible-and-how-not-to-fix-them/
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.
http://cleancoder.posterous.com/software-craftsmanship-things-wars-commandmen
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.
http://queue.acm.org/detail.cfm?id=2063168
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.
http://www.viget.com/extend/the-balanced-developer/
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.
http://www.passionatetester.com/2009/11/harmony-is-beauty.html
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.
http://googletesting.blogspot.com/2011/09/10-minute-test-plan.html
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.
http://www.bettertesting.co.uk/content/?p=1438
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.
http://simononsoftware.com/the-importance-of-database-testing/
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.
http://www.youtube.com/watch?v=X1jWe5rOu3g
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.
http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html
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.
http://worrydream.com/LadderOfAbstraction/
Javascript maven Douglas Crockford
discusses some of the psychology behind writing code (he references Daniel Gardner's book The
Science of Fear) and why consistency and coding standards are so
important. The first part
of the talk (about first 20 minutes) are general and the remainder
focuses on Javascript particularly.
http://www.youtube.com/watch?v=taaEzHI9xyY
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.
Software Engineering for Software as
a Service
Probabilistic Graphical Models
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.
http://www.scribd.com/vacuum?url=http://www.ai.uga.edu/mc/WriteThinkLearn.pdf
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.
http://business.in.com/article/rotman/how-to-lead-clever-people/28632/0
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.
http://dudye.com/challenge-your-creativity-77-problem-solving-exercises
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.
http://www.boxfreeit.com.au/Productivity/tip-want-to-be-more-productive-dont-file-your-email.html
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!
http://royal.pingdom.com/2011/11/14/10-inventors-of-internet-technologies-you-may-not-have-heard-of/
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.
http://www.theenergyproject.com/blog/theres-no-such-thing-constructive-criticism
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.
http://www.itworld.com/mobile-wireless/225309/smartphones-are-making-us-tired-work-slaves
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.
http://blogs.hbr.org/schwartz/2011/11/four-destructive-myths-most-co.html
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.
http://theamericanscholar.org/solitude-and-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.
http://www.businessweek.com/management/three-types-of-people-to-fire-immediately-11082011.html
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.
http://gigaom.com/2011/11/02/when-will-broadband-finally-kill-local-storage/
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.
http://www.politico.com/news/stories/1011/67044.html
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.
http://www.xworks.ca/shelf/index.html
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.
https://sites.google.com/site/teleksw/files
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.
http://thestallmandialogues.com/
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.
http://projects.haykranen.nl/java/
Here's a simple, but delightfully addictive, little Duck Hunt remake created entirely in HTML5 and Javascript. It even features your own level creator/editor.
http://mattsurabian.com/duckhunt/
Check out this cool (???) hip-hop (or is it rap?) music video about writing code. Not exactly Code Monkey, but still pretty funny.
http://www.adam-bien.com/roller/abien/entry/code_hard_with_java
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.
http://www.codigogeek.com/wp-content/uploads/2010/10/geek-evolution.png