November 2010 Newsletter
There is only one corner of the universe you can be certain of improving, and that's your own self. –Aldous Huxley
The role of a manager should be to ensure that those that work for him/her eventually leave and go onto bigger and better things. –Mark Plant
Knowledge is that area of ignorance that we arrange and classify. –Ambrose Bierce
A culture of discipline is not a principle of business; it is a principle of greatness. –Jim Collins
We are often so in love with our own assumptions that they become invisible to us. Our hardest task is to find the spots where our infatuation makes our thinking fuzzy. –Mitch Albom
The important thing is not to stop questioning. Curiosity has its own reason for existing. –Albert Einstein
Write your goals in concrete and your plans in sand. –Anonymous
The most dangerous strategy is to jump a chasm in two leaps. –Benjamin Disraeli
This author makes a compelling argument for simplicity of design being one of the hallmarks of good IT work. In particular, he emphasizes the responsibility that IT has to question the business on their requests to ensure that they are really necessary.
Those who have used agile methodologies know how they can be successful, but sometimes others may need more convincing. This nice summary from a recent discussion on the Scrum Users mailing list gives some ideas on how to convince management about agile.
NoSQL databases, like MongoDB, Redis, and Hadoop, are all the rage on the Internet, even though nearly half to technology professionals have never heard of it. But Michael Stonebraker says that enterprises aren't ready for NoSQL systems, in general, because of lack of transaction reliability (ACID support) and lack of standards.
As with any methodology or technique, as it matures, it tends to gain some negative characteristics. This essay provides some good perspective on some of these "dark sides" of agile.
This article is a good reminder that our job as developers and other technologists is to build applications and systems to make our customers more productive and that we need to remember that they aren't always as technically sophisticated and many don't necessarily want to be, because they have other interests and priorities.
Many organizations treat agile methodologies (or really any sort of process for that matter) as the panacea for all of their problems. Here are some traps that development shops are prone to fall into when introducing agile.
Everyone knows that it's more effective, not to mention cheaper, to prevent defects, rather than fixing them. Here are some simple tips on how to keep those little critters out in the first place.
When you are working on a project, how do estimate how much of a task you've completed (or, conversely, how much remains)? Here are some guidelines for providing better estimates. (Honestly, I struggled in deciding whether to place this article here or in the "Just For Fun" section.)
This developer makes the astute observation that, even with all of the emphasis recently on agile methodologies and process, motivation by team members is really the most important factor in project success. He says that talent and process should mainly be seen as tools to achieve competence on the part of the team members.
This author counters the recent myth that if we could just come up with the right programming language, development would be easy, and the frequent corollary about "user programming". He points out (as Fred Brooks did in No Silver Bullet) that writing the code is not what makes programming difficult, but rather the analysis and thought that goes into the process.
Agile methodologies started out in small, non-traditional organizations, but as they have gained acceptance, more and more larger (and conventional) IT departments are trying their hands at using them. This article looks at some of the large-organization factors that tend to make agile less successful.
The conventional wisdom is that successful GUI test automation is extremely difficult (if not impossible). However, this article discusses some new techniques and philosophies that are turning that around.
One of the most time-consuming tasks of test development is determine the combinations of test input to use for the various tests. This article gives some tips about how to select the most salient combinations and how to use common desktop tools like spreadsheets to make the task easier.
Many web-based applications have a large volume of form fields. Good testing practice requires us to develop effective tests using equivalence classes and the like. This article explains a heuristic for creating effective test data.
Now here's a kid with some skills that I'd like to have on my test team. He fixed this long-standing bug in the Firefox web browser.
Just like adjusting to agile methodologies requires developers to adopt a new mindset, testers need to adapt to the differences in agile, as well. Here are five simple tips to be successful on an agile team or project.
Online Python (and other language, such as the new one for Google Go language) interpreters (technically, REPLs) are nothing new. But this one adds a twist by visually showing the execution of your script. It's a great way to understand the structure of your program.
If you do any work with Java, no doubt you make liberal use of generics. However, getting started with generics can be difficult. This comprehensive FAQs covers generics from start to finish.
Test-driven development based on unit tests is really helpful to improving your code quality. This tutorial gives you some great ideas to improve Java code with JUnit, especially if you use JUnit in Eclipse. Some of the topics include data-driving testing and using JUnit categories to group tests.
Many developers switch between working in Visual Studio and Eclipse. This handy chart of common keyboard shortcuts shows the shortcuts for both side by side.
While, generally, I’m a pretty organized and productive person, one of my “dirty little secrets” is the tendency to procrastinate, especially when I feel overwhelmed (seems counterintuitive, huh?!). This motivating article gives four suggestions to stop procrastination and keep it away permanently.
Even if you aren't looking for a new job right now, it's still a good idea to keep an eye on salary trends to make sure that you are being compensated fairly in your current position. The key item in this survey is that technology salaries are headed up, but basically are just compensating for declines from 2008 and 2009.
At one time or another, most of us will be called upon to give a presentation of some type. Many people don't feel comfortable giving presentations. Here are some tips on things to steer clear of when planning your presentation.
As much as developers hate to be interrupted when they are "in the zone", asynchronous interruption is just part of any type of work. This programmer presents some nice tips on how to avoid the negative side effects of interruption and even use them to your advantage.
More and more technology jobs are moving to rural places due to lower cost of living (meaning lower salaries) and lower prices for utilities. Would you be willing to move to a more out-of-the-way place to stay in IT?
Esther Schindler takes a look at the 19 programmers profiled in Programmers at Work in 1986 to see where they've gone over the past 25 years. Many of them are folks that quite a few of you may have never even heard of.
Believe it or not, this year marks the 25th anniversary of the C++ programming language. Read this interview with the Bjarne Stroustrup, now professor at Texas A&M University, about how he designed the language.
Right or wrong, technology workers are stereotyped as not liking to work together. Here are some tips for how to use technology to get techies to open up and collaborate.
As knowledge workers, our greatest asset is our mind. Here are some suggestions for keeping your brain in good shape.
According to Money Magazine's annual survey, software architect is the top job in the USA. The focus on the creative aspects of the job along with the collaboration and interaction with business that architects have.
Sandvine reports such interesting findings as Netflix streaming accounts for 20% of US bandwidth usage between 8 – 10 PM and Asia-Pacific monthly usage is 3 times that of North America.
CHP, which stands for Create Hidden Process, which is essentially what it does. It launches another application (either GUI- or console-based) with a hidden window. Thus, you can use it to run batch files or other utilities in the background without displaying a window.
OffiSync is an add-on for Microsoft Office (2003, 2007 and 2010) that allows you to easily work with documents from Google Docs and Google Apps. Some of the features include opening/saving Google Docs directly in MS Word, collaborating in real-time with others from within MS Office applications, and easily sharing documents inside and outside your organization.
PDF Rider is essentially a GUI for the great PDFTK command prompt tool. PDF Rider allows you to merge/combine PDF documents, delete or extract pages from a PDF document, rotate pages, encrypt or decrypt a PDF file, and much more.
Harmon.ie is a toolbar add-in in MS Outlook 2007/2010 that integrates Outlook with Sharepoint and/or Google Docs. You can drag-and-drop e-mails, edit documents within Outlook and much more.
Atchoo is small utility that adds Outlook-style pop-up reminders in Windows to your Google Calendar account. You can even use standard to your Snooze time.
I'll bet you probably didn't know this about figs! And after reading this, you'll probably never look at a fig (or that package of Fig Newtons) the same way again!
Want to put a little twist on your dummy text for your application mock up? You could hire Snoop Dogg, but this is probably a cheaper and just as humorous option. Or you could use literary classics instead.
Optical illusions fascinate me. I'm not really sure why. This article explains the neuroscience behind how and why they work using some excellent visualizations.
After struggling to find a job for two years, this guy put out his virtual shingle by that requesting interested employers send him job offers! Pretty creative and humorous approach.