February 2011 Newsletter
Learning is not compulsory. Neither is survival. –W. Edwards Deming
What we think, or what we know, or what we believe is, in the end, of little consequence. The only consequence is what we do. –John Ruskin
All the great things are simple, and many can be expressed in a single word: freedom, justice, honor, duty, mercy, hope. –Winston Churchill
The fact is, everyone is in sales. Whatever area you work in, you do have clients and you do need to sell. –Jay Abraham
If you worked in development for any amount of time, you've probably observed (or even partaken in!) a failed project and you may have even thought well before the project failed that it seemed doomed. In this report, researchers explain 12 common "early warning signs", both people-related and project-related, that indicate significant project risks.
While the recommended size of agile teams is 5 – 7 people, sometimes large teams are unavoidable due to the scale/scope of a project. Agile projects tend to struggle more with larger team sizes and must compensate accordingly.
Never one to shy away from controversy, Dan North says that software development can't be treated like a craft, as suggested in the well-know Software Craftsmanship Manifesto, because the end product of programming (the code) isn't what matters; it's the business value which is delivered that should be the true measure.
This author gives a good argument for developing architecture iteratively and for taking a pragmatic approach to architecture. He stresses building appropriate application layers for separation of concerns and providing flexibility.
While success with any methodology depends on the particular dynamics of the team, organizational culture and other factors, this brief, simple list does highlight some core items to consider when introducing agile development methodologies. Personally, I've observed the importance of more than half of these.
Most readers of this newsletter aren't "rocket scientists". But the interesting aspect of this list is that most of these principles are directly applicable to any technology project, including software development.
Among other things, Douglas Adams is famous for the statement: I love deadlines. I especially like the whooshing sound they make as they go flying by. While certainly humorous, most of us like to keep on schedule on our projects. This article provides some practical techniques for assessing likelihood of meeting schedule commitments and for remediating when deadlines are missed.
A Forrester survey of 140 CIOs shows that cost reduction activities (and accordingly roles) are on the wane and execution and delivery (e.g., project management) is the focus for 2011.
Typically, I tend to shy away from these end-of-year retrospective and beginning-of-year prediction lists, but this one seems to be highly relevant and on-target with my own experiences about what to expect in 2011. In particular, they anticipate NoSQL, mobile development, and cloud computing to really come into their own and they provide some specific examples.
Automated testing has been touted for a long time (more than 20 years in my own experience!) as the pinnacle of software testing. In this article, the author shows how to organically grow a successful automated testing regime using agile techniques.
While this article doesn't really advance the start of the art and practice on the topic of quality in agile development (at least, in my opinion!), it does highlight one of the potential risks in agile development, if the team does not work closely together and agree on the definition of "done", then development can leave a trail of difficult defects behind in the emphasis to get iterations completed.
Walter Bright makes a great case for applying the pattern concept to bugs (and how to hunt for them!). Specifically, he outlines a taxonomy for some common bug types.
This articles goes in the software testing/quality category, because an automated test gone awry caused the (temporary) loss of over 17000 Hotmail mailboxes. This is a good example of how even the tests we develop need some level of testing, because test development is a development effort in and of itself.
This 6-page printable reference covers the main concepts and principles behind Scrum, including roles, sprint planning and management, and even when Scrum is a viable methodology.
Interestingly, one of the granddaddies of computer languages, Lisp, is making a big comeback, both directly and through some of its derivatives, like Clojure and Scheme. This online book teaches the basics and some of the intricacies of Common Lisp.
Video continues to become a popular method for programming and web design tutorial transmission. Check out this excellent list of conference proceedings in video format. There's a little something for everyone in this smorgasbord.
Need a very brief introduction (or refresher!) on Scrum? This 8-minute tutorial quickly and clearly explains the basic concepts of Scrum and the various roles.
Technology professionals are frequently pulled between the extremes of thoughtful consideration of elegant solutions and the drive to get things done quickly. This thought-provoking article gives some useful advice on how to balance these competing positions.
Traditionally, resumes list the duties and responsibilities you have. But potential employers what to know what you have actually accomplished, not what you were supposed to do.
This very short blurb notes the key to successful communication: State the conclusion and most important information first.
While some of the items on this list are a little too post-modern for my liking, the list as a whole has some good, practical advice for high achievers that sometimes find themselves struggling.
As a chronic procrastinator myself, I found this article quite interesting. It's certainly non-scientific, but the point is certainly sensible: "Flow" in your work is a function of having high skills and high challenge in the work to be done.
Glassdoor.com has released their latest report on the 50 best places to work, according to employee feedback. Topping the list are Facebook, Southwest Airlines, and Bain & Company, which are the only companies with greater than 4.0 ratings on their 5 point scale.
In this interesting article, the author shows that it's not the actual work that causes us to procrastinate, but simply the act of starting. Maybe this is just the impetus you need to break the procrastination habit!
This excellent blog post emphasizes that for most developers the pendulum swings from doing the easiest things that work to overengineering the solution. He says that maturity comes when a developer has the confidence to throw away and abstraction if it doesn't ultimately simplify the solution.
In today’s economy, many people are choosing underemployment or temporary work, such as with the Census Bureau, over unemployment, even though it can be risky for the hiring company. And one of the interesting side-effects is that some folks actually prefer the reduced stress compared to their previous jobs. Likewise, it is important to bring the right attitude about the job in order to be successful.
The FCC's network neutrality decision wasn't the only thing going on in the past few weeks with respect to telecom. The FCC also granted nine companies, including Google, conditional approval to use infrequently-used wireless spectrum for high-speed wireless services.
yEd is free Java-based diagram viewer and editor. You can run it locally or via Internet via Java Web Start. It supports a number of diagram types, including flowcharts, UML class diagrams, and organizational charts. Some of the great features include import from Excel or XML files, exporting output to PDF, Flash, and many graphic formats, and auto-layout arrangement.
If you use Twitter and don't want to go to the trouble of using a separate application to post messages, TwInbox allows you to post from the familiar confines of MS Outlook. It handles almost all aspects of managing your Twitter account and even supports URL shortening (via bit.ly) and multiple Twitter accounts.
This handy utility unobtrusively adds buttons to the title bar of each application window which provide additional window management functions like always on top, roll up (window shade), minimize to tray or tray menu, and transparency. In all, nine new functions are added, including some that aren't available in most similar utilities.
It's a well-known axiom that productivity can be substantially increased when you don't have to switch between your keyboard and mouse. MouseFighter allows you to control your mouse via the keyboard. It seems contradictory and takes a little getting used to, but after a while you should be able to work without reaching for the pointing rodent very often.
Swish is a free, open-source SSH/SFTP client that integrates directly (and very nicely) into Windows Explorer. It supports drag-and-drop of files in both directions (upload and download) and even allows connections to be cached.
Check out this collection of pictures from a Bell Labs research data center in the late 1960s.
If you're considering declaring e-mail bankruptcy (or even if you aren't!) perhaps you'll want to consider using this as your auto-response message.