Tuesday, October 12, 2010

Strategy: Windows Phone 7

The good news is Microsoft's new phone platform doesn't suck.  Being a believer that more market competition benefits me as a consumer, this makes me happy.

Microsoft offers deep integration with its other offerings:
The integration with Microsoft services appears top-notch, ranging from OneNote in the cloud to Zune for media, Xbox Live for gaming and Bing for navigation and search.

I think this is 100% the right strategy; at the same time, I'm not convinced it will be successful.  Apple did very well by simply integrating iTunes with its iPod, and grew that into the phone business.  Apple's platform continues to be the easiest and best music experience, to the extent that they might be able to leverage that further into the social space with Ping.  Microsoft has a richer stable of apps that people rely on, and building in and on them gives them the greatest chance for competitive advantage.

But the size of Microsoft -- the innumerable products they have -- will make getting integration right difficult.  Even integration between Excel and Word, which have been around forever and have hardly changed recently, is clunky and superficial.  Integration into Sharepoint was another opportunity to dazzle us with unimaginable convenient and features, and instead every time I use Sharepoint, it feels like a distraction, something I need to get around.


Another confounding aspect: which integrations carry the biggest upside?  Is Zune really a partner you want to be tied to?  Is OneNote so compelling that integrating with it brings value?  Do you even know anyone using either?

Despite these concerns, Microsoft has to travel this path.  Otherwise, they're just another company (yes, with a lot of money, but that didn't help Kin, Zune, or their other failed new products), and definitely not the nimblest or most risk-taking -- two required features of successful new ventures.

Sunday, September 12, 2010

Motivation: would your employees buy their own supplies?

This came from a local paper, but surely many teachers around the country behave similarly:
Like many colleagues, she said she spent about $100 on back-to-school supplies. She said she expected to spend another $400 of her own money over the rest of the school year.
Let's put it another way: suppose $500 is 1% of the teacher's annual wages, which seems like a fairly reasonable estimate.  They're spending money not for the employer, but for what you would call "clients", who should and are expected to provide for themselves. 

Now take a typical bond trader, and 1% of their salary is $5k to $10k.  (Yes, it could be a lot more.)  Would you think they would spend that much every year on client problems?  They might ask their company to pay, but if they didn't, how many do you think would dig into their own pockets?

The article goes on to say that many of these teachers have spouses that have lost their jobs due to the recession.  They spend the money anyway because they want to make sure every child has equal opportunity, and they want to provide a good environment.

How do you get an employee to care so much about their job that they take the quality of their work so personally?

Sure, it helps that teaching can be very rewarding.  Teaching can provide a meaningful purpose, which Dan Pink identifies as one of the three critical factors for employee motivation.

Another aspect is professional pride.  Teachers have a vision of how they want the lesson plan they've created to go, and every kid that doesn't have the right supplies is an obstacle to achieving that.  I know a number of software developers who pay for many pieces of software and hardware so that they can do their jobs better.  In both cases, autonomy about how to achieve their goals -- the teachers create their own lesson plans, the programmers can use their own tools -- imparts ownership of the results.  Yes, this covers both of the other primary inputs that Dan Pink discusses.

One personal aspect, though, is simply getting employees deeply involved with their customers.  Teachers see theirs everyday, and the desire to help springs forth.  (Or else, they become overwhelmed by it, shut down, and just see it as another job, the kids' problems as not part of their job description.)

Being around other people, personally sharing in their problems, unlocks a natural instinct to want to get involved.  We sometimes purposefully avoid knowing anything because we know beforehand that once we even put a toe in the water, we'll be compelled to jump all the way in.

If you're running software teams, get them in front of the users as much as possible, as much as the users allow.  That's one strong argument against separate support and development teams.  Programmers who see their users more won't need any more motivation than that to rush back and work quickly on that bug that seems so small (hey, there are workarounds!) but is in fact a major pain and awfully embarrassing.

Wednesday, September 1, 2010

Drive: reading list

At the end of Drive, Dan Pink offers a dozen or so books that provide more depth.  All of them intrigued, but these stood out:

Why We Do What We Do: Understanding Self-Motivation by Edward Deci.
"The questions so many people ask -- namely, 'How do I motivate people to learn?  to work?  to do their chores?  or to take their medicine?' -- are the wrong questions.  They are wrong because they imply that motivation is something that gets done to people, rather than something that people do." 

Fascinating.  Those are questions I'm asking all the time, so I've got the wrong ones.

Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes by Alfie Kohn.
"Do rewards motivate people?  Absolutely.  They motivate people to get rewards."

I've been thinking about whether to given a small token at every practice for the hardest working player on the soccer team I'm coaching -- basically, a gold star.  Yes, very Management 2.0, but I figure these are 8 year-olds.  Maybe I should read this book first.  Kohn has been writing about this stuff from all sorts of angles; lots to explore.

Maverick: The Success Story Behind the World's Most Unusual Workplace by Ricardo Semler.  Pink calls Semler "the first autonomy freak."  He has 3000 workers in a manufacturing company, Semco -- the kind of company where you'd think stricter management would produce the best results -- and he lets them set their own hours, vote on major decisions.  Some set their own salaries.  Semler hesitates to call his company "organized" -- 3000 people! 

The company has done fantastically well for 20 years.

Tuesday, August 31, 2010

Drive: audit yourself

Drive offers a tool for measuring autonomy, one of the three tenets of Management 3.0.  Audit your workplace or your team. How much input do you or your team members have over:
  • Tasks -- responsibilities and main tasks.  Can they decide what they work on, what goals they want to set, what their priorities are?
  • Time -- work schedule.  Who decides when the "work day" starts and ends?  If there's rotational coverage of some kind, who determined what rotation was required and how was the coverage assigned?  Do you require people to spend time commuting?
  • Team -- who they partner and interact with.  Do they get to pick their project team members or are people assigned?  Can they decide to divide the work up with others any way they choose?  How much freedom do they have to interact with customers or business partners, or senior managers for that matter?
  • Tools -- how they're supposed to do it.  Tasks are what they're supposed to do; tools are the method.  For programmers, it could include architectures, IDEs, even languages: who chooses?  Are there a lot strict processes in place -- check in these things, fill out this form, then get sign-offs from these people, then schedule your release only on Fridays -- or is it totally free?

Compile the ratings given by everyone on your team or department or whatever level you desire. 

Being completely autonomous in every aspect of the job might be undesirable.  For example, jobs that require customer interaction have to consider the customers' hours and locations.  You'll have to get creative to find ways to bring more autonomy to that area of the.

Also, average scores might be fine, but a low score in one area might indicate an place to focus.

Wednesday, August 25, 2010

*Bounce*

Matthew Syed's Bounce tries to uncover how exceptional people got that way.  It starts out promising, but quickly fizzles out.

It offers a very tight review of current studies that demonstrate that hard work matters more than talent.  You can skip Talent Is Overrated and just read the first couple chapters of Bounce.

But the hard work argument just opens another mystery: what compels people to work so hard that they rise above everyone else, even at great cost and pain to themselves?  The book never provides a meaningful answer.  A few studies show that the right kind of coaching words can make a difference, but that just scratches the surface.  I doubt Michael Jordan was lucky enough to only have positive, supportive coaches all his youth and career.

The rest of the book talks about other high performance issues, such as "choking" and how to avoid it.  Not uninteresting, but more like appendix material to the main storyline, which remains unresolved.

Monday, August 23, 2010

*Drive*, part 1

Drive tells us about Motivation 3.0.  Version 1.0 involved kings: do it my way or die.  Motivation 2.0 introduced management: supervision and evolved forms of control.
Management still revolves largely around supervision, "if-then" rewards, and other forms of control.  That's true even of the kinder, gentler Motivation 2.1 approach that whispers sweetly about things like "empowerment" and "flexibility."
Indeed, just consider the very notion of "empowerment."  It presumes that the organization has the power and benevolently ladles some of it into the waiting bowls of grateful employees.  But that's not autonomy.  That's just a slightly more civilized form of control.  Or take management's embrace of "flex time."  Ressler and Thompson call it a "con game," and they're right.  Flexibility simply widens the fences and occasionally opens the gates.  It, too, is little more than control in sheep's clothing.  The words themselves reflect presumptions that run against both the texture of the times and the nature of the human condition.  In short, management isn't the solution; it's the problem.

If you don't have management, what's left? 

Motivation 3.0, which comes from the self.  Drive is about how organizations can foster that -- indeed, that organizations must foster that, because those that don't will themselves die in the future.

Saturday, August 21, 2010

Tradeoffs: org design

Are all org designs evil?  This blog post does a great job of explaining the very serious trade-offs:
The first rule of organizational design is that all organizational designs are bad. With any design, you will optimize communication among some parts of the organization at the expense of other parts. For example, if you put product management in the engineering organization, you will optimize communication between product management and engineering at the expense of communication between product management and marketing. As a result, as soon as you roll out the new organization, people will find fault with it and they will be right. Still, at some point, the monolithic design of one huge organization runs out of gas and you will need to split things into smaller sub-groups...

Your goal is to choose the least of all evils. Think of the organizational design as the communications architecture for your company. If you want people to communicate, the best way to accomplish that is to make them report to the same manager. By contrast, the further away people are in the organizational chart, the less they will communicate. The organizational design is also the architecture for how the company communicates with the outside world. For example, you might want to organize your sales force by product to maximize communication with the relevant product groups and maximize the product competency of the sales force. If you do that, then you will do so at the expense of simplicity for customers who buy multiple products and will now have to deal with multiple sales people.

Thursday, August 19, 2010

Destructive behavior is the new normal

According to Drive, the definition of Type A personality came out of a health study.  You were supposed to avoid acting like a Type A to avoid heart attack, hyper tension and other stress-related diseases.  In other words, you were supposed to strive to be a Type B simply as a matter of health, to live longer.

Nowadays, any pejorative meaning associated with being Type A seems to have disappeared.  If anything, it's swung the other way.  Type A's can brush off their behavior with a laugh, "I'm such a Type A, ha ha."  Some schools and businesses brag about how they only hire Type As: hard-charging, never-sleeping, never-satisfied people.  These qualities sometimes pass as requirements for leadership.

Meanwhile, you never hear anyone bragging about being Type B.  It'd most likely be taken as self-deprecation.

Is there a better sign of how things have changed in modern life?

Monday, August 9, 2010

Today, good is bad

In our age of excess, it's harder than ever to stay focused, says Paul Graham in a remarkable essay:
One sense of "normal" is statistically normal: what everyone else does. The other is the sense we mean when we talk about the normal operating range of a piece of machinery: what works best.

These two senses are already quite far apart. Already someone trying to live well would seem eccentrically abstemious in most of the US. That phenomenon is only going to become more pronounced. You can probably take it as a rule of thumb from now on that if people don't think you're weird, you're living badly.
Emphasis mine, just because I love that sentence.  The point is, you have to practically live like a monk to avoid the multitude of distractions that feel productive but in fact are just sinkholes of time with maybe some, but definitely small, benefits.  

Most of us won't make it (most likely me included).  Unlike the modern day food industry and trying to eat well -- another place where if you're behaving like everyone else, you're doing quite badly -- in this case you can determine exactly the outcome you want for yourself. 

An opportunity for the disciplined.

Tuesday, August 3, 2010

Is Google braindead about social apps?

Filed under "your strengths are your weaknesses":
why can't Google build social apps? Because Google's core values ("be useful", "do good by users") reject the very notion of lobster traps, bacn and toast, a dozen dimensions of junk food, and giant blue ball machines. Understanding those concepts is not easy. It takes lots of practice, and lots of patience, and lots of learning...

Google is responsible for Orkut, Wave, and Buzz. Ex-Googlers are responsible for Facebook, Foursquare, and Twitter...

Googlers who wanted to develop great social applications had to leave Google to do so... because Google's culture has no respect for successful social applications. YouTube's office is still far from the Google campus to avoid the toxic attitude described by a former Orkut employee, "[Google has] an environment that viewed social networking as a frivolous form of entertainment rather than a real utility, and I'm pretty sure this viewpoint was shared all the way up the chain of command to the founders."...

Google FAILED in acquiring and integrating other social products. Blogger, Picasa, JotSpot, Dodgeball, are dead.
Obviously, this dogma can't be entirely correct, but the line-up of failed apps speaks pretty loudly.  Even their successful apps -- gmail, google phone, google reader, and maybe blogger and picasa -- succeed only in one-to-one interactions, and fail as places to do interactions with multiple people.  They don't resemble social hubs in any way.

But, if as the author says, practice, patience, learning, and failing are key, then Google can definitely turn this around.  They excel at putting new things out and seeing what works.  As long as they don't get driven by the immediate payoff to shareholders in every project, they can continue avoid Microsoft's fate.

Monday, August 2, 2010

Women in technology

Great rumination about why computer science is the only field to suffer declining women participation. Think about that: even if you want to troop out the arguments that skills get rewarded, you need to come up with some explanation why computer science dismally stands alone.

Even the comments, which you always expect to devolve into blathering screeds that eventually result in someone being compared to Hitler, especially on a topic like this, add nuances to the discussion.

I also wonder if there's an east coast difference, or perhaps a financial industry difference. I don't run into a lot of those stereotypical, non-communicative, "don't touch my code" types around me. We still don't have a huge percent of women in IT, but that could be because women are smarter and go work on the trading floor where they make up a significant percentage and the pay is much higher.

The managers I've been around and the hiring I've participated in have actively tried to recruit more women.  Everything being equal, we'll actually hire a woman over a man simply to increase our diversity.  I would go so far as to say that many people I've worked with would pay a bit more to hire women.

But the financial industry, for all its faults, does a relatively good job at institutionalizing the need for diversity.  And New York is diverse like no place on earth.

Wednesday, July 14, 2010

Two nice reminders about signals of management priorities:
Money is the primary indicator of management priorities...  "We really wanted to give you more to work with, but ..." "Please don't see this as meaning that you aren't important to us..." "This really isn't the year to make our move in your area..."  All these sincerely expressed and well-intentioned comments are designed to help you understand that management is putting resources in somebody else's basket.
Meanwhile:
when you hear your two o'clock appointment say, "I really wanted to meet with you on this today, but ...," you know what is happening.  When you hear a pattern of phrases like that from your management, you are being crowded out of their "work hole" by something they see as more important, or at least more immediate...  When you repeatedly hear, "It's important to me, too, but..," accept that your work is not considered important enough for them to do anything about right now.  Accepting this apparent reality might help you to decide whether you are going to do anything to elevate the importance of your work.
Both from Getting Things Done When You Are Not in Charge.

Neither signal should make you jump to a new job, but they should raise sensitivity for continued signals.

You usually get the first signal at an annual budget discussion.  It's perfectly appropriate to respond with, "What market or business conditions would have to change to justify a higher / full funding?"  Then, if those conditions occur, and you're still not being funded, run for the door; you're stuck in the hamster wheel.

The second one is trickier.  At some point, you probably have to raise the issue on your own.  "Not getting enough face time and attention to my projects is really hindering my ability to move it forward" or "I'm having a hard time convincing the team that the work is important when our meetings with management are constantly canceled."  Sometimes people don't realize the impact of their (in)action, and if you're competent, you're probably good at hiding the deficiencies.  If you have a good manager, she'll want to make sure you're happy and feeling productive, and will respond accordingly.  If not, that's usually sign enough for me that things will not get better.

Tuesday, July 13, 2010

On fire and slumps

When I left New York for California a week ago I was emerging from one of the most productive development spurts I'd ever had. I didn't know it then but I was about to enter a slump. Since leaving and returning I haven't gotten very much work done at all. I've tried all kinds of tricks to get myself back in gear, but none have worked.
That's Dave Winer.

You frequently hear about a basketball player being red-hot, or a baseball player going into a slump.  How about programmers?

Weird in a way.  After all, it's your brain, just focus it.  Seems pretty simple.

Lately, I've been in a strong productive swing, and feeling great about it.  Part of it is being on a good project.  But I definitely feel it's more than that.  Things just seem to happen.  I sit down to the work and
start drumming out stuff, without even feeling like I'm working.  To some degree, I can't take credit for that.

In the past, I've had some long stretches where every move is a chore.  I had to constantly remind myself to stay focused, purposefully remove all distractions.  Even then, I had to battle the temptations to cut corners (not always successfully).

I didn't realize it, but apparently I was in a slump.

And for the times when things go well, SportsCenter would call that being "en fuego".

Monday, July 12, 2010

The Change Delta

The change delta comes from Getting Things Done When You Are Not in Charge.  I like that delta is the symbol for change, so that makes it easy to remember. 

Any successful attempt at change requires a deep understanding of both what is and what might be.  Interested parties consists of those who want to hinder the process as much as those who want to help. 

At the center is you -- which might be a foreign way of thinking about it. You have a key role to play.  Perhaps the key role.  That's for you to decide.

You might have feet-on-the-ground deep knowledge.  Or, you might be an impartial outside observer.  You frequently hear people use both positions to argue that they can drive the change or help.  Either way, your understanding of these three points is unique.

All this assumes your interest in change lies deeper than merely complaining about the current state of things or dreaming wistfully about possibly futures.

Sunday, July 11, 2010

Your problem on one sheet

A3 management process:
A3 is the name for a large sheet of paper (17″ x 11″). With the A3 technique, it is filled up with useful information. Space is intentionally limited to make sure only the most relevant information is shared.

I like the balance between a large sheet and having to fit everything on it.  By the end, it probably does not seem large.  I also suspect that being forced to review the sheet in public with everyone forces other decisions and assumptions out in the daylight; no hidden agendas.

I'd love to see someone use it or at least some real examples.  It'd be difficult to show up to a meeting at my company with one, but then again I once thought doing Agile at all would be impossible at an investment bank.

Saturday, July 10, 2010

The real argument against outsourcing

It's clear to me there are only two paths.  One path is to take every repetitive, by-the-book task in your organization and outsource it or mechanize it.  The other path is to take every repetitive, by-the-book task in your organization and give the people who do that task the freedom, the incentive, and yes, the imperative to do something that cannot be outsourced.
Either what you're doing is repetitive, in which case you ought to outsource it, or it's homemade, insightful, and filled with initiative and judgement, in which case you can charge for it.

-- Seth Godin, Meatball Sundae:
Of course, this is only an argument against outsourcing if the organization distributes the power, and everyone runs with it.  Many organizations can't imagine such a scenario and hire people who wouldn't know how to respond.

Thursday, July 1, 2010

Middle management is where it's at!

My experience is that the people at the bottom and the top of a typical company are those that feel most restricted in their work.  When the president and the assembly line worker sit down to talk about what they have in common, the demands that others are making on them is likely to come up early.  In a way, the president is the assembly line worker of the larger community the company serves.  However, those of us in the middle have many choices and a great deal of room to test and exercise our powers.

-- Getting Things Done When You Are Not in Charge

Thursday, June 24, 2010

The best people

If you ask managers what makes their company special, you'll often hear that they have the best people.  "Our people are what make our company great."  Or, "We only hire the best people so that's all we have here."

You might reasonably dig a little deeper and ask how they know theirs are the best.  Only two of their possible answers make any sense:
  1. They have a rigorous screening and hiring process.
  2. They pay top dollar for the top talent.

Any other answer is merely hand-waving and not serious. But, really, how effective are even these two reasons?

Most of the companies I've run into that use the" selective hiring" argument didn't seem that selective.  In fact their hiring process ran pretty much like everyone else's: cull through piles of resumes looking for key words, then bring candidates in for interviews with three or for employees.  If everyone's doing it, it can't be special.  This argument really claims that they, the interviewees, are master talent scouts, asking penetrating interview questions, but does that claim have any basis?

That leaves the dollar strategy.  The best-known adherents of this philosophy are... Enron and Wall Street.  Enron is of course out of business.  Wall Street would have been out of business if not for a giant government bailout.

If you're a manager and you give me the "best people" line, I'll seriously wonder how great the company could be.

Tuesday, June 15, 2010

Unlimited vacation

I've been noodling over this idea of unlimited vacation.  It appeals to my feeling that people should manage themselves. 

And this argument really resonates:

In Freedom, Inc. Gordon Forward of Chaparral Steel talks of the danger of ”managing for the 3%.” In a large enough organization, there might be a couple of people who would take two or three months’ vacation–but if a vacation policy is the only thing holding them back from that, they’re probably “vacationing” at their desks anyway. And so the policy is concealing the problem with that “3%,” not eliminating it.
This relates to the idea that, if you're hiring correctly, then you won't have abuse.  It makes me fear that I might have hired the wrong people.

But just recently I met a guy who actually works at a company where they have unlimited vacation.  He pointed out a critical factor that I completely overlooked: company culture.

In his company, everyone pressures everyone else not to take vacation.  If you ask for a block of 2 weeks off, they'd laugh at you.  You'd have to explain it to a lot of people, because it would keep coming up.  Even a short vacation doesn't go unnoticed.  "Must be nice to have a vacation.  What, not enough to do?"  It's public humiliation.  The company culture doesn't allow for violations. 

My new friend finds that he takes less than 2 weeks off in total every year.

At my company, many people take 2 week blocks off every year.  (In fact, it's a requirement for systems security.)  You get 3 or 4 weeks, and if you don't use it all, you carry it over and have additional time the next year.  It becomes your right to use it.  This seems normal to me, because that's what I've always had.

Would the social pressure work in my company?  On the whole, no way.  It's too big, and it's tough to change the culture.

On the other hand, there's frequently pressure to work long hours.  It usually emerges as joking jabs -- "Wow, you're leaving at 4:50?  I mean, before 5???" -- but underlying it is the general expectation that people work long hours at investment banks.  That starts with the bankers and trickles down.

So, in my group, if we had an unlimited vacation policy, it might very well turn into a vacation deprivation policy. 

In retrospect, it's almost surprising that more companies don't go to unlimited vacation.

Monday, June 7, 2010

The perfect solution for every case

...does not exist.

I have long been an opponent of offices.  Managers sometimes need them for sensitive meetings, but lots of conference rooms solves that problem, and for more people. 

Meanwhile, the local social life of information usually dies at a door divide.  Microsoft is a big proponent of offices, and look where they are.  I say get the managers out into a cube like everyone else. 

But lately, I've been wanting to talk on the phone standing up, because it helps you project your voice and convey energy.  Guess what?  That would bug the crap out of everyone around me, and if I'm facing the wrong way, out of everyone on the floor.  If people see you standing at your cubicle while talking, they will generally assume you're some attention-starved narcissist, which you might be if you actually subjected the floor to your phone calls in a booming voice.

So now I'd like an office, even a shared one.  (I'd also like a stand-up desk while the request line is open.)

Thursday, June 3, 2010

Working hard

Some people work over a hundred hours a week.  Like our national budget, that's a number so large that it's hard to grasp.

These days, I have 11 hours left every weekday after preparing for, commuting to, and being at work.

On an average day, I give myself
* 7 hours for sleep (assuming I sleep the minute I hit the pillow)
* 1 hour for exercise
* 1 hour for the kids and putting them to bed.
* 2 hours for everything else: mostly talking with the wife and doing household chores, but also tv, paying bills, reading, internet, etc.

Not a huge amount of free time; as you might expect, I watch very little TV.  Still, at this rate, I work 10.5 hours a day, or 52.5 hours a week. 

I could decide to skip exercise and sleep only 6 hours, then use those 2 hours for working.  I would operate a lot less effectively, but that would get me to 62.5 hours a week.

I could decide to destroy my weekends, and pull the same schedule on both Saturdays and Sundays.  My wife would be unbelievably upset, and I wouldn't get to see my sons' baseball games or eat any meals with them or take them to the zoo.  And that would still only get me to 89.5 hours a week.

To get to 100 or 110 hours, I'd have to decide to never see my kids or wife, and let my recreation and contributions to the home disappear.


I don't do those things, so I'm not as strong in my job as I could be (though I do sometimes work longer than 10.5 hours, and sometimes a bit on the weekend).  Or, I could take those extra 50+ hours and do a whole new job, start a new company, 50 hours being the equivalent of another full-time job.  (So, don't let anyone ever tell you that they can't do what they truly want to because they have to work.  The job isn't the prob.)

But that's the choice I make.  Working hard explains 80% of the variation in results.  It's a simple rule to keep in mind when you're thinking about what you want to do and how you're going to get there.

Tuesday, June 1, 2010

"The real challenge of outsourcing"

From Seth Godin's Meatball Sundae:
It's clear to me there are only two paths.  One path is to take every repetitive, by-the-book task in your organization and outsource it or mechanized it.  The other path is to take every repetitive, by-the-book task in your organization and give the people who do that task the freedom, the incentive, and yes, the imperative to do something that cannot be outsourced.

Either what you're doing is repetitive, in which case you ought to outsource it, or it's homemade, insightful, and filled with initiative and judgement, in which case you can charge for it.

Too often, managers try to have it both ways, and end up with clever, skilled people who move on due to boredom, or "idiots" who can't do the job.  Their failure to make a strategic choice ends up in a bad personnel result.

Similarly, software development -- including app support -- should be thought of similarly.  Programmers, almost by definition, should not be doing something twice.  Give the clever, skilled ones the freedom to minimize the mundane and repetitive.  And if you still have a lot of it around, you've probably kept the wrong ones.

Thursday, May 27, 2010

Know the business

Financial markets continue to plummet.  Apparently.  I had no idea until someone mentioned it.  I've been avoiding all info about markets and financial turmoil, though I didn't realize how out of it I had become.

Which is odd because all my life I've preached that coders should deeply follow what's going on in the world of our users, which in our case is the financial markets.  It's a requirement for being effective.

I guess this proves, once again, the wisdom of the old adage, "There's an exception for every rule." 

I followed the previous meltdown, late 2008 through early 2009, intensely.  My workload was pretty light those days, so I had plenty of time to read everything about events as they unfolded.  On the day before the unveiling of TARP, I felt genuine fear for perhaps the only time in my adult life.

As a result, my productivity plummeted.  For months after things leveled off and things returned to normal, I struggled to regain my balance.  I had developed bad habits.  (First thing to do when arriving at work: catch up on all the financial blogs!)

I don't want to be trapped in that hole again, so I learned to ignore the daily ups and downs, and maintain a narrower focus.

And I was reminded that even immutable requirements need to be open to re-evaluation.

Thursday, May 20, 2010

Hiring anti-pattern: Don't break the build

A job posting on a mailing list mentioned that the applicants should not have ever broken a build. Not that I am looking for a job, but that certainly ruled me out as a candidate. That's not the first time I've heard such message
Well, reading about it on Venkat's blog was in fact the first time I'd heard of it, and it shocked me.  Breaking the build just happens, for reasons that Venkat succinctly describes.  As he also mentions, most important is having a culture that makes fixing the broken build the top priority.

Hiring only non-build breakers shocks me because we need to encourage people to take risks.  Breaking builds is not a requirement for taking risks, obviously, but an environment where everyone has to be perfect on secretarial matters smells badly of a place where everyone just focuses on avoiding trouble, and not on getting things done, not on trying new things, not on taking risks.

Risk-taking leads to more innovation, and innovation drives everything having to do with success.  Research shows this repeatedly.  If you ever hear any interviews with Jack Welch, the great GE businessman, he constantly talks about encouraging risks, and therefore having to also accept failure, despite being incredibly bottom-line, results oriented.

As a hiring qualification, it is at best pathetic, and at worst an anti-pattern.  They might as well have a requirement that only people who haven't had any bad ideas or made a fool of themselves in public apply.

Wednesday, May 12, 2010

It's easy to forget

When reading about guys like Saul Griffith -- who has had, in half the number of years, more amazing ideas than I ever will -- it's easy to forget the origins of greatness.  He lives up to his reputation as "an invention engine": factory-less eye glasses manufacturing, solar energy-collecting roads, power supplies for the One Laptop per Child project.  He seems to spin out new ideas effortlessly.

But, if you have access to the full article, you also realize (once you stop being amazed) that he works on new ideas constantly.  He devotes his life to it.  Even his kids are involved: a hybrid bicycle he made short-circuited, setting fire to the seat that his infant son had just been riding in.

In the end, he represents another example of the hard-work principle, also known as the 10,000 Hour Rule.  Most of the research today on extreme performance and super achievement comes back to the fact that the achievers put in the time, day after day.  Slate offers a nice round-up on recent books on the subject.  (Via Ben Casnocha.)

You don't have to be the greatest programmer walking the earth.  And if you decide equally balance devotion to the craft with your family and friends, hobbies, and health, that makes a ton of sense.  The point is to realize that "greatness" lies within you; how much of it you want to unlock is up to you, and involves, as the Slate article points out, some amount of negative effects.

Tuesday, May 11, 2010

"So long, sucker!"

That's Jurgen Appelo's reaction to news that iPhone OS slipped to third in the US smart phone market.
The Android operating system (OS) continued to shake up the U.S. mobile phone market in the first quarter (Q1) of 2010, moving past Apple to take the number-two position among smartphone operating systems, according to The NPD Group, a leading market research company.
Yes, that means there are more Android phones out there than iPhones.  Right on time.

Apple can easily replace Blackberry as number 2, but they will become an increasingly distant #2.  (Blackberry can survive as long as they continue to be the 21st century version of the corporate pager.)

Eventually, we'll see sites filled with Android user angst over mismatching OS and apps, the unnecessary complexity and fragmentation in the Android market, etc.  Compared to the harmonious, unbelievably serene life for all Apple users.  All of which will be based in truth (though not exactly true), none of which will help Apple ever lead the phone industry again.  It really is the PC game all over again!

Thursday, May 6, 2010

Can you catch Alzheimer's from someone else?

Your spouse having dementia increases the likelihood you'll develop it, according to a new study:
seniors had six times the risk of developing dementia if they lived with a spouse who had been diagnosed with the condition.
The current best theory suggests that the stress of caring for someone with dementia ends up causing dementia.

My theory is that it's another kind of social virus: the same thing that shows you are more likely to smoke if your friend's friend smokes, eat healthier if your friend's spouse starts eating healthier, etc. -- even if you've never met.  Similarly, men experience "sympathy pregnancies", actually undergoing biological changes.

I'll bet if they look at friends of people with spouses who have Alzheimer's, they'll find an increased probability of developing dementia.

Wednesday, May 5, 2010

Is this the future of journalism?

We usually associate crowd-sourcing with web-based software, such as Amazon's reviews and Wikipedia.  These applications would become useless if not for the free contributions of the crowd.

Now the public sphere is getting involved:
  • A US government site helps sniff out fraud in the current economic stimulus by urging online visitors to provide tips about suspicious spending and vote on whether projects appear to be worthwhile and properly sourced.  Stats and rankings of individual projects in all states can be browsed.
  • Meanwhile, ProPublica labels itself a "reporting network".  They use reporters, but most of the work relies on local readers.  A recent undertaking found out which elected officials had free tickets to the Super Bowl (a common perq paid by lobbyists).  Over 500 officials were tracked down and questioned, which would have been a mammoth job even for The New York Times

My question: why don't big businesses do this internally?  A smaller crowd limits what you can do a bit, but with no anonymous members, the results would likely be more accurate.  Or, maybe you leave it anonymous to encourage more boldness; you still know that the commenters aren't total strangers.

The point remains that upper management has no idea which applications are justifiably hated by its users, which support teams have improved the most, which business teams act like a**holes, which company benefits are most valued, which processes stultify productivity.

As the overseer of the stimulus spending put it, "Only local folks can connect those kinds of dots."

Thursday, March 25, 2010

*Too Big to Fail* by Andrew Ross Sorkin

Too Big to Fail gives a good view of how executives and managing directors live: on call 24 hours, breaking off family vacations to deal with company business, showing up hours late to meet your future son-in-law. 

True, rushing back to the office requires getting in a limo with your personal driver or, in one case, a helicopter.  True, the broken family vacation started at a 5-star exclusive island getaway, and they fly back on private jet.  True, you host your guests in your unbelievably large mansion, and when you arrive, you can regale them with unique stories about how you just got out of an all day meeting with the Secretary of the Treasury and the head of the Fed.


So, forget having a family life if you want to make it big in the financial industry, though you will have any comfort money can buy.  Most people would probably make that trade-off, but after reading this book, I realize I couldn't.

I developed even greater appreciation for the government workers heading the Treasury and the Fed.  These guys worked just as hard or harder, but without the perqs or big bonuses.  Of course, Paulson made hundreds of millions already, but why would he want the job?  At one point, he vomited in the trash can next to his desk, due to exhaustion and stress, then immediately got on a call to save AIG.  He and Geithner performed as incredibly tireless servants of the government; Geithner never worked on Wall Street, so he never made the huge bucks.  Meanwhile, the public scrutinized every move of theirs, and when they made mistakes, as surely they did, their critics ripped into them.  Again, I had to wonder about the benefits of the job, and who would want it?

Almost all of the execs and leaders impressed me with their stamina, quick minds (despite the pressure and the lack of sleep), and depth of knowledge.

Sunday, March 21, 2010

Interview techniques: best man for the job

 Sometimes, literally:
The other question I ask is if they’ve ever been in anyone’s wedding party. If someone has asked them to stand next to him on the most important day of his life, at least one person thinks they are responsible. It means they’ve been able to establish and continue a relationship. It’s not always true, but if you build strong relationships with people, you tend to go into a management meeting or a negotiation and come out of it with some respect.
An offbeat idea, to be sure, but at least it catches people in a moment of honesty, and it provides a reasonable minimum personality requirement.  Not to mention, it beats the heck out of the standard way, which Seth Godin neatly and swiftly destroys.

Your company may not do the trial / intern thing, and for technical jobs, a coding test should be 100% standard.  I don't necessarily go for a 10-line program like Jeff Atwood -- I like more open-ended, longer tasks -- but I prefer any real coding task over asking very specific questions about language syntax, which, to me, are the job interview equivalent to "What did Huckleberry Finn eat for lunch?" questions my English teacher would ask on tests to try to make sure you read the book.  Even if someone knows the answer, what does that prove she learned about the story?

Sunday, March 7, 2010

Apple vs the world

Apples lawsuit against HTC / Android is old (well, a week old) news, but this may be the only good part of it:
not everyone is convinced that Apple's strategy is a wise one, and many are concerned this battle is another example that the US patent system—especially where software patents are concerned—is fundamentally broken.
One can only hope that the visibility of this fight will lead to change.  Maybe Apple wins points on legal basis, but the whole point of patents was to encourage innovation -- the idea that someone won't invest in something unless they get some benefit out of it.  There is some truth to that, which is why Thomas Jefferson eventually established the patent system, but he would be deeply opposed to this lawsuit.

So, perhaps this fight will lead to a rallying cry, much like Amazon's 1-click patent eventually slowed down the silliness going on in e-commerce.

Unfortunately, Apple has always been short-sighted in its understanding of its market.  Today we don't have any Mac clones because Apple wanted 100% of that pie.  Despite having a product out years earlier, it was dominated by IBM's open architecture system.
It is not always appreciated just how fast the rise of the IBM clone market was, and the degree to which it took the industry by surprise. 
Think about how much smaller the PC market would be if we had continued down a path of only proprietary systems.  Meanwhile, IBM has built entirely new businesses around the exponentially larger computer market of today.

Android parallels IBM in that it invites the entire industry to participate.  Apple parallels, well, Apple, in that they seek to own all the revenues in a market where they own all the vertical businesses. 

As usual, I'm pulling for the network, the open market, the combined power of the entire industry, not just the geniuses at one, focusing on turning a small market into a gigantic one.  The end of Apple's reign is inevitable, though the lawsuits may make that painful for the rest of us. 

Wednesday, February 24, 2010

Apolo Ohno

Check out this workout schedule.
Ohno hired John Schaeffer, a kick boxer turned trainer, in 2002. Schaeffer’s résumé included work with swimmers, boxers, weight lifters, mixed martial artists and N.F.L. players, but never before had he encountered someone with Ohno’s intensity, recovery ability and capacity to endure pain.

“I don’t know anybody, honestly, who could train with Apolo,” Schaeffer said.

He traveled with Ohno to Italy for the Olympics and to Los Angeles for “Dancing With the Stars.” He once ran Ohno up the mountains near Reading, Pa., three times each day for three days, “like a goat.” ...

A typical workout: eight sets of two repetitions at 1,000 pounds on the leg press, one leg at a time, holding the weight between each set. Then bench hops. Then one-legged hops. Then, in the afternoon, treadmill training, alternating each minute between 12 and 15 miles an hour for 20 rotations.
It's often easy to see the greatness and forget about the hard work. And we sometimes dismiss it as genetics -- he's great because it's in his blood.  But there's always unbelievable levels of hard work and practice behind it. 

In our jobs, we're not really trying for Olympic-level extreme greatness.  But imagine what you could accomplish if you really pushed yourself.  Not up a mountain three times, but at least hard enough so that it hurt. 

Tuesday, February 23, 2010

*Uncommon* by Tony Dungy

Tony Dungy is one of those guys you can't help but root for.  First, he had he a Super Bowl taken away from on the verge of winning it at Tampa Bay, so you had to pull for him to win it at Indianapolis.  Then, a year after his son died, you had to pull for him to win it the next year when his team made it.

The underlying reason shines through in Uncommon.  NFL teams test and time potential draft picks, and then record codes about whether to draft each one.  A guy might be too slow or unskilled to get drafted.  Dungy may be the only one with a code DNDC -- "do not draft due to character".  This extends beyond trouble with the law or recklessness.  It includes work ethic and team orientation.  As Dungy mentions, they have lost out on some major talent due to this provision, but he firmly believes it was worth it. 

Uncommon is a motivational book, well-suited for sports team building at the high school or college level. 

Thursday, February 18, 2010

There's no incentive in bonus

I've been blessed enough to see a big bonus and cursed enough to see the smallest.  The problem is, neither of them affected my motivation -- and not because I'm such a dedicated worker.

When I got a big bonus, I felt good of course.  The next day, the same problems confronted me, and I didn't work any less or more hard to solve them.  You can't make your brain pump out more than what it does, or come up with more innovative solutions suddenly.  The best I could have done was maybe type a little faster.

When I got a small (ahem, zero) bonus, I was very unhappy of course.  But a guy that I enjoyed working with expected me to deliver some code by the end of the week, and I spent the rest of the day dedicated to fulfilling my commitment.  That guy didn't affect my bonus one way or the other, so why should he suffer?  (Another demonstration that friends at work contribute significantly to your job enjoyment.)

The kicker is that my own productivity was one of the smallest factors.  Much bigger: profitability of the company, industry trends, macro-economic conditions.

In good years, a few people felt good, but most had mixed feelings.  After all, most people view themselves as above average, but most will receive an average bonus.

In bad years, everyone felt bad: people that had worked hard felt cheated, and those who didn't were upset just out of disappointment.

So, on net, bonus day as practiced on Wall Street is typically a mixed to negative experience.  It's supposed to reward and thereby encourage performance, but it's so weakly related to performance that it's more like a lottery.  This is the mechanism setting the culture at all these financial institutions that are too big to fail?

Tuesday, February 16, 2010

*The 7 Habits of Highly Effective People*

This is an old book that everyone knows.  I was drawn to it by the title.  Effectiveness continues to be a top priority.  Habits indicates hard work, no shortcuts; I'm a believer in practice making perfect.  Highly, as opposed to Super or Awesomely, is understated and again indicates realistic goals.

Also, the title is much better than How to Win Friends and Influence People.  Apparently, we've learned to be slightly less obvious in our ambitions.

I particularly liked the section on being more proactive.  I mentioned in an earlier post that he has the best definition of proactive, one that actually means something.  I don't know if he coined "proactive" or "win-win", but he might have been the one to popularize them.  Now, those words have been so overused that they barely resonate.

Covey also has a strong smell of authenticity.  You really get the sense that he lives what he's preaching, that he would be living that way even if he knew he couldn't package it up and sell it, and gives the whole thing credence.

This book is particularly good for someone who is in a funk, or maybe between jobs, and needs some direction.  He offers practical ways to implement what he's saying, though I found the "private" / personal changes to be more interesting than the "public" / interpersonal one, perhaps because the interpersonal ones have been re-done and re-stated so many times since then.

Monday, February 15, 2010

Two ways to know you are good

1. when you announce you are leaving, management makes an effort to retain you.  This could come as a salary match, or as a pitch with new title / authority.  It certainly includes sincere regret and the belief that your departure leaves a big hole in the group.

2. as others leave, you find new responsibilities being driven to you.  I'm not talking about being required to take on more repetitive crapwork, but exerting more responsibility and decision making.  As you become the "veteran" of the group, your expertise become more recognized, and you are increasingly viewed as the expert.

As always, these aren't definitive, but you might recognize these patterns as the job market thaws and people leave.

Monday, February 8, 2010

What is enthusiasm worth?

Consider Dan Quayle.  The former vice-president said many ridiculous things that made him seem foolish.
Contributing greatly to the perception of Quayle's incompetence was his tendency to make public statements which were either self-contradictory ("The holocaust was an obscene period in our nation's history.… No, not our nation's, but in World War II. I mean, we all lived in this century. I didn't live in this century, but in this century's history."), impossible ("I have made good judgments in the past. I have made good judgments in the future") or confused and inappropriate, as when he addressed the United Negro College Fund, whose slogan is "A mind is a terrible thing to waste," and said, "You take the UNCF model that what a waste it is to lose one's mind or not to have a mind is being very wasteful. How true that is."
In his run for the presidency in 2000, he limped in the back of the pack because "his campaign was hampered by the legacy of his vice-presidency." 

Consider Sarah Palin.  Her crazy comments during the 2008 campaign piled up cars in a traffic accident.  Her legendarily bad interview with Katy Couric required its own Wikipedia page.

Yet, Sarah is still going strong.  She unofficially reigns as the leader of a dynamic, headline-making political movement. 

And the only real difference I can see between Dan Quayle and Sarah Palin is that Palin is Quayle with spunk.  She's got undeniable enthusiasm.  Her overabundant enthusiasm may be one reason for some people not to like her, but it generates far more good will.

You definitely get the feeling she's going to be around for a long time, regardless of how many mistakes or enemies she makes.  Like her or not, you have to admire her willingness to stay in the line of fire, probably knowing that she is outgunned in every way except her personal enthusiasm.

What would happen if you brought more enthusiasm to your work?  Maybe you'll make mistakes, but you'll likely rebound more quickly from them and go higher.  Maybe some people will be annoyed by you, but you'll likely find more people wanting to be part of what you're doing.  Maybe you'll make more enemies, but more people will seek you out.

Perhaps you're not a people person like Sarah -- lots of introverted programmers, after all.  Maybe you can be enthusiastic about your programming language, or your willingness to constantly refactor, or your openness to helping out when someone else is struggling, or your efforts to make the team more unified.

Enthusiasm doesn't come from emotional bubbliness.  It ultimately comes from conviction: believing in what you do and your own team.  If you can't be excited about that, then something is seriously wrong. 

Think about an important aspect of your job.  How can you make it even better?  How can you convince others?  How can help your team do it more effectively and/or efficiently?

Monday, February 1, 2010

Too much of a good thing

This description blew up all the ways I usually think about team culture:
Despite his forty-year police carer, [John Guido] was never part of the NYPD culture...  "The Irish thought the job was a calling," Guido liked to say to me.  "To me, it was just a job." ... the consummate outsider, he did not mingle with colleagues.  He refused to attend formal police functions like retirement dinners or testimonials staged by wealthy police buffs."
Sounds a someone you don't want on the team.  Not a team player!

But the reason he kept his distance was to avoid the sleazy side of the job.  By keeping himself clean, he eventually became Chief of Internal Affairs, and earned high distinction.

"There are many cultures in the New York City Police Department, but corruption is the strongest one," he said.
A group like the NYPD has the opposite problem of most organizations: too much sense of team and identity.  Corporations would kill for that kind of loyalty.  We usually think of a strong culture as being good, but in this case, Guido points out that it can easily work the other way.  They're so loyal to each other, even the clean ones won't report the dirty ones, sometimes known as the Blue Wall.  As a result, many of them succumb to the temptation of power.

In a job like the police, with its danger and also the dual role the "policed" play as both customer and problem, the cultural problem isn't generating camaraderie and team pride, but doing the opposite -- without killing the pride that you still want good police officers to have in their job.  After reading NYPD Confidential, it clearly isn't easy to do.

 

Monday, January 25, 2010

Proactive people care


"Proactive" is one of those over-used words that you come to hate, even at the same time feeling that it has a rightful spot in the language.  The 7 Habits of Highly Effective People provides a nice definition for "proactive", one that I felt captured what it should mean, elegantly and directly.  (For all I know, maybe the author coined the word himself.) 

In the world of things that you care about, you can only affect some percent of that.  Having a proactive mindset means working to expand your influence over as many areas of concern as possible.

A side aspect of this definition: if someone you work with isn't proactive enough, maybe they haven't figured out why they should care?  (And if that's something that concerns you, maybe you need to try to influence them.)

Thursday, January 21, 2010

Would you be happy to skip your review?

At my friend's company, no one had mentioned anything about having a review this year.  Finally, my friend asked his boss, "Are we having reviews?"  The response: "Well, last year, we did all the reviews, and HR was supposed to signoff on them all so we could pass them out, but they never even returned them.  So I figure, why bother?"

See anything wrong here?

If the manager values the review only for the HR documentation, then the manager's response was perfectly rational.  But, the only value of an HR signoff on a review is for disciplinary purposes.  99% of your reviews, therefore, won't really need an HR signoff.

The real value of a review is feedback, thereby helping people grow their skills.  One of the most productive review comments follows the lines of "you are good at X, and are ready for the next step, X+1 or Y".  A good review enlightens and energizes the recipient at best, and focuses them at the least.

Of course, we don't always have managers who are good at giving reviews.

Learning to do that is a critical skill that a manager should develop, and that takes practice.  (Hopefully, the manager gets that feedback in their review!) 

You could also argue that you don't need an official review, that you could and should provide feedback everyday.  Which is true.  But 1) what are the odds that someone who doesn't give a productive annual review is going to be good at giving regular, on-the-spot feedback?  And 2) just as people go to church / mosque / etc to pray (they could be equally spiritual in their own home anytime), blocking out time away from the daily fire-fighting and distractions helps you focus on the subject at hand.


I thought about telling my friend that he should say to his boss, "Even though we're not having reviews, could you give me some feedback on how I'm doing, what I did well, and what I could do better?"  Better still, he could write up his own thoughts, give them to his boss, and ask for comments.  But given his boss's view of what a review is, why bother?

Wednesday, January 20, 2010

Interesting thoughts

It's so easy to have interesting thoughts these days: the thoughts of the greatest and most interesting minds on the planet are, for the first time in history, available to us in near real-time.  To read them is to have them.

The richest man on the planet tackling the world's biggest problems.
Nobel prize winners on the economy, incentives, environment.
The top experts in any field you care about.

In the past, we'd have to pay thousands of dollars or buy a book of dated thoughts or know someone who knew someone.  Today, you can get the vast majority of it for free.

In a sense, expertise is becoming rampant.  How are you going to compete in such a world? 

The good news for you is that you only need one job.  Expertise in the current job will lead to the next opportunity.  Repeat.

Tailor your solutions to the situation.  In that domain, however narrowly defined, you can be the expert.  It will still require a great deal of knowledge, diplomacy, effort, risk-taking, commitment, and discipline... among other things. 

At the same time that it's never been easier to have access to expertise, it's never been easier to be your own expert.  Think about your unique domain, your unique job situation, and come up with your own interesting thoughts.

Tuesday, January 19, 2010

Portable dev env, cont'd

So far, the portability has been very useful.  I dropped the whole thing onto my work computer in a couple mins.  On the whole, saved me a lot of hassle.

The main tweaks I've made so far:

1. Environment variables.  For Java you need JAVA_HOME, etc.  Typically, the installer creates system vars, so you could manually do this, but I do something even better: create small shell files that sets it as a temporary user var.  Then you add a call to this file anywhere you need it.  For example, instead of executing Eclipse directly, create a shell file that first calls the file to set the vars, then executes Eclipse.  The beauty is that you can run multiple environments at the same time.  For example, because you're using user vars and not using system vars, you can run your app with JAVA_HOME pointed to 1.5 version, and then run it again with JAVA_HOME pointed to 1.6.

You need versions for each OS you run on, but that is pretty basic shell writing. 

2. Registration settings.  The installer typically sets the extension to automatically invoke the executable; i.e., .rb files can be run directly, without pre-pending with "ruby".  Minor issue to me, though you could easily write a script to registers the association wherever you are, but you might compromise your ability to run multiple environments.

A bigger deal is that in Windows, you lose right-click shortcuts.  In some cases, like 7zip and Vim, it's an inconvenience, but some others, like gitTortoise, you're out of luck.  No gitTortoise for you, just the git command line or built-in UI.  I do like Tortoise from my SVN days, so you could go with a mixed strategy: install locally where you can, but keep the portable version as part of the env in case you find yourself in a situation where you can't install an app.

3. gVim settings.  One of the pleasant surprises with Vim is that everything seems to be configurable, and thus it supports every feature I've thrown at it.  Here's the ones I've added to my default settings, critical to me for usability:
colorscheme murphy " you can get very granular, but I just chose one of the included themes
set number " turn on line numbers for all doc types
set expandtab " convert tabs into spaces
set tabstop=2 " set tab width
set shiftwidth=2 " indentation
set lines=60 " width of Vim window
set columns=80 " height of Vim window
set directory=..\..\temp " location of backup files
set backupdir=..\..\temp " location of temporary files
vnoremap < " de-indentation of highlighted text block using <
vnoremap > >gv " indentation of highlighted text block using >

4. network drives.  If you keep the portable env on a local drive, you won't have the problem discussed here.  Because you don't ever know whether you'll be dropping the env on the C: or the J:, on the root or in "/dev/my env/dir/subdir", you have to use relative paths and directory variables when.  So far, this has never been insurmountable, but the most difficult challenge was when I dropped the env on a Windows network directory. 

If you run a .bat file on a network drive, it can't change directory to there, so it defaults to the local Windows system directory, and all your relative paths are messed up.  Here's some good documentation on it, but the quick answer was using pushd "%~dp0" at the beginning of the batch file.  This creates a drive letter and points to the dir that you're executing the batch file in.  Now all your relatives paths are intact. 

-----
It might seem that getting the portable environment right sucks up a bunch of time.  That's true, but actually whenever you want a good personalized environment, you spend quite a bit of time installing and configuring your tools.  The great part about a portable environment is that you won't have to do it again!

Monday, January 18, 2010

Killer handheld tools

The Palm was almost the first killer handheld tool.  As a glorified datebook / contact manager, it ran out of steam fairly quickly.

Blackberry was the first real killer handheld.  It married the power of email (the first killer network app) with a phone, and did it so well that you bought the thing just for that.  As a professional tool, it still has legs, though its reached the end of its consumer market.

iPod was the next.  It married your Walkman / mp3 player with access to online music.  No more disks.  It did it so well, you bought it just for that.

iPhone was an easy next step.  It married your iPod to your phone to a bunch of mini-apps.  Truly revolutionary.  It was also brilliant as a build-on strategy for iPod: even if you don't want the phone, you might still want some of the apps.

The Kindle is a hot tool right now, but you wonder whether reading books will be a narrow market like contact management.  Amazon (the book web site) with Kindle is functionally the same as iTunes with iPod.  The question is whether Amazon has an iPhone up its sleeve, which would bring the hammer down on all the wannabes.  Amazon's iPhone might not necessarily be a product; it could also be a service.  I just don't see what that is, though I suppose if I did, I would have a much different position in life.

A lot of phones are trying to marry themselves to online apps, again looking for that iPod + iTunes magic combo.  That was a big selling point of the Palm Pre, with its Facebook connection.  Dave Winer suggests a Twitter camera.  These are all well and good, but in the age of mini-apps, it's hard for a single company to defeat the rest of the market.  As long as Facebook and Twitter remain independent, a single vendor will have difficulty obtaining an advantage.  Apple owned iTunes.

Google has the best shot.  They have a very hot set of online applications -- email, docs.  They have the hottest OS, which means more features and more mini-apps.  And they have their own phones, which will work seamlessly with their products.  So, they own the whole chain, which they can turn into a great user experience.

Squeezing into this mix is the upcoming Apple Tablet.  I suspect this will mostly be an iMac tablet notebook with lots of multi-touch.  Is that enough to make it a winner?  As a build-on strategy to iPhone, it's a good chance to take, and this is the time to do it.  But with Android coming on strong, iPhone may not have the coattails.

Wednesday, January 13, 2010

50% tax on bankers, US

I didn't think we'd see it, but someone will actually propose a 50% tax on banker bonuses. 
Rep. Peter Welch (D., Vt.) introduced legislation Tuesday to slap a 50% tax on bonuses in excess of $50,000 paid to employees of any bank that received bailout money. The proceeds would be lent to small businesses struggling to find loans from commercial banks.

I give this no chance of passing, if for no other reason than it's too late in the cycle.  The bonuses are practically out the door.  You don't want a situation where you have to clawback the money, or if it's the banks that would pay, they have a big unexpected bill suddenly due. 

But, I'm still surprised to see it raised as a possibility. 

Tuesday, January 12, 2010

Out of business

I passed by an empty store front that used to be a restaurant.  Above the front door and window, they had a big awning with the word "RESTARANT".

Maybe they had the best food in the world there.  Maybe the nicest wait staff, and the most organized owners.  Maybe.

But I'd be willing to bet no.  Even if they hadn't been out of business, I would hesitate to go there just based on the sign.  Can one typo really mean that much?  Well, if they can't bother to spell correctly a few words that they're paying thousands of dollars for, what are the odds they're going to do the $10 dinner really well?  Sure, if all my friends ate there and assured me it was delicious, I'd give it a shot.  But chances are they won't get that shot from my friends either.

One reason I like to give code exercises on job interviews is to see the coding grammar of the applicant.  Basically, I want to know how easy to read their code is.  So I also look to see if they've modularized, or they just have one big function.

I also want to see how complete it is.  What kinds of errors did they anticipate?  How robust is the solution?  Is it extensible? 

What I don't do is give knowledge tests.  In fact, I like to sit someone at a computer, and they can have all the time they want to google up however much help they need to finish the code.  Because, frankly, if you can walk in not knowing the language and write me a very small mini-app in a few hours, well, you're probably the right kind of person we want to hire anyway.

But, more importantly, even with the time constraint removed, and knowing that this work will be reviewed, it is surprising how many people will sloppily have typos and lazy naming.  All single-letter variables.  No naming convention.  Very basic words misspelled.  No indenting.

Does this stuff matter?  Some might say no, but I think if you can't bother to get this right when you have no time constraint, and your own money and career are on the line, what are the odds you'll do it under pressure and it's someone else's (the company's) money at risk?

Thursday, January 7, 2010

40 things all working together

A friend of mine is a high school inner city principal.  Inner city meaning Newark, NJ, a pretty tough area.

We were discussing what works at his school, and I asked him whether uniforms had an effect, given the studies that showed that they didn't.  He replied, "Uniforms by themselves don't do anything, but as part of the overall picture, they're vital.  They're one of 40 things that you have to do right.  Working together, they make all the difference."

That reminded me of Agile practices.  I've known several teams where a decision was made to hold a daily scrum.  Didn't do a lot.  People grumbled about the pointlessness and hype.

Like many big institutions, my bank is not Agile, and so I introduced pieces of it slowly.  I found weak to no benefit until I had a decent list in place:

* daily scrum
* strictly focused discussion during scrum
* burndown charts
* self-organized teams of 3 to 4 developers
* 2- to 3-week sprints
* automated daily builds and at check-in
* product backlog
* iteration planning with the product manager
* team iteration reviews
* product demos with the product manager and users
* decision to have release or another sprint after each iteration
* cross-functional skills

Once I had these things in place, I really noticed clear improvement.

But if you had added any one or two of them to our previous team and structure, no, it wouldn't have made any difference.

Tuesday, January 5, 2010

The Year in Ideas

Toward the end of every year, the New York Times publishes a magazine dedicated to interesting ideas of the past 12 months.  It's a wide-ranging list, with lots of things you'd never think about.  Here were my favorites from this year:

* Randomly promoting people gives better results than the system you have.
* Printable batteries.  And you thought e-ink was pretty impressive.
* Older workers are just as productive.  Equally important: age-mixed workforces outperform homogeneous ones.  So don't staff that start-up with just college kids!
* What Google search teaches us about species preservation.
* Your yearbook photo predicts your likelihood of divorce.
* "I will regard the experiment as a success," he wrote, "if [comments on my blog] leads to anything that could count as genuine progress toward an understanding of the problem." Six weeks later, the theorem was proved.

Sunday, January 3, 2010

Building a portable dev environment

I started a little coding side-project, and came to the idea of putting the whole dev environment on a usb drive.  That way, I could plug it in wherever I am, on any computer, and have all the tools I needed without any additional setup.

An additional benefit: to bring another developer onto the project, I could just drop the contents of the drive on their computer.  They'd be instantly ready to roll, with close to zero start-up effort.

I have a 8GB drive, but so far the environment uses only about 500MB.  Here's what I installed:

* JRuby.  The project calls for Ruby, and I went with JRuby because it's extremely portable: just extract the binary zip to wherever you need it.  You might be able to setup Ruby on a flash drive, but the options sounded more experimental. 

* Java SDK.  Turns out you can direct the java installer to point right at your USB drive.  Here's more detailed instructions.  Very easy, ran across only one bug -- closed by Sun though not fixed -- that didn't have any effect on performance / function.

* Eventually, I'll need a j2ee container, but I feel pretty confident I could get resin or tomcat or glassfish working on a drive.  Installing webapps on a j2ee container involve nothing more than just a .war file drop, of course, so dropping in Rails should be a snap.  I don't need Rails just yet, but I'll post an update when I try that.

* Git.  Git offers a portable version, and is more appropriate for distributed source control than something like subversion.  If I used subversion, that would mess up the whole goal of keeping it on a flash drive.  I wouldn't be able to drop the env to a friend at a moment's notice, and then we'd need a central server stored somewhere.  Git might need some additional config if others join, but for now it's just me.

Of course, using Git might seem like overkill to some.  I like to save versions frequently, and I quickly get tired of and confused by all the .old and .dated files and directories lying around.  Git will eliminate all that clutter.

* Firefox.  While coding, you always end up with a ton of reference and investigation links.  I thought taking my browser with me would be better than storing links on a 3rd party site, which I've never really liked.  IE is not a possibility, and I prefer Firefox for the add-ins anyway.  This ended up working very well (as long as you bump up the cache, which defaults at 0), except for one problem, which might be considered serious.  If you run the portable version, with all your dev-related links, and then you try to run your local version, Firefox just runs another instance of the portable version.  So, you can't get to any locally-installed links without closing the portable version.  One workaround would be to store all links on all your Firefox installations, but I wasn't really looking to store, for example, my company's HR website on my dev env, especially if I want to drop the whole thing to another developer at some point.  Will have to think about this one a bit more.

* gVim.  I want to use the same code / text editor on any computer; your productivity increases as your expertise increases.  Yes, going to gVim feels a little like using WordPerfect on the dawn of Word's impending domination, but gVim is much more robust than Notepad++, which might be the only other possible contender meeting these two criteria: free and portable.  Frankly, I found very few features that gVim didn't have or couldn't be added to the default configuration.  A robust text editor decreases the likelihood of needing to fall back to a full-blown IDE, which I'm not sure would run well on a flash drive (though some say it works).

That's where I am so far.  Other than the remaining Firefox issue, the results have exceeded what I thought was possible.  I'll provide updates as my env requirements grow or unexpected issues pop up.