November 2008 Newsletter
We should be careful to get out of an experience only the wisdom that is in it—and stop there—lest we be like the cat that sits down on a hot stove-lid. She will never sit down on a hot stove-lid again, and that is well; but also she will never sit down on a cold one any more. –Mark Twain
Time is the coin of your life. It is the only coin you have, and only you can determine how it will be spent. Be careful lest you let other people spend it for you. –Carl Sandburg
The function of good software is to make the complex appear to be simple. –Grady Booch
I have no special talents. I am only passionately curious. –Albert Einstein
Well done is better than well said. –Benjamin Franklin
The secret of joy in work is contained in one word—excellence. To know how to do something well is to enjoy it. –Pearl Buck
If only there were evil people somewhere insidiously committing evil deeds, and it were necessary only to separate them from the rest of us and destroy them. But the line dividing good and evil cuts through the heart of every human being. And who is willing to destroy a piece of his own heart? –Alexander Solzhenitsyn
You don't stop laughing because you grow old. You grow old because you stop laughing. –Michael Pritchard
The vitality of thought is in adventure. Ideas won't keep. Something must be done about them. –Alfred North Whitehead
Incremental development, which generally means delivering value/features a little bit at time, usually involves iterative development. This article explains how to do it in a more classical development methodology.
Despite the numerous advances in the past 22 years since Fred Brooks published his seminal article, this author says that there is still not a "one-size-fits-all" approach to software development. As the agile "revolution" has demonstrated, each organization must find what works for them.
Google developer Steve Yegge discusses some of the practical concerns and pitfalls to watch out for when you use any type of model or pattern in application design. He says that "properties pattern", which defines the characteristics of an object or application, is universal and should be the starting point for all other modeling.
IT and business alignment and the conflicts between IT and business groups are frequent topics in IT circles. However, this article is different. It explores, in an understandable and comprehensive way, the psychological differences that cause the conflicts in the first place and offers suggestions for how to make breakthroughs on this level.
This summary of a recent conference panel discussion presents the thinking of some of the industries most respected people, including Fred Brooks himself, about whether or not software development has advanced in the past 20 years in terms of methodology improvement.
Defining the business value is certainly a key task in the early stages of a project. This author also emphasizes that your business cases needs to clearly document what success looks like (metrics) and when the project should be cancelled/abandoned because it is not meeting the objectives.
A seasoned development manager makes the case that the difficult aspects of development or infrastructure projects should be tackled first. His main point is that leaving the difficult aspects to later in a project gives upper management a false sense of really how far a project is along.
Tim Bray, the creator of XML, says that the economic turmoil is a great opportunity for developers to adopt agile techniques. He isn't promoting any specific methodology, but more the basic agile concepts, such as focusing on quick delivery of a small number of features and frequent releases.
Scripting languages are starting to go mainstream for use in application development. Here are some lesser-known languages that might be just the thing for your next project.
Most of you will recognize Strunk and White's Elements of Style as the canonical reference for effective writing. This author applies some of the precepts to software development, such as sticking with a design that works and sticking with standards where possible.
There are lots of articles about the "care and feeding of developers". This one is different. The author focuses on the fact that the fundamental motivator for programmers is the work itself. He says that the main things that drive developers away is working on projects that are easy, tangential, and/or that no one will use.
With the global economic crisis, IT needs to understand some basic facts to continue to be relevant to the business: The CFO always gains power in tough economic times and, for IT to be an important factor in sustaining the business, they must know how to measure and communicate their contribution to the business.
This author discusses (and to some degree laments) that many developers are required to take on the role of project manager on their development efforts. Nevertheless, he doesn't see this as a completely bad thing, but rather as something that developers need to adjust to.
This author takes 10 common general proverbs and gives a unique look at how they apply to the practice of programming. These are insightful and provide good perspective on how software development and IT fit into the "big picture" of business and life.
This article discusses 14 typical project management mistakes. The key takeaway from this article is that project management mistakes fall into three main categories: poor/inadequate planning, poor communication, or ineffective resource allocation.
This is an excellent presentation that explains with great supporting detail many of the well-known matters that increase or decrease productivity among developers. Two of the key items are that collaborative team "war rooms" work and working more than 40 hours per week doesn't.
Sadly, many organizations are faced with ailing (or failing) software development projects. Here are some ideas for identifying the characteristics of such projects and for helping to bring them back from the brink.
Not every organization can be one of the best places to work, but what makes for a great IT workplace? This article might appropriately be sub-titled "The Care and Feeding of Developers". It covers the "soft" aspects of creating and sustaining a successful programming culture and environment.
A number of agile development pundits offer their definitions and criteria of good test cases. Even if you don't agree with their ideas, it gives some good food for thought for how to build good tests for your applications.
Even if your software development process isn't agile, you can still use agile techniques to define tests. And one pundit says that agile is the natural and best way to do test development.
This article demonstrates the value that testers can provide to a project in the requirements-gathering and design phase in pointing out how users may do things that the developer never anticipated or expected and the negative consequences that they have. The example presented is with an aircraft control system that allowed the cargo doors to be opened during flight!
Everyone offers some panacea (or "silver bullet") for the problems of testing. This article doesn't. Instead it recommends a simple way to improve efficiency and repeatable of testing by using reusable test data.
It is not uncommon for test automation to be undertaken without a plan. Test developers must not only be good developers, but also good testers. Here are some great and simple tips for developing good automated tests.
The original creator of the open-source Abiword word processing package opines that one of the core disciplines of good development, source control (a.k.a., software configuration management) is rarely taught. He provides a remedy to this problem via a series of excellent, practical articles.
Pivot tables are probably one of the most powerful tools in Excel. However, learning how to create and use them often seems to be a black art. This simple, step-by-step tutorial with a good example takes some of the mystery out of them.
This extensive tutorial explores the REST-ful way to implement distributed systems using the Web (and web services) as your platform.
Web services and services-oriented architecture are increasing in importance as web-based distributed applications become the norm. This article gives some good background information on what web services are and the various protocols involved.
A good, easy-to-read font is one of the best ways to improve programming productivity. This excellent article reviews many available fonts and rates them on a variety of criteria. It also shows examples of each with and without ClearType. Many of the fonts are free and the others are relatively inexpensive ($8 - $20 each).
On most projects, most of the development effort is on the front-end (presentation layer) and business logic. However, the back-end database is probably the single most important aspect for performance, flexibility, extendibility, and maintainability. Here are some great articles on proper database design.
Effective writing can seem daunting, but it doesn't have to be. This article provides some tips on proving more punch to your writing by reducing some "killer" words.
While there is some current debate about the value of college education and what it actually prepares you to do, most people will take that path to a professional career. But, most colleges teach skills in a narrow "band" of knowledge. Here are some things that you need to know to be successful in most any line of work.
Office politics are a fact of life in most workplaces, even though most people claim to dislike it. Here are some tips for navigating the rapids of office politics.
All organizations want to hire the best and brightest. But managing talented people is often a difficult task in and of itself. Here are some suggestions for how to approach managing these overachievers. For more on this topic, be sure to check out Philip Greenspun's classic essay.
Even with the economy sinking, salaries for COBOL programmers are on the rise. This is due to a number of factors including retirement of many experienced COBOL developers, lack of large off-shore/outsourced COBOL resources, and the fact that mainframes are still a part of the back offices of many companies and will be for the foreseeable future. [I'm kind of glad I took that COBOL class in college, now!]
The always insightful (and sometimes controversial) Jeff Atwood says that to be a successful developer one needs to develop good marketing skills. Not marketing the traditional sense, but good ability at getting people to understand what you are doing and then to develop (no pun intended!) interest and excitement about it.
Many organizations have bonus structures based on individual performance or meeting overall company goals. This author suggests that a better scheme is to base bonus on a single level where the individual is in the organization, so that cooperation is encouraged and the person can still have some control and observability of their contribution.
A UCLA business professor and researcher, Samuel Culbert, says that the annual ritual of performance reviews is ineffective at best and downright demotivating in most cases. He says that boss and employee approach reviews completely differently, pay is usually driven more by market factors than performance, and they are too subjective, among many problems he cites. His alternative is two-sided (boss and employee) reciprocal accountable where the boss has a real stake in the employee performance.
Even though oil and gas prices have been falling steadily recently, the other aspects of the economic downturn have again put focus on the value of telecommuting. However, the key for the employee is to show the boss the business value.
CNet looks back at some of the milestones in the development of the Internet from 10 different categories, ranging from the underlying technology to social media and Web 2.0 and more.
This research paper shows that online gamers are older (average age of 31) than the stereotypes and that women, while only 20% of the players, actually play longer than men.
Every company has the obligatory organization chart: Who reports to who, who's closest to the executives, etc. But there is a less well-known and undocumented, but equality important, element called the "culture chart": Who defines and controls the culture of the organization. This article discusses this and how you must be cognizant of it and how it factors into your success in the organization.
Most managers of development groups are plucked from the ranks of the programmers themselves and they are often ill prepared for their new role. Here are some tips about how to make the transition from "worker bee" to manager.
What types of projects are likely to make a programmer famous? Interestingly, most of the famous programmers are known for one single project and that inventing a programming language, game, or operating system is what is most likely to lead to fame.
This author starts off by stating the obvious: You can't make people accountable. However, he goes on to outline an effective regimen to make people want to be accountable, such as by making them feel that they are important and are doing important work and by having control over their ability to succeed or fail.
Your resume is often your "first impression" for a potential employer. This article suggests some tips to "tune up" your resume, including trying to trim it down to one page and removing fluff and focusing on strong language.
What are technology company executives worried about? It's not the economy, according to research into the 2007 SEC 10-K filings of the top 100 public technology companies. The #1 risk is competition and consolidation in the tech sector, cited by over 90% of companies.
IT leaders from a variety of industries discuss five things that they always want to hear from subordinates and five things that they hope their employees never say.
Workers need to have some dedicated time to just think (not do!) and one of the primary suggestions is getting out of the office at lunch to a place of calm.
With all of the discussion about the "old-boys network" and boy-friendly math and science classes, perhaps the overriding reason for the shortage of women in technical fields is the simple fact that American students have free choice in selecting their careers.
The Metro Ethernet Forum members are considering creating a peering exchange for carriers to allow easier traffic hand-offs between networks. Such an exchange might speed adoption of carrier Ethernet by making it easier for customers to reach locations not otherwise served by their primary carrier and reducing transit costs for services, which will be important with the growth of 10GB and 40GB Ethernet services.
Even though most telecoms aren't in as bad a position as financial firms, the economic crisis will have some impact on telecom industry, simply because telecom is highly capital intensive. Some even expect Sprint to go into default on its debt. On the upside, higher unemployment may be a boon to wireline carriers due to need to Internet access for job hunting.
Sometimes you have a desktop shortcut that you'd like to look at in Explorer, but there's not an easy way to do that. The Open Target Folder shell extension makes it a snap. It simply adds an "Open Target Folder" option to the context (right-click) menu in Windows that will open Explorer in the containing directory.
QNext initially looks like universal instant messaging client (works with MSN, Yahoo, AIM, GTalk, and more), but it really is complete unified communications client. It allows you to set up a secure VPN with other QNext users (on any of the supported platforms) and do audio or video conferencing, secure file sharing, group text chat, and even remote desktop sharing. (It looks like a nice cross-platform alternative to Gbridge.)
Excelixis is an excellent remastered version of the XUbuntu Linux distribution. It runs as a live DVD or you can install it, using the included installation utility. Excelixis really shines in the development tools department, as it includes many cross-platform tools, such as Netbeans, Eclipse, Anjuta, MonoDevelop and more. In addition, it has all of the Internet, multimedia, and graphics tools you'd expect on Linux. All of this is presented with a great GUI. If you want to try it out under Windows (or your existing Linux distribution), I recommend running the live DVD under VirtualBox.
If you use the wonderful PuTTY Telnet and SSH client, check out this site for 12 great add-ons to make PuTTY work even better. These tools will make you a PuTTY power user! And if none of these tools fit the bill, check out KiTTY, a fork of PuTTY, which integrates many of these features.
In most cases, the built-in Windows Task Manager is good for managing processes. However, in some cases, you need more details. MKN TaskExplorer shows performance and memory graphs for each process, which DLLs it is using, and the threads it has launched. It even allows you to stop and resume execution of individual processes or even individual threads.
MobaXVT is a free, portable X11 server with some built-in Unix (Cygwin) utilities. If you need to access X11 services from your Windows machine, MobaXVT might be just what you are looking for. It includes simply exporting of DISPLAY from remote systems, X11-forwarding via SSH, and a tab-windowed X11 terminal (mrxvt). And best of all, this is all included in a single portable executable. The site even includes a customizer tool, so that you can add other Cygwin utilities.
professor at UCLA has undertaken the effort to associate the locations in Tolkien's Middle-Earth with their
real-world counterparts. Who would have
This short video from almost 40 years ago shows what people expected technology to look like. Some of it is certainly science fiction, but other predictions are amazingly accurate.
On this interactive site, you can
explore some of the most famous journeys of all time, including the Lewis and
Clark expedition, the voyages of Marco Polo, Livingstone's travels in
Got an annoying song stuck in your head? Then bop over to Maim That Tune. They'll play you another annoying song so that you can forget about the original one! :)
This is an intriguing story about
how software piracy during the 1980s caused the failure of a
Morals and ethics form the foundation not only of ourselves, but of our society in general. You can take this morality quiz and help the researchers collect additional data on this topic, which is so relevant in this time of financial turmoil and in choosing new leaders for our country.