Tuesday, September 28, 2010

Save for your Winter Heating Costs all Year Long without Temptation

When the winter comes along, homeowners in most parts of the country feel their wallets get lighter. For example, I predict that I will use about 500 gallons of kerosene to heat my house this winter. At $2.80, that's $1400! Unlike working with a utility company to get a budget plan where they estimate your average monthly utility expenses and charge you that, I have to save up before hand in order to pay the delivery man when he comes to fill up my tank. And with a 100 gallon minimum, the smallest charge I'll have is around $300. Yikes.


The other issue most people have is the temptation of spending that $1k they have had sitting in their bank account all year.  As the balance grows, so does the desire. The same problem happens when a homeowner doesn't have a tax escrow for property taxes, they must be disciplined enough to save for property taxes. One product banks offer is a tax savings account to save all year and only withdraw when presented with a tax bill. We'll use the same principle with saving for heating costs: a "holiday savings club" account.

Obviously a holiday club or holiday savings account is normally used to save all year long for your year end consumerism. Most credit unions offer them and a few banks do as well. What happens is you make deposits year round and then in October or November, the bank will transfer the entire balance to your regular savings or checking account, earning you a little interest in the process. Most holiday savings accounts have restrictions on how many withdrawals can be made during the year and some will even close your account it you make more than one early withdrawal. While its possible to blow your heat savings on a new car, by making it more difficult to access the funds (some require you visit the branch for an early withdrawal) you reduce your temptation. And if a major emergency does occur, the funds will be available. Setup direct deposit or an automatic transfer and you should be all set for Jack Frost nipping at your nose. Use a summer savings account or a vacation club savings account if you live in a warmer climate and need to cool down in the summer.

Another alternative would be to open an online high-yield savings account and setup direct deposit or automatic transfer. Being separate from your regular bank should keep your eyes off the money while earning 1%. ING Direct and HSBC Advance are the largest. I have HSBC and I am unsatisfied with their customer service but like the fact that by having a regular checking account with them I can carry out transactions at my local branch.  You could really keep your hands off the money by getting an X month CD depending on the time remaining until the winter. However, nowadays most CDs wouldn't earn much more interest than a savings account and most earn less than 1% of such small amounts and short time periods.

Whatever you choose, the most important thing is to have discipline. This is not meant to be investment or tax advice and you should consult with a financial professional before taking any course of action.

Let me know if you have any tips for fueling your house with your bills. I wonder at what point it becomes more economical to burn the money for heat.

Saturday, September 4, 2010

Avoiding Being Eaten by a T-Rex: Why your Software Development and Deployment Process Should Matter

Recently my wife and I re-watched Jurassic Park. When I was a little kid, I used to believe that the tropical storm was the main reason for the power outage and problems on the the island befalling the guests. Now I know that the real problem was poor IT management and processes. Use some of these best practices to avoid being a raptor's lunch.

Could you imagine hiring this guy?:

Dennis Nedry is essentially a consultant. He doesn't know much about what goes on in the park, he's only hired to fix bugs, and he's given poor resources and poorly compensated. Giving someone like that access to
your production code is just a recipe for disaster.

Scheduled & Restricted Production Deployment - Your live environment should not be free to be updated by anyone at anytime. In a continuous update-release product you should schedule production deployments for a time which is least likely to interfere with other business operations and schedule other business operation at a different time from the release. For example, early in the morning bi-weekly would be a great time to update your dino park. No tours, feedings or events should be scheduled and the weather would be generally more cooperative. A designated and trustworthy pair of developers should perform the deploy together and perform the required testing afterwards.

Who's watching this guy?

Code Review - I have a feeling that debugging the phones does not interrupt the security and power systems on the island. I also have a feeling that most people question the need to reboot those systems if they had a change log or diff for each release. A good practice is to generate such listing for each deployment and have it reviewed by a second party.  For larger changes or changes that present a problem to security, a more complete review should be performed. Also, tying into the previous practice, you should have a standard script or deploy method and any deviation should also be part of the code review process. A source control system would make finding changes easier.
One thing they did right was have source control.

Test Environment - Your development environment should never, ever be your production environment. I'm pretty sure if you are compiling and it affects the production system, you're doing something wrong. If you have a local development environment, you can run all your unit tests and make all your mistakes safely before you put everyone's life in danger.  You might not kill an entire population, like if you worked on a nuclear reactor, but you might lose important time or data. In a multi-developer environment it might be a good idea to have an individual development copy and a collective development copy. Adding an additional step in the pipeline, creating a test or practice environment, will help find errors in your deployment environment. Treat this as if you were doing an actual production deploy. If you're missing any files or there are conflicts, testing here will highlight them. Having a test plan developed for each change and running that test plan in each environment gives you the most robust management.
If you can make this you can make a simulator for your test environment.

Stakeholder Management - If IT is important to your organization, it is important to keep everyone involved on board.

Not as nice as I remembered.
Chastising your workers for "their own mistakes" of a personal nature is not a good way to keep morale high. Also, not keeping track of the progress of Nedry or properly educating him in the business side of the island was a lack of 2-way communication and fulfillment of business goals. If compensation becomes an issue, then it might be wise to consider other vendors or a different IT budget to prevent sabotage, poor performance or quitting.
"Dennis, our lives are in your hands and you've got butterfingers?". Sounds like he was important enough to be better managed.


Well I hope you learned enough to avoid becoming a snack. If you have any other best practices you use, leave them here.