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.
http://www.ism-journal.com/ITToday/projectfailure.pdf
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.
http://myopendraft.blogspot.com/2010/09/best-practices-for-building-large-scale.html
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.
http://dannorth.net/2011/01/11/programming-is-not-a-craft/
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.
http://www.andygibson.net/blog/article/make-a-flexible-architecture-now-perfect-it-later/
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.
http://www.leadingagile.com/2011/01/12-keys-to-success-with-agile/
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.
http://spacecraft.ssl.umd.edu/akins_laws.html
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.
http://www.smashingmagazine.com/2010/07/28/passing-the-holy-milestone-how-to-meet-deadlines/
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.
http://www.cio.com/article/644767/CIOs_in_2011_The_IT_Roles_and_Strategies_in_High_Demand
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.
http://mashable.com/2010/12/27/web-development-predictions/
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.
http://www.matthewbussa.com/2011/01/evolution-of-automated-testing.html
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.
http://www.infoq.com/news/2010/12/complete-with-low-bug-counts
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.
http://www.drdobbs.com/blog/archives/2011/01/patterns_of_bug.html
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.
http://www.infoworld.com/t/software-service/hotmail-fail-microsoft-lays-egg-in-the-cloud-616
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.
http://scrumreferencecard.com/
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.
http://www.psg.com/~dlamkins/sl/
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.
http://www.steveciske.com/post/SCRUM-in-Under-10-Minutes.aspx
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.
http://www.vanseodesign.com/web-design/productivity-creativity/
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.
http://blogs.techrepublic.com.com/career/?p=1821
This very short blurb notes the key to successful communication: State the conclusion and most important information first.
http://engineerwriting.jottit.com/
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.
http://www.marcandangel.com/2011/01/10/10-simple-truths-smart-people-forget/
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.
http://chestergrant.posterous.com/low-skills-causes-procrastination
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!
http://lesswrong.com/lw/3kv/working_hurts_less_than_procrastinating_we_fear/
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.
http://www.senzee5.com/2007/06/developers-life-stages.html
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.
http://www.nytimes.com/2010/03/29/us/29overqualified.html
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.
http://www.informationweek.com/news/internet/google/showArticle.jhtml?articleID=229100389
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.
http://www.yworks.com/en/products_yed_about.html
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.
http://www.techhit.com/TwInbox/twitter_plugin_outlook.html
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.
http://www.luckham.org/LHL.Bell%20Labs%20Days.html
Remember Clippy from earlier versions of Microsoft Office? Here's what he would look like if he were a VIM plugin. (Some language may not be suitable for children.)
http://www.vim.org/images/vimassistant.gif
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.
http://www.newyorker.com/humor/2010/10/25/101025sh_shouts_marks