Wednesday, November 12, 2008
Jess:the life expectancy in the US is only 77 years according the the CDC
Is the current life expectancy or the life expectancy for people who are currently 20 and won't hit 77 for another 50+ years? Do we have a link for this?
Even if we change the model to 80 years (let's give medical science a little credit), that still leaves us with 45 years of working to 35 years of not working. That leaves us with 45 people working for 35 people not working.
Imagine that you're living in a (global) village with 80 people. 45 of those people do all of the hunting / gathering / farming / house-building. The other 35 people are either non-productive children or old people who sit around smoking pipes and eating food brought in by the other 45 people.
If you save 10% / year for 45 years, and receive no effective pay raise between 20 & 65 (i.e.: pay raise = inflation). Then you would need ~3.25% real returns (that's returns above inflation) for basically the entire 45 years to meet the goal of having 10x your annual income. That doesn't sound like much, but here's some perspective.
Right now TIPS bonds are offering 0.7% real returns (they were offering 0.0% returns just a few months ago). Real Stock market returns over the last decade are into the negative. If you earn 0% real returns one year you have to make 7.5%+ real returns the next, just to make it up, that's not easy.
What's more, you're subject to a very critical period. At year 30 you have about 5x of your 10x. From year 30 to 45, you're only going to save 1.5x (putting you at 6.5x), which means that you're relying on 15 years of solid returns to make up that other 3.5x. If you have a 5 or 10-year drought, you could end up way short. And a 5 or 10-year drought is going to happen somewhere in those 45 years.
Finally, we made the very unsafe assumption that your "real income" doesn't change. Realistically, your income increases over time.
According to the 10/10/4 model: "...by the time you are 65, you will need 10x your income immediately prior to retirement to retire at the level you want.."
So you need 10x your final income, not your starting or even your average income.
Let's say you're 20 and making 30k today. Your "10x" number is 300k. You save 10% for 10 years and save just over 1 year's worth of income (say 31k). At the end of 10 years you make the big switch and find a new job earning 45k (again, no inflation). Awesome for you!
However, now your "10x" number is 450k, but you only have 31k in the bank. You're behind, right? You're at year 10, you should have at least 10% of your target number, but you only have 6.8%. So what if you continue to plow along for another 10 years and then get another pay raise to 60k? Now your 10x number is at 600k, you're 20 years in to the plan but you're way behind the curve. You should have saved 120k (+ interest), but you're nowhere close to that number.
And then you have to account for medical. If you're earning 60k but receiving 10k in medical benefits (may be low-balling in the US), you now need 700k in savings (not 600k).
You can see where I'm going with this. If you follow the 10% savings route and you also follow a normal pattern of increasing income throughout your career, the 10x goal is very difficult.
- Your increasing income makes previous savings insufficient.
- High medical expenses inflate your "10x" number.
- You need consistent returns well above inflation and you need them at the right times.
Don't get me wrong, I'm a savings advocate. I save 10% and then some in tax-advantaged accounts.
But I make no pretenses of making it to 10x without saving more, getting lucky or making some savvy investments.
Again, the model presented above is very broken. Readers can follow this at their own risk.
Friday, October 3, 2008
Another blog reply, this time to a devlicious blog post by Derek Whitaker.
re-creating massive amounts of code is expensive and time consuming
Umm... no. If codegen is expensive or time-consuming, you're doing it wrong. If members of the team have a difficult time using code, you're doing something wrong.
You're simply attributing the problems to the wrong source. Godegen is clearly not the issue here. The issue is implementation and training.
So you come up with this as a substitute:
Code you create now, but do not have a direct, immediate need for NOW is waste.
But the NOW timeline is really short-sighted.
Here's a classic. We've rigged our generated entity code to have special handling on any columns named "CreatedDate" and "ModifiedDate". Of course, lots of the primary entity tables we created simply didn't have these columns.
Now, to start with, we don't have a reporting interface or any business logic associated with these columns, so according to your logic adding these columns (i.e.: adding code) is a waste. And of course, that continues to be true until a problem arises that is solved by having these columns (except that they don't exist). I can't now go back and add these columns and suddenly get the data, but hey at least I didn't waste any time, right?
The problem with only handling immediate needs is that it opens the door to ignoring common failures.
Take my example. I know from experience that having these columns on specific tables will be useful. Maybe not now, but definitely soon. And we're not talking about full table-auditing, just a couple columns. We can get that information for a time usage so small that it's basically free and you're telling me that it's a waste because we're not going to use those columns now?
As always, good judgment and experience must be applied when making decisions about what code and features to build. I've spent a lot of time "paying for" mistakes that were wrought from the "we don't need it now" mentality.
In the case of our two dates (Created and Modified), we had to fight through support issues that relied on the non-existent data. A year ago, our product didn't have a support team, so nobody put them in, we didn't need them NOW. That cost us time and money for what should've been a "free" feature.
Turns out we'll likely need a full change history on a couple of the tables.. That's fine, we can't get that "for free", so it's OK that we didn't "waste time".
And what about features that don't get used? If I build 5 features and only 1 gets used, is that waste? Technically it is, but realistically, not every feature is going to be a hit. In fact, it's generally acknowledged that failures are a very important component of success. Maybe it just takes the implementation of 5 features to find one that "sticks", all of that "unused code" may be a "success" in some people's book.
I think you can get my point here, waste is not as simple as defining code that does or does not get used. You also have to factor opportunity costs for the code that is written and the "timing of the time". Hours are not equal, the hour when your datacenter is down has a very different value than the hour I spent writing this post.
Calling unused code the "Worst of the wastes" is difficult to swallow without a little deeper comparative analysis. But given the difficulty of even analyzing the value of unused code, I think you'd be in for a challenge there.
Tuesday, August 12, 2008
Instead of the usual comment, I've devolved into one my blog replies, original comments included.
@Nolan: However it does not change the fact that if you buy a house to live in it, and the payments are reasonable for your income, then you are better off owning than renting in the long run.
This has been hashed and re-hashed on this forum and elsewhere. The data in no way supports your thesis and I would urge not to spread such dangerous information.
At best, owning a home is a lifestyle decision with a set of associated risks. We can argue this elsewhere, but there are a dozen guys who've run the spreadsheets. You've successfully listed a few of the risks:
... the ones who can’t afford their payments, speculators (like you said), and the ones who panic and sell when housing prices fall.
but there are more:
- Risk - People with jobs that are heavily dependent on some local resource (mill-towns, mining towns, etc). This is actually doubly risky, b/c if you're losing your job it's likely that nobody else is moving in which means that your housing "investment" won't be doing well at the very time you need to sell.
- Risk - People working in highly transient / mobile fields. If you're in IT and changing jobs every 3-5 years (quite common), being tied to a location can be quite costly. If you're an athlete, a long-haul trucker, etc. similar logic would apply.
- Risk - purchasing a high-maintenance house. Even if you can "reasonably afford the payments", you still need to afford the maintenance. A 20k basement repair on a 120k house is a realistic risk and would definitely wreck your financial plans.
- Risk - property tax increases. As independent homeowners you're still on the hook for these taxes, Yes there are processes, but it takes personal time (read "money") and you don't necessarily have a lobbyist group on your side.
- Risk - school district changes: This is primarily in the US where people pay premium home prices for "top-rated" school districts. A certain % of value is actually tied to the continued school district prosperity. Buying a house for your 5-year old could be a liability by the time they're 18 and it's time to "downsize".
- Risk - Energy Costs: once you buy a place you're locked in to paying the energy required to keep that place running. If your rental place sucks up too much energy (due to size or just poor maintenance), you can move at the end of the lease or request changes (you're income, you have a good bargaining chip). If your own home leaks heat (or cold), you're on the hook for this cost. I don't know if you've noticed, but energy costs are going up almost universally. Right now, 50% of the earth's population is using about 4% of the world's energy, and we still haven't figured out that whole "cold fusion" thing. That's a lot of pressure for energy costs to continue to rise.
- Risk - Politics: don't like that new factory that's being built just around the corner? Think it will influence your house price? Well, the ball's in your court now, b/c it won't be easy to move, especially with that factory weighing down on your home value. (also, see property taxes)
If you are making above-average income you will not be "priced-out forever". The rules of supply & demand still apply. Either house prices will deflate drastically or the salary prices will rise to match the growing cost of living. House prices do tend to be stubborn, but since 1990 we've since house prices grow well beyond the rate of inflation, with people re-investing the money from their first place into the second (and third and so on). Barring government interference they're going to dip like every other investment.
Personal aside: I expect this dip to happen when the average baby boomer retires and "downsizes". But it may be happening sooner, check out this blog on Edmonton housing market (with lots of pretty charts). Notice the Supply vs. Demand and the Price and Inventory Comparisons?
If you want a home and can't afford one, just keep saving your ducats and investing elsewhere. Especially the 20-somethings and 30-somethings with "good jobs" (i.e. average or above-average income).
Did I miss any home-owner risks?
There are definitely some renters risks, but that's a different post.
Monday, August 4, 2008
I think Dave McClure from 500 hats, basically summed up CNN in one succinct diagram and comment.
out of a possible 20 "news" items on CNN.com, a full 15 focus on death (usually violent death), crime, weather, religion, or celebrity. of the remaining 5 items, 2 are related to politics, 1 is related to business / entertainment, 1 is science, and 1 is random. in other words, about 80% of news is simply death, weather, or fame.
Thanks Dave, couldn't have put it better, of course YMMV.
Wednesday, July 16, 2008
That's right, my wife doesn't work, so together, we make the median income for a two-person family and the cost of owning our own place is prohibitive. Of course, house prices are dropping, which makes me feel great, maybe I'll be able to afford one soon, but it looks like people aren't. I just found this graph on swivel (which is a pretty cool site BTW).
Of course, in the grand world of causation vs correlation, I'm going to chalk up the drop in confidence to more factors than just dropping house prices. If anything, it's likely the economy in general mixed with a healthy dose of "back-to-reality". For great helping of "back-to-reality", check out this post on MDJ:
California couple, family of 8, 100k / year:
- No medical insurance for the themselves OR the kids.
- $135,000 in credit card debt.
- Two mortgages totaling $658,000.
- Large mortgage with payments of $1800/month, but payments will increase to $3300/month in a few months.
- They have 3 cars, 2 of which are leased, the other one they own. The cost is $1700/month.
- Wife spends $300-$400/month at Starbucks (It was the wifes morning routine).
- $60/week on tanning and manicures
- $4k on hair extensions in the past 2 years.
- Constantly shopping.
- The wife would regularly buy brand new clothes for the kids, then have a garage sale a month later to sell the “used” items at pennies to the dollar. (This one blew me away)
Maybe it's time to practice "positive cash-flow techniques". Of course, YMMV.
Wednesday, July 2, 2008
New Microsoft Office subscription bundle to hit in mid-July
Basically they're bundling several basic services together. Some are comparing it to Google's free stuff, but it's also comparable to Mac's "paid-for" stuff:
includes a version of Office Home and Student 2007; Windows Live OneCare,
Microsoft’s PC management/security bundle; a few Windows Live
communication/collaboration services; and Office Live Workspace, Microsoft’s
online-collaboration add-on to Office.
I talked about this previously. And I honestly think that subscriptions are the future of all. Obviously, the "talkback" forum was filled with open-source people who don't "get it".
But I think that the populace is finally ready for the concept that everything on their computer is comprised of "services" and that software is alive.
Unfortunately, MS missed one big piece here: Outlook. The early adopters who will want this service are the same type of people who will also want Outlook.
Tuesday, June 24, 2008
Lots of great links and all kinds of neat ideas and lists of reasons “not to accept a counter-offer”.
But I think the reason is simple.
You don’t want to work for anyone who feels that the counter-offer is a good idea.
Sure it’s an ego boost for you, but it’s really desperate management decision. Do you want to bank your future on desperate management?
The game is simple, an employee generates X revenue and the company pays that employee Y, where Y is X minus expenses and a risk-adjusted profit margin. In fact, it’s a lot like the stock market (actually, it is the stock market, but that’s a different discussion). Either way, the goal of the employee is to maximize the hourly yield for the work they’re willing to do, they want to maximize Y. The goal of the employer is to maximize profit, they want to maximize X and minimize Y.
The problem of course is risk. If you “over-minimize” Y, then you drain X (lower productivity) or you lose X all together (employee leaves). In the grand scheme, employers have been doing a lot to minimize Y: reduction in pension, reduction in health care allowances, no more 20-year gold watches or 10-year sabbaticals, etc. But many employers still insist on making some silly decisions with Y.
In Patrick’s case (the original poster), the competition was willing to pay 30% more Y. Assuming that Patrick could generate an equivalent X, the company felt that Patrick was a small enough risk to pay him 30% more.
That’s a very big difference in evaluation. That’s the same thing as me thinking a stock is fairly-priced at $100 when you think it’s fairly-priced at $130. Of course, we commonly hear about 20 & 30-somethings jumping jobs to make these types of pay raises because it's the only way to get a raise.
There are typically three reasons this happens:
- The company is doing poorly and cannot afford to pay the employees more. Or they’re likewise not generating money from having the employee around.
- The company is trying to extract as much profit as possible from the employee or using the employee’s profits to fund a different venture.
- The company really has no clue (typically poor management). Any/all of: they don’t know the market rates, they don’t know which employees are generating money or losing money, they don’t have a growth plan, they don’t have a succession plan, they don’t understand what the employee really wants…etc
In a case like Patrick’s I’m sensing a heavy dose of #2, with a little #3.
What I don’t understand is why they suddenly perceived me as valuable as soon as I mentioned leaving?
It’s up to management to manage and mitigate risks and they really blew this one. (And remember the profits they make are their “risk-adjusted” piece of the pie) Not only did they underestimate your value by 30%, they also underestimated the value of their counter-offer by another 10%. That they would even go back to “up the ante” again means that they were still suffering from a #2 brain fart.
So back to the original thesis. You don’t want to work for these guys.
- If they suffer from #1, then they’re likely laying people off and even if you don’t lose your job, you won’t be getting a good pay raise.
- If they suffer from #2 and they’re underpaying by 30% (or more), then they’re not showing a lot of foresight.
- If they suffer from #3, then you’re resting the fate of your next raise, your next promotion and even your next paycheck on the back of someone who doesn’t have a clue.
You don’t want to be working for these guys. You want to be working for proactive managers. You want people who have vision, who can see problems before they arrive. You want people who lead, people who hire more staff before everyone gets too busy, people who give pay raises before you have to ask for them, send you to training before you need it.
So if your employer makes a counter-offer, they are not one of these people. They’re one of the hordes of reactive managers. Just because they’ve finally realized they’re behind and can afford to pay you more doesn’t mean that they’ve changed their ways and stopped being bad managers.
So don’t accept a counter-offer when resigning your job, you don’t want to work for the type of people who make counter-offers.
Of course, ymmv.
Tuesday, April 29, 2008
Wow, actually a good summary of this new "anti-database" movement. Of course, the whole controversy all comes back to one guy: Michael Stonebraker. He started the storm in a few different places (and seems totally misguided).
But they, it's big enough that it reached the high scalability site. Link has lots of useful information and one great quote:
SimpleDB shifts work out of the database and onto programmers which is why the SimpleDB programming model sucks: it requires a lot more programming to do simple things...Programmers like problems they can solve with more programming.I think that last line needs to be modified: Inefficient programmer like problems they can solve with more programming. I don't like making a bunch of problems for myself, especially when it comes to useless optimization. The goal here is to program solutions that require less programming in the future. You build tools that extend your thoughts and write more code for you.
That's what an RDMS does, it's just a collection of code that manages data so that you don't have to. Seems kind of foolish to pretend that we can do better at this than the pros.
Tuesday, April 22, 2008
What That Car Really Costs to Own - MSN Autos
I can't really argue with many of their points. Consumer Reports seems to know what they're doing. I am annoyed with one thing, though it's purely philosophical. It's the concept of factoring in the resale value of the car.
Yes we have historical data, but who wants to be the one trying to sell a Honda on the year they start making lemons? Plus the resale value is only good if you plan on selling the car. Otherwise, you just drive all cars until they're worth some irrelevant amount of money and you call it a day. At that point you want the car that cost you th least to get to the end of the line. Of course, the cars that require the least repair also tend to be the cars the highest resale value.
So you're kind of "double-dinging" certain cars. Especially when they all become basically worthless after a certain time.
Sunday, March 16, 2008
But the recruiter also makes a good point:
Why don't we know the difference between a 60K and a 100K programmer? Because only a programmer could tell the difference and if the person was all hat, no cattle or the real deal. Most programmers would prefer to, say, program, than wade through 20 resumes and phone screens just to get to talk to two people who might be a good fit for whatever reason.Of course she's perfectly right. And this is the fundamental problem with technical recruiters: They're completely unqualified to do the job.
It's not their "fault" per se, it's just endemic to the field. Being a good tech recruiter requires a ton of technical background, plus some business savvy, some sales skills, some research skills, networking skills and a ton of patience. Of course, if you already have all of these skills, then you have a job that pays way more than being a recruiter!
Personally, I would rather just avoid the recruiters all together and seek out the job I'm looking for rather than the other way around. Of course, YMMV.
Wednesday, March 12, 2008
Student faces Facebook consequences
Basic premise is simple. The University wants to ban the student for managing a Facebook user group where students helped out on Chemistry homework assignments. The interesting thing about these assignments, is that they actually weren't even given the same questions!
So here's a kid facing suspension for making a virtual study group where people can't even really share answers b/c they have different questions.
There are two big problems here:
- Study groups have existed forever and are a fundamental part of university, especially sciences. However study groups are prone to cheating.
- Online access to resources have made learning more accessible, but they've also made "cheating" far easier. Universities are mildly scared about the accessibility part as they are financially vested in remaining the key holders. Of course, they're also publicly funded (especially in Canada), so they have to maintain some openness. But what Universities are really scared about is cheating. Credibility is ridiculously important for Universities and "cheating" undermines that credibility.
Study Groups = maybe cheating
Online = maybe cheating,
therefore Online Study Groups = definitely cheating
The logic is clearly flawed, and in this case it's pretty clear that no wrongs were committed. In fact, if people were using the group to cheat, it would have been trivially obvious to prove. If two students really wanted to cheat, posting up answers to a Facebook group is the worst possible way to do it.
Of course, the problem runs much deeper than that, this type of behaviour demonstrates a deep-seated fear in the academic halls. And it stems primarily from problem #2.
In all reality, the University should be providing and managing groups for this type of "study grouping". My wife graduated from the University of Manitoba last April and they had a "WebCT" system (now Blackboard). Systems like this increase transparency and provide quality resources for students, but even today it's tough to get full support from the older academics.
I personally love this concept of openness, but maybe the older academics are on to something. They have long been the private gatekeepers of the secret academic world. By increasing accessibility and allowing things like on-line study groups, they've increased their burden of work while reducing the value of their time.
The wired world is a connection tool for everybody. The web is a democratizing tool in an academic world that is far from democratic. This whole concept of suspending a student for managing a virtual study group is nothing but a demonstration of a deep-founded academic fear.
The irony here is that kicking out our hero will likely cause a backlash that will cause the university to lose credibility in the eyes of the public.
It's a bad place to be, of course YMMV.
Saturday, March 8, 2008
The main points are simple
- Make a commitment to get out of debt
- Start a cash emergency fund
- Pay off debt using a debt snowball
- Save 3-6 months of expenses in savings
- Save 15% of household income into retirement savings accounts
- College funding for children
- Pay down mortgage quickly
- Build wealth and give
...these things that I do go against the “Ramsey” way but that’s ok because I’m not in need of any kind of financial rescue...I believe that for a lot of people, Ramsey’s methods can be very beneficial.
But I personally think that we're missing something really big here: Dave Ramsey is pimping a diet change and not a lifestyle change. This thing reads like a draconian weight loss plan and asks you to do things based on what he believes. He's imposing his lifestyle beliefs and telling people to save vast sums of money b/c that's what they should do.
Really, why should you save 15% into retirement savings (#5)? What if you don't plan to retire? What if you want to take mini-retirements? What if you want to invest that 15% into educating yourself? If you don't have a college degree, shouldn't that be a priority before retirement savings, how about before saving for your kids' education (#6)?
Paying down your mortgage quickly (#7) could turn out to be a horrible decision. What if you live in a mining town or a factory town? Throwing money at your home could leave you light on cash and investment money when the plant closes down and crisis hits.
Making a commitment to get out of debt (#1), is like making a commitment to losing weight without making a commitment to keep it off. The commitment here to live within your means.
This sounds like the "Wealthy Barber" plan of "Save lots of money so you won't be poor." The only two novel concepts here are #3 and #8. Giving, addresses the karmic nature of money which seems to be that those who give don't have trouble finding. And the debt snowball addresses the psychological aspects of debt payoff that some number-crunchers seem to forget.
But really, this is all just a diet plan for debtors. I know several people in debt and I wouldn't package up this advice with my name on it.
Of course, YMMV.
Friday, February 22, 2008
Java increasingly threatened by new app dev frameworks
I can't really disagree with his supposition and he pulls a lot of numbers to support his case. But from a high-level view, what the heck is happening?
I remember 1998, when Java was still a fledgling "web" language. I was around in 2000 when I became the last class at my University to use C++ for first year courses. And here we are in 2008 talking about the "death of Java" and comparing it COBOL. The article explains that Java is effectively being supplanted by .NET, Ruby on Rails and PHP, but I don't think that it's capturing why?
Here's my theory: languages are alive but Java hasn't really fought to survive. Microsoft's .Net is a comparable technology, but the last few years have seen several innovations from MS: WCF, WPF, LINQ (and and everything underneath it), MVC (i.e.: struts) and all kinds of other things that seem to be just around the corner. Even VS 2008 doesn't feel done. Most people are barely rolling out .Net 3.0 and MS is already pushing around 3.5 and elements of future versions.
But Java just doesn't have that developer backing. Sure IBM evangelizes the stuff and educational institutions like to use anything they can find for free, but it's still "behind the curve". Eclipse is definitely becoming competitive, but I just don't see the whole framework of tools/language/support being pushed as hard or as fast by IBM/Sun as MS is doing with their tools.
Of course, we'll see how PHP and Ruby (the apparent heirs) actually perform over the coming years. All of the arguments I've heard for/against the technologies seem mostly ideological. People don't like tools that make them uncomfortable.
But at some point the language becomes just as relevant as the tools around that language. And I'm not convinced that Java is really dead, so much as Java needs a better toolset.
Of course, YMMV
Tuesday, February 12, 2008
Obviously nobody is surprised by the results... actually, I lie, I am surprised by the results.
The number of failures is huge. They provide some ideas, but I have two pretty solid explanations myself.
1. IT is voodoo magic
2. People still don't know what they want so projects become too big.
The second one is quite self-explanatory, but still widely misunderstood. Undertakings of more than 2000 man hours (that's 3 people for 4 months) are never as simple as we'd like to believe. They're also too big for most software.
Software is organic, it needs growth time. It's also really easy to spend way too much time on software. The big industry fallacy is that good software can be developed over several months (or sometimes years) and then just magically work at the end of the day.
It can't but very few people in power understand this. Until we start "growing" software with smaller deliverables (call it Agile or Iterative if you want), but until it's "organic", then our software is going to suck. Until we recognize the organic limitations, we're going to keep budgeting software projects like we would a bridge and this too is going to fail spectacularly.
Of course, YMMV.
Sunday, January 13, 2008
The lead-in quote: Young IT employees pose a challenge to many managers who say the Millennial generation holds employers up to unrealistic expectations and makes unreasonable demands for their services.
It's a good read, it's nice to hear one side reported; but I feel there's a whole other side to this that's not understood. Most "millenials" that I've met have very little concept of business and business finances.
The average worker expects to sit around and do as they are told and basically "be taken care of". The average worker never sits down with their boss and says "I'm making X and I want to be worth X+10%, what do I need to do?". There's an expectation that simply showing up will get you there. Most workers I've met simply let the company decide their next step. I've even met tons of smart and skilled developers who simply don't know the math behind their salary. They can't ask for a pay raise or different benefits or some other employer concession, they don't even know how much they're worth. They don't know what income they generated last year or the typical overhead cost on their time.
Meanwhile, from the other side, most companies I've known are simply terrible at managing workers and projects and growing their #1 assets. They set up win/lose pay structures that heavily reward management instead of the workers. They ask for more work hours instead of more project deliverables. They expect employees to train outside of work instead of accounting for the cost of "in-the-week" training time. They ignore the concept of "apprenticeships" and the time required and just add juniors to the team as a single unit of time (instead of the .2 units of time they actually generate). They fail to build progression plans (including scheduled pay increases for young workers) and then wonder why they get caught with their pants down when the best young workers leave for more money and the bad ones hang around.
It's a two-way street and there are ample examples of failure on both sides. There are tons of "sweatshop" workplaces and tons of workplace Princesses.
Of course, YMMV.