Information Technology Dark Side

A Corporate IT Survival Guide

Information Technology Dark Side header image 1

Five Tips for Balancing Work and Life When You Work From Home

April 16th, 2009 · Comments

Working from home is fantastic for introverts like myself. Every morning I put on a nice pair of soft pajamas, wander down the hall to my little office, and work for hours on end with minimal interruptions. No one drops by to tell me how much they drank the previous night. There are no loud conversations near my cube about pitifully disappointing local sports team, no overheard conference calls from the project manager who isn’t happy unless she’s shouting, and no random dropins from the village idiot who can’t understand why he doesn’t get anything done. I’m enjoying productivity levels I’ve never had before in my career, and I like it.

To make things better, my schedule is very flexible. I can pick up kids from school sometimes, take a short nap in the afternoon if I need one, and if I get up in the middle of the night and work is on my mind I can get to it, not on a tiny laptop screen over the vpn, but on 42″ of widescreen monitor madness in the comfort of my skivvies.

Working from home is a dream come true for me.

It hasn’t always been so great for Shannon, my wife. Sure, I’m around more (which she likes), but that doesn’t mean I’m always mentally available to her. The boundary around my work life, once distinct in a very 8-4:30 sort of way, is gone. Work is always there, just a few steps from my bedroom, sandwiched in the little guest bedroom down hall, waiting for me, luring me away to fix just one more defect, answer one more email, or simply lurk in IRC to see what’s going on with my colleagues in other time zones.

I used to come home from work and leave it all behind. Somewhere in the 35 minute drive from the north side to my little suburb I would forget about the job I disliked and my thoughts would turn to home. I would plan home projects, activities with my kids, dates with my wife. I almost never brought my laptop home with me, and even when I did it almost never left it’s bag.

Now, however, work is everywhere. I feel guilty if I’m in front of a computer and I’m not working. I can hear IRC chirping away down the hall at night, and it’s hard for me to resist getting up to see what’s going on. Sometimes, I will spend nearly every waking hour of the day working.

I knew I had to make some changes when my nine year old complained that she saw me less now that I worked from home than when I had a “normal job”.

Here are five things I’ve figured out about making working from home work for me and my family.

Establish a routine that includes your family
An 8 to 5 job creates a predictable routine for your spouse and children. “Daddy’s home” used to be a clarion call in my house. Family members are comforted by predictable routine’s - the knowledge that a parent or spouse will be available at regular times each day is valuable in establishing closeness and communication.
I try to make lunch for my son every day when he gets home from school if I can. I think he looks forward to this interaction with me as we share a box of mac and cheese.
On Fridays, I pick my daughter up from school in my old beetle and take her out for an ice cream cone. Every day, I take breaks with Shannon. Together we play Dr. Mario on the Wii, talk about the kids, or plan family stuff like meals, vacations, etc.

Create boundaries between work and play
You’ve got to leave work behind for at least three things in your life:
1) Meals and bedtime. Don’t miss opportunities to sit down with your family and share a meal or talk with your children as you put them to bed. Meals and bedtime are critical social events for your spouse and your children.
2) Dates with your spouse are off-limits for work. Leave the blackberry behind. Better yet, pro-actively plan them. Don’t make your spouse beg for your attention.
3) Exercise. Life in a cubicle is already too sedentary. Move the cubicle to your house and you will lose even more physical activity as walking across the parking lot, climbing the stairs, and wandering from meeting to meeting disappear from your daily routine. Block off time to exercise and don’t let work intrude.
Take advantage of your schedule’s flexibility to lighten the burden for your spouse
Remember those breaks around the water cooler? The trips down to the coffee shop with your co-workers? Replace them with a load of laundry, meeting your kids at the bus stop, changing a dirty diaper (the stinkier the better), or making a random bed. Be helpful.
Being helpful around the house has at least three benefits:
1) Your home will be cleaner. Cleanliness (not sterility) is conducive to productivity for many people.
2) Your spouse will like you more and have more free time. Plus, she’ll notice how cute you look with a duster.
3) Manual labor has a way of clarifying problems and evoking solutions from the subconscious. Folding clothes is a thoughtless activity that allows your body to function with little input from your mind. As a result, it wanders through the problems of your life in an unstructured way that often results in valuable insight.
Be cheerful and nice
For me, the commute home was always a purging event for me. I used to pick a landmark like a bridge or a mall at which I was committed to not thinking about work anymore. It was the boundary - work ended at the red bridge halfway between home and the office.
There are no bridges between my office and the living room, no checkpoints where I can dump my work baggage and transition to the father/spouse/friend mindset. I have to switch between those mindsets more rapidly and more frequently now. Even if I’m banging my head against my desk trying to understand a monster sql statement, that’s no excuse to be short with Shannon or to ignoreedfa my son’s pleas for help with his shoelaces.
For me, it has really helped to simply adopt a more cheerful mindset. Everything’s going to work out. When work is frustrating me, I take a break and flirt with my wife or play with my kids. I try to take a moment to bring happiness to them, and then I find my brain is more capable of re-engaging the difficult task in a more positive way.
Have an office door and use it wisely
I have a few meetings each week. I use skype for most of these, taking advantage of the excellent built-in microphone on my iMac. This also means that it picks up other noise, like my 5 year-old son shouting “Dad, can you look and tell me if my bottom is clean?” from the downstairs bathroom. I shut the door when I’m on the phone, but it’s just not to prevent embarrassment for myself. It’s also to reduce the stress for my family - if I shut my door they don’t have to modify their routine to keep an atmosphere that’s conducive to productivity for me. Shannon has enough to worry about without trying to keep the kids quiet so Daddy can work.

Working from home can have its complications, and it often requires a period of adjustment from you and your family. Some of those adjustments can be difficult, but if you are determined to be cheerful and helpful throughout you will find ways to balance your commitment to your employer and your family in effective and productive ways.

If you enjoyed this post, make sure you subscribe to my RSS feed!

CommentsTags: Job Advice

Obama Administration Announces “Citizen Cloud” for Federal Software Applications

April 1st, 2009 · Comments

United States Chief Information Officer (CIO) Vivek Kundra today announced a comprehensive plan for reducing the infrastructure costs of hosting federal software applications by implementing a “citizen cloud” that will use the spare cycles of the idle computers of American citizens to run the myriad of software applications used by the federal government.

Here is a partial transcript of the press conference where this dramatic move was announced:

Vivek Kundra: The citizen cloud is a tremendous step forward in information technology hosting services. By running our government’s critical applications on a network of computers that are owned and maintained by American citizens instead of in huge, expensive data warehouses we will be able to reduce the federal technology budget from $80 billion to $10 billion in just six months.

John King: Obviously, I know what it is, but the average American citizen has never heard of cloud computing. Can you describe how this citizen cloud works?

Vivek Kundra: Cloud computing is an approach to computing that has evolved over the years. It takes advantage of the fact that the computers of an average American citizen sit idle an average of 90% of the time. Our plan is to borrow these spare cycles and use them to run the software the federal government uses to perform its obligations to the American people.

Lou Dobbs: What sort of software are we talking about here?

Vivek Kundra: Great question Lou. The citizen cloud is the preferred platform for every federal software application. We’re going to start migrating everything from the IRS tax refund processing platform to the CIA’s terrorism surveillance database to the citizen cloud within a week.

Marshall Kirkland: Wow. That’s pretty ambitious. Aren’t you worried about hosting sensitive information on machines you don’t have direct control over? I’m not sure I want my tax refund being hosted on my neighbors mac.

Vivek Kundra: We take security very seriously. That’s why every computer in the citizen cloud is going to use a special software package called eCondomsWork that isolates federal data from the rest of the data on that computer in a secure wrapper called an eCondom. The condom protects the data from penetration both by the computer owner and by viruses that exploit weaknesses in the OS and browser to attack the data.

John King: This condom thing - can you tell us more about how it works.

Vivek Kundra: (smiling) I’m sorry John, but if I’d known you were going to ask that I’d have brought someone from the FDA.

Wolf Blitzer: I don’t particularly want the federal government using my computer. What incentive do I have to let you use my spare cycles?

Vivek Kundra: Every American should feel a patriotic duty to support the government. This really is a moment for Americans to ask what they can do for their country, not the other way around. But… if that doesn’t work we have other options, one of which includes tax incentives.

Marshall Kirkland: So, you’re considering paying Americans to use their computers. Would it be a substantial amount?

Vivek Kundra: We’ll make it worth their while, but it will still be very cost effective compared to hosted data centers. An average home with one or two computers and broadband internet could earn as much as $1000/year.

Wolf Blitzer: What if that doesn’t work? That’s not a lot of money to many Americans - won’t a lot of Americans just forgo that money to keep your software off of their machines?

Vivek Kundra: Perhaps. But there are ways around that too. In fact, we’re considering just declaring spare computing cycles the eminent domain of the United States, sort of like the wireless spectrum, and controlling it that way.

Marshall Kirk: Even if you use eminent domain to claim the cycles, won’t you still have to get access to the boxes? What if citizens won’t let you?

Vivek Kundra: We’re going to use a time-proven method of appropriating spare computing cycles without the owner’s permission. Sometime next week, an email will go out to every American citizen promising them a nude picture of President Obama if they open an attachment. That attachment will secretly install the CondomWorks software package and display a tasteful picture of our president. At that point, we will have successfully appropriated the users computer.

Marshall Kirk: What about anti-virus software? Won’t they block you?

Vivek Kundra: We’ve already made agreements with the major software vendors to facilitate the CondomsWork attack and the FCC is announcing new regulations on broadband internet that make it illegal to actively prevent the CondomsWork installation and execution.

End of transcript. For the full transcript of the press conference, go to CIO.gov.

The federal Citizen Cloud is modeled after a successful program initiated by Indiana governor Mitch Daniels to use spare cycles of Hoosier’s computers to operate the state’s public registered sex offender’s database. Indiana has been using a network of 20,000 home computers to track and publish the whereabouts of the criminally perverse since 2007 for a claimed savings of $2.3 million.

Opponents of the plan claim they have been able to exploit a safari vulnerability to obtain the IP addresses of the entire Indiana citizen cloud and have traced them back to physical locations.

“80% of the computers used in Indiana’s so-called citizen cloud are in fact not the computers of citizens at all,” says Walter, an anonymous member of KillTheCloud, an Indiana-based information security group that is opposed to the use of cloud computing. “They are actually computers that we have been determined are not in the United States at all. In fact, nearly half of them are in former Soviet Bloc nations, and 25% of them reside in a data center known to be used to operate an illegal spamming botnet.”

When asked about the CondomWorks package, Walter had nothing positive to say. “CondomWorks is a total piece of crap. It is easily ruptured by both the computer owner and browser-based attackers. In fact, the hacker who obtained the IP addresses for us was able to break through Indiana’s CondomWorks package in fewer than 100 key strokes.”

“The citizen cloud is going to be a complete and total security disaster. Not only will the data be stolen, but it will be only months before smart software developers begin perverting the governments software to their own means, such as inflating tax returns, modifying criminal records, and stealing government resources.”

Representatives from the Indiana governor’s office were not available to comment on the allegations of KillTheCloud.

If you enjoyed this post, make sure you subscribe to my RSS feed!

CommentsTags: Announcements

Five Tips for Being a Diva-loper

March 24th, 2009 · Comments

Diva-loper (dee VAH loh per): a software developer who is arrogant, difficult to work with, high-maintenance, manipulative, fussy, highly strung, privileged and demanding (swiped from Wikipedia).

Tip #1: Don’t be bothered with testing. Testing is for wannabes, for tech-weenies who can’t code. Why should you waste your $100/hr skills on an activity that $30/hour NOBODIES can do for you? Besides, your code is probably perfect anyway.

Tip #2: Code everything yourself, especially the user interface. Dude - UI designers are a total scam. They’re just a bunch of punks who learned html in high school and now they think they’re artists. You don’t need them. Just roll your own UI and tell the users to go sit on a fork if they don’t like it. Usability is for crack heads.

Tip #3: Establish your territory and don’t let anyone else play there. This is your code darn it. No one else can work it the way you do. Anyone else who touches it will just screw it up. Only you are worthy!

Tip #4: Never talk to users! Users don’t know JACK. Listening to them is a complete waste of time. Your time would be much better spent putting three layers of abstraction on that widget you built yesterday so that it can be used in every imaginable context. Isn’t that what business analysts are for anyway? To babysit the stupid users?

Tip #5: Stop learning NOW. You already know everything. Heck, you wrote the definitive framework for automating business decisions like, 10 years ago. Why would you need to learn anything now? Everyone should be learning from you, not the other way around.

The path to becoming a diva-loper isn’t easy. There will be naysayers, critics, and scorners. But you have a dream, and if you stick to it, you can do it. Along the way, you’ll alienate your friends, disenfranchise users, lose your cutting edge, and ignore important aspects of the software development discipline, but when that great day comes when you stand at the top of the pile, grinding the faces of your colleagues under your heel, the view will be fantastic. And you’ll be the only one there.

Note #1: This is obviously a sarcastic piece. That said, it will take all of 10 minutes before someone quotes me as saying testing is for wannabes. That’s not cool and it’s clearly not the way this is meant to be interpreted.

Note #2: You might be tempted to believe this little rant is inspired by the bad behavior of one of my colleagues or business partners and you would be totally wrong. It’s not inspired by their bad traits, but rather by their good. They are anti-diva-lopers, the epitome of good development habits and behaviors. I was thinking about that last night and how to best describe the traits I see in the developers I respect the most, and I thought it would be more fun to describe what they are not than what they are. So that’s what this is - a description of what they’re not that makes them so good.

If you enjoyed this post, make sure you subscribe to my RSS feed!

CommentsTags: Uncategorized

Symptoms of an Unhealthy Workforce #1: Caring about Stupid Stuff

March 23rd, 2009 · Comments

Once upon a time I worked in a little fabric box on a team that was bitterly divided over who should be in charge. You see, we were all consultants (from competing companies) working on the same project. The rates were good, but the team was eventually going to shrink when we went to production and the client chose a few of the consultants to stay on in support roles.

Most of us were independents. I had myself and two other consultants. Another group also had three guys there, and then there were two or three loners. I was younger then, more aggressive and less critical of myself (a reasonably nice way of saying I was stupid, don’t you think?).

The client brought in a team lead, who we’ll call Bill, and asked him to manage the contentiousness between us. A difficult task, since it was rooted in each of us competing for our financial well-beings. Bill decided that contention would be reduced by changing our seating arrangements and forcing competitors to sit nearer each other. He created an optimal seating designed and asked us to move.

Until that moment, I had always had a corner cubicle that was slightly larger than the others. Nice right? Not really, because that extra space had been used for years as a place to store extra manuals. Every license of the software we were using came with about 2 1/2 feet of manuals, of which only 1 1/2 inches were useful. Every time the software was updated, we got a new set of manuals, and nobody ever threw them away (This is state property we’re talking about!). So, everybody stacked them in my corner. They were there when I inherited the cubicle, and they were there when I left. I didn’t think anything about it.

I left that cubicle as part of the brilliant seating re-arrangement, and George moved in. I did a reasonable job of cleaning the cube, but I left the old books. When I found even more manuals in my new cube, I did what everyone else did: I put them in the corner.

This infuriated George. I’m not exaggerating when I say this - George wanted to go outside and have a fist fight. Seriously. It didn’t matter that he and the others had been putting those books there for years. It was his cube now, and he cared. I had some nerve dumping my crap on him like that.

I was astounded at the anger that boiled out of George at this moment. It was insane.

But that’s what happens in an unhealthy workforce. People start to care about crazy stuff, like where they sit, how big their cubicle is, who’s better pals with the boss, who gets dual monitors, and who’s cubicle location is “best”.

It’s an artificial economy of status built on the lack of a clear method of establishing pecking order. Humans, just like chickens, have a need to “know where they stand” in an organization, so they create fake ways of figuring it out. Chickens resolve this by fighting, humans in corporate IT do it with social shadow-boxing where meaningless factors like cubicle size and lunch with the boss establish who is “better”.

I’d tell you not to play this game, not to get caught in the petty feuds of who’s the better employee, but I’m not sure it would help. I’m not sure people can rise above this very primal need to know where they stand in the social order. It starts when we are very young (I was only moderately cool in high school) and I don’t think it ever goes away.

Instead, I think organizations ought to embrace this need for social structure and use it to their advantage. If you can make it based on things that are easily measured, like popularity and pay, it might less unhealthy. If everyone knew what everyone made, everyone would know where they stand. There would be other problems of course, but there would be no need for wondering who was most valuable.

Another method for establishing pecking order that I’ve always favored is an NBA styled draft and trade system. Every year, managers get to bid on project managers they want to work for them, and likewise project managers bid on their teams. Throughout the year, they can trade with other teams as suits them. All the trades and bids are public, and they translate into income for the players. Highly productive people with good social skills would be valuable and sought after - less productive people and angry misfits would find their options more limited until they improved themselves.

I think it’s ironic that the methods most useful for establishing a pecking order, pay and performance, are also the most protected in terms of personal privacy. I don’t think it’s a good thing - in fact I think it is very unhealthy. I wish it were all public.

Or at least I used to. I don’t work in a cube anymore, and I find I’m not concerned about where I stand in the pecking order. It feels healthy to me - I guess it’s true that on a good team even the punter is happy.

If you enjoyed this post, make sure you subscribe to my RSS feed!

CommentsTags: Uncategorized

When Project Cultures Collide

March 20th, 2009 · Comments

Back when I was still a minion of the dark side (corporate IT - wow that seems so long ago now) I frequently had difficulty obtaining services from other parts of the organization in a way that complemented the agile approach my project teams utilized. Every time I interacted with infrastructure, for instance, they wanted all of my requirements upfront, so they could do comprehensive once-and-done design. “I’d rather build out our infrastructure incrementally,” I would say, and sometimes I would be successful, but… mostly not. When other project managers would ask me how I was able to pull off agile in a waterfall world, I would often say something like “it leaves a lot of scars” because the truth is my approach just didn’t fit in.


Now that I work in a group that has really embraced lean and I have a technical role much more than I used to, I don’t run into that problem as much. Trust me, I don’t miss that issue. But occasionally I have to interact with an outside service provider who has a notion about the “right way” that can make things much more complicated than it needs to be. It’s not as frustrating as the problems I would encounter in the dark side when there was outside pressure to do BUFD or BUFR, but it is still difficult to deal with.

Here are some tips for dealing with outsiders who don’t usually work the way you do:

  • Explain your approach and see how they respond. Sometimes you will find an unexpected ally by telling them there are simply some aspects of the future you can’t predict and that you want to build something up incrementally and postpone technical commitments as long as you can without being irresponsible. Sometimes you’ll get derision. I’ve been called a cowboy more than once.
  • Find a different way. One of the beauties of technology is there are so many options. I think it’s okay to take the path of least resistance if you are blocked by an uncooperative, unresponsive, or simply slow moving bureaucracy.
  • Pick your battles. Don’t let a philosophical difference about project managemetn become a barrier between you and service provides. Minimize the differences when you talk about your approach, and don’t escalate conflict to higher levels of animosity than necessary.
  • Do the bare minimum to get by. I was always amazed by the answers I got when I asked infrastructure people what the absolute least amount of paperwork I had to to do to get resources was. It was often a tiny percentage of the massive forms they provided. Find out what parts of the process they measure and care about, make yourself look good there, and ignore the rest.
  • Get in the door, then collude with the people on the floor.This goes along with the previous point. Sometimes, it’s smart to just get through the engagement process to the point where you are working one on one with the actual service provider (not their agent/manager) and corrupt them with your subversive ideas.
  • Talk about goals when people want BUFD/BUFR. Often, people really only want to see the big picture when they ask for your requirements upfront. So, tell them a story, and make the questions you don’t know the answers to part of the story. Once they see the problems you are tackling, they’ll have a better sense of why you can’t define everything up front and they may not even expect you to.
  • “Because we’re using scrum” is not a reason. Arguing project methodologies is a waste of time and will only make it harder for you to engage with waterfall service providers. Talk about real problems, not abstract philosophical concepts of project management.
  • Good luck.

    Dave

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Uncategorized

    How to Use @Reply in Twitter Messages

    March 11th, 2009 · Comments

    @reply is a great feature in Twitter. You can use it to draw the attention of a specific Twitter user to a message, but let the Twitterverse in on it as well (as opposed to direct messages, which are private but can only be sent to people who follow you).

    Most people use @reply to send a message to a specific user, like this:

    @aldos You have CIWS (Corporate IT Withdrawal Syndrome). Keeping all emails to CYA is a classic symptom.

    or like this:

    @pkirkham Could you please DM me your email id?

    I find @replies a bit annoying if they are used in excess, especially if there are extended periods of back-and-forth between a person I follow and a person I don’t. I’ve also found that some people use @replies in ways that don’t annoy me. Here are some tips for using @replies that I think are useful:

    Make an @reply about a person as much as it is to a person
    Here’s a good example:

    Looks like @aldos is working on getting un-followed again with his heretofore twitter style point deficit.

    I like this use of @reply. It tells me I’ve been annoying, but it’s not really just to me.

    This tweet, from my friend and boss @mherrick66, was a response to a bit of spamming I did as an experiment to promote Uladoo. I sent @messages to about 8 different people I didn’t know but thought might be interested in Uladoo. Which brings up the next point:

    Don’t use @reply to spam people
    If you want to send a message to a specific person, hoping for a re-tweet, follow them. If they follow you back, send them a direct message. Especially if you are going to send the same message to several different people who don’t know you from @adam.

    Don’t start your @reply with @reply
    Sending a tweet that starts with @reply is like starting a letter with “Dear David”. That’s actually fine and normal for private correspondence, but that’s not what an @reply is. Starting a tweet with @aldos sends a strong signal to everyone else that this is not to them.

    Don’t have extended conversations in twitter that are meaningless to followers
    If you only follow one participant in a long twitter conversation, you know what I mean already. Here’s an example:

    @junebug I think that idea sucks
    @junebug Well, it doesn’t take into account the balance sheet
    @junebug Yeah, if monkeys were accountants
    @junebug No, I can’t do that today

    I could go follow @junebug and find out what this is all about, but I’d rather the author just followed my first rule. She could have done this easily by simply replacing “it” and “that” with whatever she is referring to. For example, here’s how I would fix the last tweet.

    I wish I could go to Gruberg’s talk on financial accountability with @junebug today, but can’t cuz of PTA.

    Note: this conversation is totally made up. There probably is a twitter user named @junebug, so let me apologize in advance.

    If @reply doesn’t add to your message, just drop it
    Consider this tweet:

    @testobsessed Good Morning! have a great day

    How is it any better than this?

    Good Morning! have a great day

    Before you send an @reply, take out the @ part and see if it makes a difference. If it doesn’t, send it without the @.

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Uncategorized

    Dear Twitter: Please Pimp My Twitter Service

    March 1st, 2009 · Comments

    I think I’ve found the answer to the Twitter business model, or at least part of it.

    Pimping Twitter apps like Uladoo.com. I’m not talking about pimping it the way you might pimp out a car. I’m not looking for blue headlights and fuzzy dice here. I’m talking about pimping it, you know, the old-fashioned way - Harry Hines Boulevard style. If you’ve lived in Dallas you’ll know what I mean - if you haven’t and you can’t guess… I don’t know what to tell you.

    Here are the twitter service pimp features I’m looking for:

  • Handling financial transactions between a twitter service and a twitter user
  • Protecting twitter services from twitter users with intent to do harm
  • Help twitter services advertise their wares to to twitter users
  • Establish rules for who does and who doesn’t get to sell their services through twitter
  • I think there is a huge amount of potential for twitter to make money off of a cut of the twitter service action, so to speak. Let me illustrate what I mean with my twitter-based charting application, uladoo.com.

    Charting with uladoo is free. You don’t even need to set up an account - all you have to do is send a message like this “@uladoo bugs fixed 3” and it will create a chart called “bugs fixed” and add the value “3” to it. It’s easy, and it’s kind of cool, and it has lots of potential applications.

    It’s also kind of annoying. I created a chart called “calories” with uladoo and I tweeted to it every time I ate for about a week. My followers complained. Some of them, including my boss, un-followed me. Other uladoo users had similar experiences, and within a week of launching people were begging us to support direct messages.

    We now support updating charts with direct messages, and soon we’ll be supporting other cool features, like shared charts and charts with multiple series. We want to package these three particular features as a premium “pro” package that uladoo users will pay to use.

    Ultimately, I want to use Twitter’s built-in “follow” feature to control this. @uladoo will only follow twitter accounts that pay for the “pro” package. By virtue of the fact that @uladoo follows them, these users will be able to use all the cool extra features the pro package offers.

    
Here’s where Twitter can make money off of services like this: pimp my twitter service. I want to be able to facilitate the entire monetary transaction between @uladoo and our pro users. As a service provider, I want to be able to define the terms of our following agreement - is the user being charged at a per-message rate (ie $3/1000 DMs) or are they paying for a time period (ie $3/yr)? Once the transaction processes successfully, my twitter merchant account would automatically set @uladoo to follow the user. On top of that, twitter would also handle the recurring charges, allowing me to set up renewal messages, etc. Ideally, twitter would use direct messages to let users know it’s time to renew, and perhaps they would even use direct messages to facilitate the renewal transaction.

    New twitter-based services are coming out of the woodworks every day. Many of them have potential for generating revenue through paid “premium” services. Twitter can make money by pimping these services, by managing access to them by proxy and facilitating the financial transactions and charging the merchant for these services.
    
Would I pay 10-20% of my transactions to Twitter to have them do this? Heck yes I would. Look at my alternatives - building a an integration between PayPal/Google Checkout and my twitter account is not what I want to do right now. I’d rather spend my time adding new features, like chart mashups and data-displaying tooltips, than making a merchant account integrate with twitter.
    
For the time being, I think we’ll just do it manually. We’ll add a google checkout button to one of our pages, and every time a user pays me I’ll go to our twitter account and follow them. It’s not fun, but it’ll work. Obviously, it won’t scale, but I’ll be very pleased if that becomes a problem.

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Uncategorized

    My Three Favorite iPhone Apps (So Far)

    February 19th, 2009 · Comments

    Lose It!

    Lose It! by FitNow, Inc. (free)
    As you can probably guess by its title and scale icon, Lose It! is a weight loss application. With Lose It!, you enter some basic information about your health and goals, and it sets up a caloric budget to help you meet them. Then, you simply enter what you eat throughout the day and it tells you how many calories you have left in your budget. I really like this feature, because it’s changed my attitude about eating - I now see everything I eat as a tradeoff - the opportunity cost of chocolate milk at breakfast is a slice of chocolate cake after dinner, so I forego the one one I like in favor of the one I love. Other notable features of Lose It! include a thorough calorie dictionary for foods, both generic and name brand, as well as the ability to combine foods in a “recipe” that you can use over and over again.

    If you’ve got a desire to lose weight, give Lose It! a try. It’s been very helpful to me so far. I’ve still got 48 pounds to go, but I’m off to a decent start.

    Touch Physics Lite

    Touch Physics by Marc D Simpson ($0.99, free lite version)
    Okay, so this is practically everyone’s favorite iPhone game already and you’ve probably already tried it. But… I love it too, and so do my kids. Even my 10 month old will sit and quietly poke at the screen for 20 minutes before he finally gives in and tries to stick my phone in his mouth.

    If you’re one of the the four people on the planet who haven’t heard of it yet, Touch Physics is all about moving a ball through/over/around/under obstacles to a goal, using objects you draw to flip, push, bounce, or support the ball along its way. The graphical style is crayon, the music is engaging, and the physical effects are really cool. It’s a fun, entertaining game that can keep you busy for anything from a coast-to-coast flight to an oil change at your local Jiffy Lube.

    Quick Shot by Code Monkeys at Work($0.99)
    Quick Shot adds some cool camera capabilities to your iPhone that make the whole camera phone experience a lot better in my opinion. With Quick Shot you can take pictures by simply clicking anywhere on the screen (as opposed to trying to hit a button). This makes it a lot easier to keep the phone steady for a picture since you don’t have to aim for a button on the screen.

    Another feature I like about Quick Shot is the auto-save setting. My five year old likes to take pictures (I’ve been teaching him about framing shots) and he tends to fill up the camera with pictures of socks, toys, ear lobes, etc. With Quick Shot, I can turn off auto save and let him take pictures without having to go back later and delete them all.

    Check these apps out. They are handy and fun to use!

    ~ Dave

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Uncategorized

    Metrics That Matter

    February 16th, 2009 · Comments

    I’ve always had an allergic reaction to metrics in software development. Over the years, lots of people have commented that they find this strange, given my background in manufacturing/mechanical engineering. I’ve never been able to explain why, but the metrics I’ve seen proposed for software development have never felt as genuinely useful as the type of metrics I’ve seen collected about manufacturing processes.

    I’ve recently discovered a very powerful personal health metric’s usefulness: calories. I first started tracking calories with uladoo.com and twitter, then recently switched to Lose It!, an iPhone app recommended to me by a friend. As I’ve tracked calories, I’ve realized how little I knew about nutrition. It was astounding to discover there are more than 10 times the calories in a tablespoon of Hershey’s syrup than there are in a large asparagus stalk. Cheese, sour cream, ice cream, chocolate, soda, and even macaroni and cheese all have a completely different meaning to me than they once did. Counting calories has really changed my perspective and altered my behavior. But counting calories in itself is not the really powerful part - it’s the calorie budget that really makes a difference. I can eat 2,642 calories every day and lose a pound a week. If I eat more than that, I won’t lose weight. If I eat less, I will lose weight more quickly.

    You might think that this experience has changed my viewpoint about software development metrics, and you’d be right, in a way. My position hasn’t changed (still haven’t seen a useful one), but I now understand why well enough to articulate the reasoning behind my position. So, here’s my list of what makes a good metric, along with quotes meant to be good counter-examples:

  • A metric must be simple. “A function point is unit of measurement to express the amount of business functionality an information system provides to a user.”
  • A metric must be easily measurable. One person with a simple tool. “Seriously - you want me to track how much time I spend on prod support, project X, and project Y at the minute level?”
  • A metric must be an unambiguous indicator. There should be no debate about the actual value measured itself. “Well, we say it’s 3 function points, but if you look at the underlying code you realize it’s a lot more complicated than it seems.”
  • A metric must be accompanied by boundaries that are clear, indisputable indicators of badness, like my caloric budget. “Yes my project is 25% over budget, but we’re also a bit ahead of schedule in the requirements gathering, so we’ll make it up in the end.”
  • Boundaries must be based on meaningful stuff (my caloric budget is derived from my height and weight and medical tables) as opposed to just pulled out of an orifice. “My boss expects me to find 3 bugs each day, so I bank up bugs and enter them later when I get my quota.”
  • The vast majority of software development metrics I’ve seen in my career violate most, if not all, of these rules.

    Here are some exceptions that I’ve experienced:

  • Hours spent at the office (as opposed to hours working, which is pretty ambiguous in software development - if I think about a coding problem while I shower am I “working”). More than 40 for more than three weeks in a row is bad, bad, bad.
  • Story points completed per iteration. When the same group of people do the estimating and the work over multiple iterations, this becomes a pretty valuable metric and it meets all my criteria. If you don’t know what I’m talking about, read User Stories Applied.
  • I’m starting to think pomodoros might be a good measure of personal productivity over time, but I haven’t been doing it long enough to be sure. It’s certainly a good technique for creating focus.
  • Notice that this is a short list, and there are lots and lots of metrics for software development I’ve seen over the users. Why haven’t they succeeded? Because they almost always break one of my premises of metrics that matter.

    Think you’ve got a metric I would like? Let’s see it then, in the comments.

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Development

    Twitter 2.0: Get on the Public Service Bus!

    February 13th, 2009 · Comments

    Six years ago I was sitting at a table with some guys from SeeBeyond, an SOA/EAI vendor that has since been acquired by Sun. I told one of them, a sales engineer, that I thought it would be really cool if they had some sort of SeeBeyond Lite that was free for consumers to use for things like home automation, etc. He looked at me like I was crazy. I tried to explain why I thought a service bus for the home would be useful, but he took a long drag on his beer and pretended to be distracted by an overheard comment about the price of SeeBeyond stock.

    Sigh. He had pegged me as a nerd and moved on.

    Today, a few people are using Twitter for exactly what I wanted SeeBeyond Lite for, and I think it’s brilliant. There are houseplants that send you tweets when they are thirsty, houses that obey commands you send from twitter, and just a few days ago yours truly (with Atomic Object) launched uladoo.com, a site that lets you make charts online just by tweeting to @uladoo.

    Boy, do I ever want to get those houseplants talking to uladoo!

    I think this new application of twitter to send messages, not just to people followers, but to devices and services is then next incarnation of twitter. Twitter 2.0 isn’t a new version of Twitter - it’s a new version of what we use it for.

    Twitter is the perfect service bus for short messages with no security requirements. It’s a Public ServeUs Bus! Go ahead, call it a PSUB. It’s freaking awesome! The twitter API is so easy to use creating adapters at either end is almost trivial. Any data you can fit in 140 characters can be sent to any receiver either through a pub-sub model or point-to-point.

    Here are a few random ideas I’ve had about how Twitter could be used as data collection/aggregation/distribution service:

  • Traffic data collection: you know those things in the road that count cars? What if they just tweeted the time and gps coordinates every time a car came by? You could create all sorts of aggregations of this data by combining the twitter search api with animated maps to show traffic flow in a city.
  • Home weather stations that tweet their data along with their location. There are all sorts of weather geeks out there who would do all sorts of stuff with this.
  • Birdwatching. Combine twitpic and gps location with a twitter account that aggregates the data and you’ve got a mobile bird-watching application (someone needs to figure out how to tether an iPhone to a digital SLR for this one)
  • Cheap mobile devices that only send tweets. These aren’t for consumers - they’re just for other devices. Something you can add to a camera, or a weather station, or whatever you want, so that it can send messages anywhere there is mobile service.
  • Auctions by twitter. People bid with tweets, while ebay or something like it manages the auction at the other end.
  • Open source exit poll data. Imagine pollsters carrying devices that tweet exit poll data as they collect it. Anyone can analyze it, mash it up, do what they what, with a pretty reasonable data lag.
  • Collecting feedback. Yesterday Guy Kawasaki asked his followers which logo they liked better over twitter. I don’t know how he processed the results, but they could have been tied to a charting application (uladoo will support this soon) that let Guy and anyone else who cared see the results as they came in.
  • One of the coolest things about collecting data using twitter as a bus is the openness of it all. If one guy makes a device that tweets weather information, another guy might make an application that makes that weather data meaningful in a new way, like creating animated wind charts for his science fair project.

    It’s a way of creating, collecting, and sharing data that is essentially open source. Open source data thanks to Twitter 2.0, the new Public Service Bus.

    If you enjoyed this post, make sure you subscribe to my RSS feed!

    CommentsTags: Uncategorized