Tuesday, October 2, 2007

One Man's Trash | Another Company's Customer

7 am
The garbage truck
Beeps as it backs up
And I start my day thinking about
What I've thrown away

- 11AM, Incubus, Morning View (Sony Music, 2001)
That's how the lyrics to one of my favorite Incubus songs begins. And while they're melodically tackling a more philosophical topic, I never really considered how much stuff I've thrown away (and I guess in a philosophical sense too...)

It seems our society has an attitude of convenience rather than an attitude of quality. We always want what we haven't got - we're never happy with what we have. We'd rather spend three times as much to get a new one than to take the time and energy to fix anything that's broken. Even though our family couldn't afford a lot when I was growing up, one thing my father told me was that he always bought the best he could afford - even if it hurt a little financially at the time - because he wanted it to last.

Now it's easier to buy a new one. Everything is throw-away and disposable. People buy high dollar items expecting that they'll only last for 3-5 years at best (see my previous post). It doesn't stop with objects either. Even relationships are disposable in our society. Divorce is more commonplace than couples who've been married for 10 or more years. People aren't as loyal to brands (or employers) as they used to be.

As a technology related side - it's interesting that even software products are realistically written for a lifetime of 2-3 years now. The age of legacy software is over. If you're not reinventing your software periodically it is replaced with something else better.

I've noticed this attitude has carried to business too. Customers now seem to be disposable. Everywhere I look it's not about keeping customers anymore, now it's about getting new customers. It's as if businesses get new customers expecting they'll only be around for the next 3-5 years at best before they move on. Companies will seemingly give the house away to get new customers locked into a contract but expect that loyal customers pay full prices for everything when they're the ones who've been keeping the lights on all along!

Let me bring the topics together in a more real sense.

One Man's Trash
My co-worker and I recently came into a set of 30" flat panel LCD TVs that were involved in a lightening strike and no longer worked correctly. They were being disposed of. These TVs were originally over $3000, and used models still retail for over $1500. We took the TVs apart and diagnosed the problem - a circuit board that wasn't operating correctly. We called the manufacturer to get replacement parts. They didn't have replacement parts. Let me repeat: The manufacturer didn't have replacement parts!! (Nothing says disposable like no replacement parts.) Finally, we found a company on the WWW who had replacement parts for $150. Fantastic! New TVs for $150 and some elbow grease.

Another Company's Customer
Now that my co-worker had a new LCD flat panel, he decided to put it up in his bedroom. The only problem was that he didn't have a satellite receiver in the bedroom. So he called his satellite provider to get setup with some equipment. They didn't sell equipment anymore - they only leased it. Equipment upgrade: $100, RF Remote Control: $25, Shipping and Handling: $20, Programming Upgrade: $10/Mnth, Extra Receiver: $5/Mnth, Installation Extra (if required). Total 1 time charges: $145, new monthly charges: $15, making your existing customers bend over and take one for the team: priceless. He has been a loyal customer for 7 years, currently has no promotions, and has never made a late payment. They would waive NONE of the charges (we even called back and tried a different operator). They wouldn't even throw in the remote for goodness sakes!! Can you imagine how many times that $100 receiver (that cost $10 to make) has been paid for over 7 years? But guess what? If you're a new customer you can get a four room HD-DVR system installed completely free of charge. (Read current customers are disposable. We don't care if you leave because we know you'll be back in the next 3-5 years.) What a kick in the pants!

It's amazing to me that in a society where most people hate change that we promote it in everything we do. I wonder what kinds of things I've been throwing away...

Monday, September 10, 2007

Goes around, comes around, but it won't turn on

karma |ˈkärmə|
noun
  • informal destiny or fate, following as effect from cause.


Nothing lasts forever - except the stop light next to my house, in the morning, when I'm late. Anyways, that's what I told my buddy when his first generation iPod shuffle took a dive.

He'd been having problems with it off and on, so when he brought it in to work and told me that neither iTunes nor Windows could recognize it I wasn't too shocked. We tried it on my Mac to see if "it just needed some Apple lovin'", as he put it. Turns out it worked on my Mac - that really set him off. He'd just transfered some music on to it the previous night after upgrading to the latest version of iTunes. After reading some sites he got it in his head that it was an Apple conspiracy to get rid of this version of the shuffle - although after our experience he may be on to something.

After about an hour of messing with this thing I was thinking, "why can't someone who works with technology for a living, who has used the heck out of this device, and deals with change constantly in his professional life understand that things wear out and technology changes to newer and better things. Surely he's considered that it might just be time to buy a new one." But, as if it were a life long pet who'd become part of the family, he just couldn't let it go. So being the friend I am, we took it to the vet - the genius bar at the Apple store.

We made our appointment online. We showed up 15 minutes early as they asked. Right on time they asked to see the iPod and wanted to know what the problem was. We told them. We had brought the original packaging and receipt. They scanned the SKU and informed us that it was out of warranty and that there wasn't much they could do. Odd... the guy didn't even plug it into a computer to try it out until my friend finally asked him - even then he just said, "yep, you're right. It doesn't work." They haggled a little more and they were finally willing to give him 10% off on a new shuffle.

And then, as we were getting up to leave, they guy behind the bar said, "I guess it's just time to get a new one." The very words I had uttered earlier. But, somehow it didn't sound the same coming from him. It really rubbed my friend the wrong way - especially the next day, since he was able to take it home that night and get it working again (even though it broke again later that day).

[Fade to black]
[End Scene]


[Curtains Rise]
[Jeff is walking into his living room from the garage]

Hmm... I wonder what's on television. [kicks off shoes, plops onto couch]

[grabs remote and turns entertainment center on]
[picture comes on but the sound from the receiver won't get any louder]

Well, I guess it's just time to buy a new one, Karma... you cruel cruel mistress.

Tuesday, August 28, 2007

Light up the web? Maybe.

I loved "The Karate Kid" when I was young. It was a classic movie that had everything - martial arts, a good story line, a main character everyone can relate to, and a wise mentor who was pushy at the right times, but not overbearing.

I attended a Microsoft DevCares event today on SilverLight (Microsoft's answer to Adobe's Flash player for "Rich Internet Applications"). User experiences on the web are becoming more and more important for software vendors to distinguish themselves and Microsoft is trying hard to "Light up the web", as they put it. And, as I put it, it seems they want to take Abobe out of every market they own (for example Microsoft's release of the XPS document format [XML paper specification] in response to Adobe's Mars project for XML PDF documents). NOTE: SilverLight runtime ≠ .NET Framework!!! It's a different runtime. They must have said this at least a dozen times.

Being at the presentation reminded me a lot of watching "The Karate Kid", only, I'm not sure who's Daniel and who's Johnny - and the guy with all the answers, Miyagi, is no where to be found. I think this is how the dialog might have gone in the movie that was playing in my head (I'm not sure if it was a flash movie player or a silverlight runtime though).

Daniel: Hey - you ever have to write user interfaces when you were a developer?
Miyagi: Huh - plenty.
Daniel: Yeah, but it wasn't like the problem I have, right?
Miyagi: Why? Coding coding. Same same.
Daniel: Yeah, but you knew about web development.
Miyagi: Someone always know more.
Daniel: You mean there were times when you were scared to code?
Miyagi: Always scare. Miyagi hate coding.
Daniel: Yeah, but you like developing user interfaces.
Miyagi: So?
Daniel: So, web development's coding. You train to write code.
Miyagi: That what you think?
Daniel: [pondering] No.
Miyagi: Then why train?
Daniel: [thinks] So I won't have to write code.
Miyagi: [laughs] Miyagi have hope for you.


How does SilverLight compare to Flex?
To the end user - there's just about no difference. To the developer - they have only a little in common. SilverLight, like the Flash player is cross-browser and cross-platform and both are great at media delivery (like movies on youTube). Both are based on a declarative XML language (MXML Vs. XAML) and have design tools to help build the mark-up. The reason I say they have only a small portion in common has more to do with each company's approach to the solution.

SilverLight was born from .NET's WPF (Windows Presentation Foundation). WPF was meant for easy development of Windows desktop applications, but as part of the .NET 3.0 runtime and IE7 releases, WPF applications could be downloaded and used as a web application in IE. There were problems with that approach. End users needed to have the .NET 3.0 framework installed and are forced to use Windows and even further IE7! Enter SilverLight. The XML that is used in WPF applications is nearly 100% forward compatible with SilverLight and all that is needed is the SilverLight runtime which runs in any of several popular browsers on Windows or Mac. Flash started out as a web development platform and Adobe is now going the other direction with products like AIR (the Adobe Integrated Runtime). Adobe = Web -> Desktop, Microsoft = Desktop -> Web.


Data and Security
Microsoft is great at hitting it's competitors where it hurts - and they did it again. Kudos Microsoft. Flex struggles with a few things - foremost in my mind are cost, data accessibility, and security. To do anything really really cool with Flex or databases, you pretty much need some type of back end server application (e.g. Live Cycle Data Services, or WebORB [if you do .NET development]) which have costs associated with them. SilverLight 1.1 (Alpha at time of writing) will have LINQ and WCF (Windows Communication Foundation) built into it. And since SilverLight binaries are dll's downloaded over the web (dll's can be securely obfuscated - it's only a matter of time before Flash 9 SWF's can be decompiled) I already feel more secure. Like Flash, SilverLight is also agnostic about how it's content is served - it could be served by an Apache web server, a java web server, or your hacked Nintendo with a web server running on it.


Conclusion
SilverLight isn't ready for business applications yet due to the fact the SilverLight doesn't have any user controls like TextBox or ComboBox yet (included in 1.1 final release). But, keep an eye on this!! If the data connectivity is as good as promised - you'll start to see numerous seriously data enabled SilverLight web apps.


Links
I can't talk about all this without giving some examples.
  • Tafiti is pretty neat. It's a "visual" search engine.
  • PopFly is a SilverLight tool that lets you make dynamic Mash-Up's with a graphical tool. You can connect to services like Flickr to get GeoTagged images and place them on a map by wiring "Blocks" together. This is by invitation only - it's worth to getting an invitation to.
  • This is an emulation of Windows Vista done in SilverLight. Pretty Neat.
  • DLR-Console is a application that demonstrates the use of the Dynamic Language Runtime. Developers can now write SilverLight in Ruby, Python, or managed JScript.

Resources
So which one do you choose? Flex or SilverLight? Microsoft is catching up very quickly.


Miyagi: Now, ready?
Daniel: Yeah, I guess so.
Miyagi: [sighs] Daniel-san, must talk.
[they both kneel]
Miyagi: Walk on road, hm? Walk left side, safe. Walk right side, safe. Walk middle, sooner or later
[makes squish gesture]
Miyagi: get squish just like grape. Here, writing code, same thing. Either you develop UI "yes" or develop UI "no." You develop UI "guess so,"
[makes squish gesture]
Miyagi: just like grape. Understand?
Daniel: Yeah, I understand.
Miyagi: Now, ready?
Daniel: Yeah, I'm ready.

Monday, August 13, 2007

You have to crawl before you can walk

Ants.
  • Ants on a log - delicious (I love the chewy raisins with the crunchy celery and peanut butter).
  • Ants are bugs and you can get bugs in your code - bad.
  • They can lift several times their body weight - awesome.
  • Ants are ferocious - `cause they're fast.
  • They work together as a team to accomplish large feats - I heart teamwork.
  • Each was made for a specialized task - you gotta be yourself, I like that.
Are these reasons why Apache's ANT was named as such? Sadly, no. But I think they should all be candidates. Ant stands for Another Neat Tool (which you can find on their wiki), although I wonder what Indians** have to do with anything. They do, however, describe some of the reasons why Ant turns out to be a fitting name after all - ummm, except the one about celery. I just really like peanut butter celery.

Ant (and it's .NET cousin NAnt) are described as a build tool like the infamous make utility for C, but without the wrinkles. If you managed to make it this far and you're a developer you're probably thinking - Forget the "wrinkles", I never liked make, I think build files are a waste of time, and even if it is "neat" I don't need anymore tools to deal with. If you're not a developer you're thinking - this doesn't affect me and our products are just fine without any of this. Both of you might be right, but you can write code in most languages without an Integrated Development Environment too. IDE's make it easier on everybody and adding a build file might be a good idea too...

The title of this post, while clever (at least I think so), has some meaning. Developer's often times overlook tools that can make their lives easier. If you've ever heard the term "it's the little things that kill", you can see why it's important to get the little things dealt with and build tools like Ant can help.

** I think there's a lot to how things are named. The wrong name can give the wrong impression about something or be misleading. I think Apache is a superb name for a software development group. Here's why.

Thursday, August 2, 2007

Night Fishing

A few weeks ago, some friends from work and I decided to go fishing. It was hot out when we started - not off to a good start. I had been to the store during lunch to pick up some night crawlers. While I was there I found a lure that I wanted - it was $20!! I asked a few of the sales guys about them and they swore up and down they were some of the best lures in the store. So I bought one anyway, they did look like good lures after all.

I had been to the body of water we were going to before. It's located across the street from my friend's house. He knew what was going to work and so did I - worms. Night crawlers on a bobber, yes, but mostly fake rubber worms in a natural or dark purple color with a bright red tail retrieved at a medium to slow speed. Out of all the times I've been there, and from the stories he's told me as well, this seems to be what works most consistently and with better results (more strikes by larger fish).

Well, I'm always up for a challenge, and since I knew worms were going to work it lost some of it's appeal. I had bought some lures a few weeks earlier that I hadn't had a chance to throw yet. So I started out with those.

I had been to my friend's place several times and I've fished with him on several occasions. But I was still trying to impress my other co-worker. He hadn't done any good bass fishing in a while, so I wanted to make sure he caught some good fish and had a nice time. If you're reading this and thinking that it's conflicting with the statements in the previous paragraph, you'd be correct. I didn't realize how stupid it was of me to experiment while trying to impress until later.

Good thing my buddy stuck to the tried and true. He was having a great night. He got our other friend all setup and he caught some very nice fish as well. I was catching jack-squat. So I finally tried the new $20 lure - nothing to lose at this point - and caught a decent fish. Satisfied with that I switched to worm too.

The sun went down and we could hardly see to get back. At this point we were all fishing with night crawlers on the brightest colored bobbers we could find. Things had been slow for a while and we were just about to call it a night. My friend ended up catching the largest bass he's ever pulled out of that pond! It was a very nice fish.





I've had a while to reflect:

  • When it counts - use what you know will work.
    There's a time and place to experiment - and it's not when it counts. It's behind closed doors, on the practice court, during the scrimmage match. It's definitely not when you have something riding on the line, during a tournament, or when it's go time. You're probably not going to end up impressing anyone and it will take longer to get results. Most likely you'll end up going back to what you know works anyway.

  • You get what you pay for.
    Well... this isn't **ALWAYS** true, but it holds true for a lot of things in this life. Out of all the artificial lures I tried, the expensive, ultra good looking, super lure (please humor me) came through for me. The better stuff usually costs more. Why? - because it's better. Cost is often directly proportional to an item's worth. If it wasn't any better than any other lure (nothing that set it apart ) it likely would have been priced accordingly. SUB-POINT: Listen to what other's say. If the community is giving it good feedback - it'll probably prove it's worth.

  • Be patient.
    As evidenced, the best results are often those that are not rushed. We knew worms would work - we just had to wait for the big one to bite.

  • Have fun!
    It was hot. I wasn't having good results at first (my own fault). When I started having success it was dark. Two super-sized mosquitoes tried to carry me away. Would I do it again? Absolutely. The thrill of reeling in a fish is fun! Hanging out with your friends and enjoying nature - awesome. If you're not having fun, **NOTHING** will make it worth the effort - period.

Thursday, July 26, 2007

How many meetings does it take

to screw in a light bulb?



Before you read this, read this post from Cam Minges (excerpt below):
A good read is Death By Meeting by Patrick Lencioni. Since Jeff and I had four hours to kill on our way home from St. Louis, we decided to tackle this subject. Originally, it was about meetings but then we couldn't agree between meeting hell and project management. So, we decided to tangle them up together to see what happens.

Warning: This Blog Post is meant to poke a little fun at our two favorite subjects. It's meant for entertainment purposes.



I’m not sure either. Let’s schedule a meeting to discuss it, Cam. How about tomorrow? Oh you’re busy then – you say you’ve already got a meeting scheduled at that time? We’re going to have to schedule a meeting to talk about all these meetings we’ve been having lately.

Project Charter Meeting: We’ve changed the topic of this post several times already. Cam thinks it should be about meetings and light bulbs. I’d like to focus on project management and comedy, but mostly on the comedy. I wanted to stub it out by sections, Cam disagreed. We compromised on the later but we’re still unresolved about the overall direction. I’m sure we’ll have another meeting about this later on in the trip - though it will vaguely resemble something to do with a light bulb, I'm sure.

Risk Assessment Meeting: During the project charter meeting, I asked whether we should really be doing this, since some people (like the terrorists) might not think it’s funny. We decided to schedule a meeting to discuss the project risks. The risk of making a superior unhappy is probably a very real one and we decided it had a 50% chance of actually occurring and that we should deal with it early on. So please know as you’re reading this that this is merely a comment on… well… we really haven’t decided yet. I’ll let you know what it’s a comment on after we finish our project charter.

Task designation and estimation meeting: The first proposed task was to prototype several different brands and wattages of light bulbs to get the one that we like the best based on brightness, energy consumption, and cost. Cam volunteered to make some templates to benchmark the light bulbs. We figured it would take about 16 hours of researching light bulbs, about 8 hours to make the templates for benchmarking, and about 2.28263 hours to do the actual testing. It is important to note that these numbers are man hours, and not duration. We’ll pad these numbers with some time for quality assurance once we have an over all total. We both agreed this was a necessary step. Our meeting time ran out and we rescheduled for later.

Resource allocation meeting: Cam was 100% on driving and I was 80% on writing this entry for the duration of the trip. It looks like we’ll be outsourcing this project. We both agreed that this wasn’t ideal, but we couldn’t take on any more projects at the moment. At least we finished a meeting on time and actually came to an agreement.

Kickoff meeting: Cam declined his invitation. That’s it… that’s the funniest thing I could come up with. Neither one of us had ever been to a kickoff meeting where anything was accomplished. First item on the agenda for the next meeting: what’s a kickoff meeting?

That’s our project plan so far. I can’t write any more because after I logged my hours on my time sheet for all of this project management I realized we had sorely underestimated how much time the project management would take. We were already over budget and behind schedule from when we needed the light bulb changed. The first the thing Cam asked me was how this would impact the schedule of his project to get us home. Luckily it had minimal impact.

Conclusion: Looks like you’ll have to ask Mr. Owl.

Note: Thanks to Cam Minges for his guest appearance and taking care of all the receipts from our business trip.

Tuesday, July 17, 2007

How do I look now, Bob. Is it bad??

When I was a child my mother would say, "Watch out for the stove, it's hot." Or, "Don't put your fingers in the light socket." On some occasions she would say "Stop fighting you two, or I'm calling the police" and that would really shake us up good and end up making all of us mad at her instead of each other - but that's a post for another time. Anyways, even though my mom told me the stove was hot, and not to play with matches in the house, and looking at girls would turn me to ash - I still didn't listen. I'm not sure why, maybe because she was only right on two out of three. But from my life experiences, like being shocked a few times, I now know and understand why my mother was concerned for my safety. (My wife's concerned for my safety sometimes too, perhaps a few more shocks would fix me...)

I'm reminded of the joke where the doctor asks the patient what's wrong and the patient says, "It hurts when I do... this." The doctor says, "Don't do that."

What do kids, bad jokes, and fish have in common??? Other than the fact that they're all flaky, not much - but I'll try to piece something together for you anyway so it sounds like I thought this out. Out of the three, only fish never learn their lesson.

After I got burnt on the stove and stuck a paper clip in a light socket, I tried not to do it again. It hurt. I doubt the patient really needed the good Dr.'s advice. But fish... now that's a whole lot of weird goin' on right there.

How many times do you think a fish can be caught on the same lure? I can tell you it's at least three in one night. They just can't learn their lesson. That fake worm is just too tempting, that minnow that's swimming funny just looks too juicy to ignore. You know they're down there in the water just thinking, "Oh hey, Bob (seems like a good name for a fish). Weird, there goes that worm again. Wasn't it just by here a second ago?" "Yeah, I think it was. Man, it's looking pretty tasty though... must... eat... AGHHHHH! Damn it, that hurts!! What tha... hey where we goin'? I don't wanna go that way. Get this thing out of my face, its pokin' my brain!" And the same conversation must repeat itself as soon as you throw him back.

No matter what it is in life, you must learn your lesson. It's what separates us from the fish. Ok, it's ONE thing that separates us from the fish... I'll let everyone else debate it. No fighting though, or I'll call the police...



Note: There's a lot of analogies to made on the topic of fishing. I'll try to hit them all at some point in my life - I just couldn't fit them all in tonight.