Saturday, 28 September 2013

Buying a House in Auckland - Mortgages and Interest Rates

This post retraces a section of the house hunting and buying "journey" that my Wife and I have been on recently; having bought a house in Auckland. Many aspects of the process were both trying and interesting - and I reckon, worth writing about. In this post I ramble through a few of my thoughts on mortgages and mortgage repayment, interest rates, and loosely how they relate to the 2008 Global Financial Crisis (GFC).

Interest rates

We have found a few particularly useful resources for coming up-to-speed with what's gone on historically with interest rates in NZ and globally, including the Reserve Bank of New Zealand's (RBNZ) website, which provides a great overview of what's happened with fixed and floating mortgage interest rates since 1990. Also, Tony Alexander's weekly overview (includes a useful "If I were a borrower what would I do?" section), which is quite candid, and very useful. I found the following chart on the RBNZ website...

[Source - The Reserve Bank of New Zealand:]

Interest rates and the GFC

On about this date five years ago, the US stock market crashed. Apparently there were actually a few hours on 29/09/2008, when the US stock market went into free-fall, that it was thought the entire US economy could melt down - not just the stock market.

I find the RBNZ chart (above) pretty interesting. My layman's interpretation (which could be entirely misguided!) of that the huge drop in interest rates in 2009 is that it was a response to the US Government flooding the market with cheap credit to keep the economy going following the GFC. And the steady hike in interest rates prior to that, is presumably what led to the sub-prime meltdown that triggered the GFC. Vast numbers of sub-prime borrowers in the USA no-longer being able to afford their mortgage repayments - presumably due to escalating interest rates(?) - defaulted on their payments, causing the whole securitised house of cards to collapse. Happy times...not!

["A Metaphor for The Global Financial Crisis" - Source - not provided (I like the image, but I don't like the site it came from)]

Mortgages and mortgage repayment

Thinking about the the GFC, and looking at the amount of money we will be borrowing on our mortgage, the repayments required on the mortgage, and what's happened with interest rates in NZ over the past few somewhat unnerving. Still, this process (of borrowing a large amount of money to purchase a home) seems to be an entirely acceptable financial risk, a long standing tradition, and perhaps even a rite of passage - at least, to most first-home-buyers in NZ, and to the banks that lend them the cash. That being said, provided nothing terrible happens with the market, our income, or our health - and we have our insurances setup right - we will be able to make our repayments and have a house to call our own. That is a pleasing thought. Here's hoping!

["Our House!" - Source, TradeMe:]

Mortgage repayment structure

So anyway, our research has essentially reinforced our thinking that trying to predict what's going to happen with interest rates is probably a mix of black magic and luck, and at best, an educated guess. 

With regard to our repayment structure; we think that it's best for the most part to map out we think is going to happen with our own circumstances over the next few years, and assemble a fixed repayment structure around that. The theory being that we may have somewhat more control over what happens with our own situation than the global financial markets (at least, so we hope!).

Some useful links for Kiwi home-buyers looking at mortgage interest rates: 

Parting thoughts

Our "house hunt" has been a pretty interesting journey. I'm thinking it'll be useful to document our experience further and I hope to bang out a couple further blog posts on related matters such as the house hunt process, etc, also. For our own future reference and perhaps to help others who may stumble across this blog.

Monday, 9 September 2013

Rewriting and/or Refactoring Software - Recommended Reading

As time goes on, the world is becoming more-and-more automated by software. This essentially also means that there is an exponentially growing surface-area of legacy application code. This matter is especially pertinent to older software product companies, which may have deep bases of legacy of code to grapple with.

Here are a few recommended readings for those who deal with legacy code...

Refactor vs. rewrite

Joel Spolsky wrote the following article way back in 2000, entitled "things you should never do, part 1":

Spolsky is a very good writer,  and expresses simple ideas very well. This article says that it can easily become a strategically disastrous move to rewrite an application from the ground-up. Spolsky recommends against doing that, if at all possible.

On the other hand, there Dan Milstein prodives a counter-argument to Spolsky's, in the following recent response (only 13 years later!):

The "strangler application"

Martin Fowler also gives us some options around how we can better manage the replacement of legacy software with new software, by applying the "Strangler Application" pattern:

Coined by Martin Fowler, this pattern enables the gradual phase-out of a pre-existing codebase into a new one. Fowler of course makes it sound far, far easier than it actually is (or would be). Like Spolsky though, his thinking is clear and he makes a good point.

A recent article (July 2013) written by Paul Hammant discusses a few "strangler application" initiatives that he has been involved with at ThoughtWorks:

If you read nothing else in Paul Hammant's article, go to the the "best practices" section at the end and just read that.

Technical and innovation debt

Ward Cunningham introduced us to the concept of technical debt as early as 1992 - really this is just a version of the old economics mantra of "no free lunch", translated to software engineering:

Then Peter Bell reminds us of the perils of not taking the opportunity to aspire to the cutting edge and resting on our laurels (that is, current/former market success), with his article on "Innovation Debt":

Innovation debt is essentially technical debt, but applies to people, processes and businesses - instead of nuts, bolts and code.

Refactoring legacy code

Michael Feathers provides us with some highly recommended reading on refactoring and working with legacy code in his book of the same name (I've bogged/reviewed on this book here previously):

Feathers defines "legacy" code as essentially being any code that is untested or currently untestable.

The book is written in the style of the "Gang of Four" Design Patterns book - there are three sections; the first sets the stage, introducing Feathers' reasoning, definitions, and some tools. The second section is scenarios (essentially suggestions as to how to apply patterns to deal with problems, like "My Application Is All API Calls") and the third is a reference for a stack of dependency breaking patterns.

Of course, there is also Martin Fowler's original book on refactoring:

To me, Feather's book however seems to be a much easier read.

Sunday, 8 September 2013

"The Good, The Bad and The Ugly" - a Review and an Observation

Watched this film yesterday, on the recommendation of a person who's judgement I trust. Also, it gets a pretty high rating from IMDB and Rotten Tomatoes.

What I realised is that like many great movies, above all, what makes this film great is it's study of the composition of the three main characters. "The Good" (Eastwood) and "The Bad" (Van Cleef) are consistent in their behavior; fair and ruthless respectively - they are interesting elements. "The Good" is essentially a Spaghetti Western version of "Robin Hood". "The Bad" is simply a complete psychopath. By far the richest and most interesting character is "The Ugly" (Wallach) - AKA, "Tuco".

Tuco is vengeful, confused, greedy, clever, frustrated, skilled, brave, passionate, conniving, cowardice and empathetic - the list goes on. Despite this tangled mix of characteristics, as a character Tuco remains uncompromised and believable - he is essentially a survivor. Tuco is seemingly suspended between the hard lines of the other two key characters (Bad and Good). In-fact, it is my opinion that Tuco is a close-to-ideal study of what it is to be human.

Most of us (at least most people I know) tend to swing from being the best we can be, to can I say this...more "relaxed" with regard to our own moral standards. Sometimes we do our best, sometimes we could do better. I think that this is part of what being human is about - the environment we find ourselves in regularly (often unpredictably) challenges our intellect and our moral aspirations.

An observation that I have made of life; it seems the more we relax our own moral standards, the higher the stakes of the intellectual and moral challenges we encounter become. A potential corollary of this observation is - the more we relax our own moral standards, the luckier we need to be in order to survive. 

Tuco is perhaps the portrayal of a person who is more relaxed about his own moral standards and is subsequently more "challenged" than your average Joe. He is certainly a very lucky character.

Migrating (and Open-Sourcing) an Historical Codebase: SVN-to-Git

I have a SVN repo on my local machine that I have been shoving stuff into since before I knew how to use revision control systems properly (...