Thursday, March 12, 2009

The "Time" has yet to come

Last week Time Magazine ran a special on the US financial crisis.  The first article is House of Cards: The Faces Behind Foreclosures. The article is centered on two Kansas City homeowners both facing foreclosures. I think that a few choice quotes from the article really speak to the root of this US financial crisis.  People simply don't get "it".

The crisis is fundamentally about wanting too much at once.  But the face it has consistently shown is one of over-leverage. Over-leveraged people, over-leveraged companies and an over-leveraged government (ostensibly all the same thing).  

This article tries to paint a picture of those getting those getting the short end of the stick, but all I see are over-leveraged people out of time.

A few choice quotes:
We have entered the one-strike-and-you're-out era. One lost job. One medical emergency. One bad risk or misjudgment of the heart...
We're geared to believe that risk begets reward and our tomorrows are brighter than our todays. One-strike-and-you're-out is a neck-snapping reversal for a culture accustomed to assuming that fate is a welcome friend...
People like Paula Stevens and Joseph Zachery weren't flipping houses or lying on their loan applications. They didn't pile up mountains of credit-card debt. They worked hard for what they had and shared their modest portions with others...Their bitterness stems from a feeling that they've held up their end of the social contract, but now the terms of the deal have been rewritten by malign forces....
Not everyone who has fallen behind on a mortgage is a loser complicit in the housing collapse.
That last line is from the closing paragraph. (emphasis mine) So the big question here is "are these two people 'losers'?"  Are these two really innocent bystanders in the housing collapse? I think the answer is no and the reason should be clear simply by analyzing the risks under-taken by both parties.

Joseph Zachery
Occupation: Firefighter from 1986 to recent. Ended at $60k / year.  
House:  $100k house, needed renovations
Worked a second job: Like most firefighters, he always had a second job...he started his own business, demolishing houses condemned by the city.
He used the equity from his house to buy demolition equipment, resulting in a mortage where "he owed nearly twice the original purchase price."
Crisis: he gets into an accident on the job.

He's shuttled around between hospitals, he gets full disability from the fire department (plus some electroshock treatment?) and he's now living on pension. He get $50k / year. It costs him $800 / month for medical, leaving him with $2,400 for everything else.  But get this, his mortgage is $1,600! On a 100k loan that doesn't make any sense.  But the problem here is that he actually owes 190k which he's paying off at 9%.

So why did he end up here? Was it the work accident? What did he do wrong? What are the risks he took?
  1. Leveraging non-existing home equity:
    He didn't pull out just the home equity he "actually had" from his down payment or his mortgage payment.  He pulled out "speculative" equity that the bank extended based on the prevalent housing prices at the time.  He wasn't borrowing "his own" equity, he was borrowing equity that he hoped the house would have.
    Rather than taking out a business loan for his small business, he took out a loan against his home meaning that a crisis in his life would likely cause his to lose his home.
  2. Leveraging his ability to fix the home:
    As stated, the home was a fixer-upper. He was banking on his ability to fix the house in order to prop up the value of the house.  Of course if he wasn't able to fix the house for some reason, it's value would bleed from lack of maintenance.
  3. Leveraging his second job:
    He knew his pension income and he knew his medical payments, he knew the money he had to work with. Based on the fact that he's losing his home, it's pretty obvious that he wasn't going to be able to keep his home on just his pension.  He needed that second job to keep him going.
  4. Under-insuring:
    This is a really big point.
    There is no indication that he has disability insurance on his second job.  Here he has a second job that he needs to keep in order to remain solvent. He's dependent on his own mobility and capacities. But he's not insured if he loses them.
    Yes he had disability from the fire department, but that was only for his fire department salary.  Where's his insurance for his other business?
    He buys 100k in equipment, but doesn't buy 100k+ in disability to cover his potentially catastrophic liabilities.
So if you look at the risks, he was basically gambling that this wouldn't happen.  He's unmarried, he's supporting his mother, his kid is in college, he's has no "backup support". 

He's a firefighter, he runs into burning buildings for a living and he's gambling his livelihood and his home on the fact that he won't be injured.

So he got injured and lost his home.

Paula Stevens
Occupation: Gateway tech support. No college degree, serial "entry-level" worker. In her best year she grossed 42k  
House:  3,000 sq ft, purchased in 1994. Re-financed 3 times, now owes 159k (@ 9%!)
Crisis: lost her job at Gateway and can't find one that pays as much.

So the obvious risks:
  1. Living without a buffer:
    "It takes $14 per hour for me to meet my bills...That's what I was making at Gateway when I was laid off. But no one wants to pay that much..."
    If you're making $14 / hour, you need to be living off $11 or $12. How else are you going to save up cash for retirement or even just emergency expenses like job losses?
  2. No professional development:
    She made it to 56 and somehow doesn't have the skills that she can market for $14. There's no sign that she took college night courses or professional training.
  3. Where did the equity go? the savings?:
    She's 14 years into a mortgage and she owes 159k. The median home price in Kansas City during the last recent peaks was just under 190k.
    But she bought in 1994, close to the bottom, 14 years ago.  She most likely owes more on the house than its original asking price. And she's paying 9% on it to the tune of $1,400 / month.
    And where are her savings? It doesn't seem like she had retirement plans of she would have money right now.
  4. Family Obligations: 
    ...but her oldest daughter, Maggie, 28, has a new baby and is enrolled in nursing school. "I just have to get her through that," Stevens explained
To put #4 in context.  I am currently living in the heart of Kansas City in a luxury apartment in a premium location. I have 1100 square feet, 2 bedrooms and 2 full baths. In-suite washer/dryer/dishwasher and a few other luxuries.  You could very comfortably have two people and child here.

I pay less than $1,400 after utilities.  That's less than her mortgage and this is a luxury suite. You can get an older apartment or a townhouse down the street for $600 to $900.  That would make it a lot easier to balance the bills.

So where does that leave Paula?  She's obviously over-extended, but all of the signs are pointing to her basically not having savings.  Her telling quote is this defeatist line: "That's how it works. You just keep starting over."  Rather than spending her life accumulating, she just kept starting over.

My personal opinion (because it's my blog): neither of these people should be in their homes.  They should both be renting, either really close to family or really close to public transit.

Disagree? I'd love to hear other thoughts.

Saturday, March 7, 2009

The US labour problem

Here's a great quote from the founder of Mint.com on the mint blog.
While the downturn in the economy has meant a flood of resumes for sales, marketing, and general business positions, the engineers, scientists, and researchers who actually make the next innovations possible are still in very short supply.
I think that he really captures the fundamental US problem.  All of the job futures are in sciences & engineering.  But the US has been a services economy for decades. Bankers and financial analysts don't actually "make" anything.  Lawyers and Accountants don't really "make" anything.  They are fundamentally just business overhead. Sales people help connect people and products, but a year in the US will show that we clearly already have more than enough people in Sales and Marketing.

Yeah, maybe I'm biased b/c I work in the computer industry.  But if you look around at the "future jobs" boards, they're all centered around "making stuff".  And that's what the US needs to do become financially solvent again.  They need to "make stuff" that they can export.  You can build a better battery and export that to China.  You can build windmills and power stations and ship them across the world.  You can train great scientists and have other countries license their technology.  But you can't export Lawyers and Accountants.  And you certainly can't export US bankers :)

Of course, the US has had some serious educational issues over the last couple of decades, especially in the realms of education in "Math and Sciences".  So we have a populace that's ill-prepared to tackle the new problems.

The mint.com founder (Aaron Paatzer) suggests an increase in the H1Bs and other foreign visas. And he has a point.  Smart people from around the world can migrate to the US and enjoy a US quality of life. It would make a lot of US citizens unhappy and importing "the rich" would definitely "make the poor poorer", but I strongly suspect that's going to happen anyways.

Maybe making the US into a mecca for brains will provide it a means of conquering its financial crisis. It's not a great deal for the "average American" who will still see a decrease in quality of life, but they're going to see that anyways.  Maybe salvaging lifestyles for the top 20% of earners will at least provide reason for continued US solvency.

Monday, March 2, 2009

Big vs. Small in IT

Posted this to Hanselman over the weekend, and it's probably worth a redux in my own blog.

The underlying issues being discussed is that Joel Spolsky ripped in to Uncle Bob Martin. A couple of summaries are available.

On to the reply:
@Scott, I think a valuable read relative to this topic is Malcolm Gladwell's book "Outliers". Bob makes that comment that "it takes 5 years for a developer to really become experienced", which is a statement backed up by the research in this book (10,000 hour rule). A lot of this podcast felt like "dancing" around the subjects discussed in the book.

The core of your podcast is dancing around the question of "What is good enough?"

The definitions of enough vary quite dramatically from project to project and person to person.

In particular the definitions will vary by the size of the project / company. And this is where Joel and Bob really work at odds. They are coming from two completely different realms of project / company. Let's say there are 4 classifications:
  1. Small / Micro / Start-up
  2. Medium, established niche
  3. Large, thousands of users, typically a legacy base
  4. Web-scale, millions of users (Google, MS)
Now Joel clearly comes from world #1.
Bob is from world #3 or 4.
Scott, you're from world #3 (& now #4).

For most developers in world #1 or 2, Bob's SOLID principles are at best guiding lights for solving the "next big bottleneck". (And there's a lot to be said about first having bottlenecks worth solving) There is simply not enough value generated by writing interfaces for the large mass of internal layers that are never exposed. Lots of objects simply don't need a "single responsibility", because the cost to change is very low. In my simple DB app, I don't extend more than 1% of my classes, so why do I worry about the OCP? In "Fog Creek" world, there's a lot of leeway in the term "Quality".

The cumulative sum of generating unit test for vast swaths of Maintenance screens simply doesn't justify the time spent on this screens. In fact, most people in world #1 & #2 seek out tools (like CSLA) quite specifically to generate Maintenance screens b/c they just don't justify any custom functionality.

Let's flip this into a practical application. (with no offense to Jeff Atwood here)

I can tell you right now that StackOverflow will not scale to 100x as it is currently architected. If the number of StackOverflow users grows by 100x the entire architecture will need to change. No, I've never seen the codebase, I've just listened to the podcasts (Hanselminutes and their own) but just listening to the problems it's obvious that things would need to change.

For example, to achieve 100x:
  • They would need multiple databases.
  • They would need specialized services to push data back and forth.
  • Your rep score would be updated every 60 minutes by a service (not in real time).
  • There would be a server responsible for updating RSS feeds. Data about updates would be pushed to the DB and replicated to bulk insert files on the RSS server to manage the reads against the primary.

As I said above the SOLID principles would be a guiding light in solving these problems.
  • They would need to break out interfaces for "high-communication" features and build standard interfaces for communication (Web Services, Bulk Insert files, etc.).
  • They would need to reduce connectivity dependence. Web servers would read from local DB copies and update themselves periodically.
  • LINQ-to-SQL would suffer as tables became stored on different DBs. They would need an IOC model for managing connections at a table level so that they could point connections at the right spots.

Of course, in the process of growing by 100x, they would move from world #1 into #3. And the nature of these SOLID principles is that they become more valuable as the scope of the project grows and the available resources to build that project also grow.

I work for an ad network, so I live in world #2 & #4.

In one world we serve 100s of millions of impressions in a day. In another world, we operate a user interface with 100s of users. The definition of "Quality" varies dramatically between these worlds. In one world, we can build drag & drop UIs with MS AJAX and leverage the servers for good response times. In another world we write these massively scalable and distributed apps with lots of interfaces and IOC and robust, error-resistant code.

When Joel talks about Bob having "never written much code", he's talking about Bob not having written very much of the type of code that Fog Creek writes.

When Bob lays out the framework for a new project he simply has too many tools that do not provide value in Joel's world.

When Joel lays out the framework for a new project he ignores many of the tools in Bob's framework because he's never really needed them before.

And that's OK... I mean look at StackOverflow, it already has every dev on its mailing list :). It doesn't actually have to grow 100x to cover its potential market.

Sunday, February 1, 2009

IT misunderstood again

So found this off the wire:

Here are the six areas:
  1. Management / Methodology / Process
  2. Database
  3. Messaging and Communication
  4. Architecture
  5. Security
  6. Networking
Now for skills that are down:
  1. Application Development
  2. SAP & Enterprise Development
  3. Operating Systems
  4. Web / e-commerce
  5. Systems Networking

So in classic fashion, those trying to research the industry have fundamentally misunderstood the industry.  And I think that the problem is obvious, how do you actually "track skills"?

The report claims to track over 354 IT skills.  That's a lot of skills, of course, it could also just be a lot of fluff.  Anyone who's looked for a job in IT knows that the market is acronym-crazy.  It's also short on any form of acronym meaning. 

I mean, what the heck is the difference between "Networking" & "Systems Networking"? According to the stats, that difference is worth 3%+ in pay. 

What counts as "Web / e-commerce"?  It's obvious that general e-commerce is becoming commodity, that's to be expected.  But is "web" really worth less?  Facebook app development, Google App Engine, Microsoft's Azure, Amazon's AWS... these are all "Web" technologies.  Where do they fall?  Heck, Azure and AWS are also Operating Systems technologies.

So get that, skills in AWS have actually dropped in value. Right.... Huh?!?

I think the reason the CEO has "never seen anything like this before" is really that he's asking the wrong questions.  Trying to track IT pay by grouping across these massive skill sets is doomed to fail.  In fact, trying to track IT pay by any grouping of skill set is seriously flawed.

And the reasons are simple:
  • There are too many IT skills and new skills are constantly being created
  • Each skill has a lot of gradients
  • Skills with different names can be very closely related
  • Skills are constantly being picked up by experienced people
So how anyone plans to track that is beyond me.  Last year's "Database skills" are not this year's and they're not next year's.  Why you would group them under the same category each year and then pretend that they correlate demonstrates a misunderstanding about the way this industry works.