Monday, March 22, 2010

How Could You Ever Test a Product If You Didn’t Know What You Don’t Know

I'm reiterating my point of getting the product into the hands of the customer or the testing team as fast as you possibly can. A developer cannot be a standalone entity, operating in isolation. All individuals need feedback and we cannot deliver quality unless we have an on-looker or customer. We need an audience or we are really just performing for ourselves, without feedback. We need a mirror at a minimum! Give your code to the customer and then determine what the portfolio of needs and changes looks like. Be agile.

Touch Touchy Subjects Tenderly

I'm definitely not the best at this but I think I'm getting better. Some things are taboo, some things are sensitive. This is true in both work and life of course. With specific respect to work, however, we definitely need to figure out the best way to play the politics, get ahead, and engage in the (potentially difficult or touchy) conversations that we need. This includes subjects such as compensation, coworkers, the work itself, and assignments. "Managing Up" is a skill that is talked about a lot but it is neither a class I have taken nor a subject I've read about. I just did a quick search for books on this subject: http://www.amazon.com/Managing-Up-Forge-Effective-Relationship/dp/0385507720 Does anyone recommend any good books on managing up and doing well at politics in the workplace?

Let the Customer Drive the Priority

As a product developer, you have to be able to 'let go' of your product. It's not for *you* anyways, so get it out of your hands and into those of the customer! I'm building an app for a friend right now and am finally to the point where I am willing to give him access and let him test it and comment. That's a big milestone! I am sure he will have feedback that I do not expect. Your users are your best testers. I don't want to be perfectionist about my product and need outside help. I don't want to float too green of a banana but I think it's good enough for now. He wants the app and deserves to know what state it's in.

Solving a Problem can be Disappointing

I was on the phone with the Hewlett-Packard Customer Support line this morning and (without the agent's help) figured out the solution to the problem I had called about. When I announced the solution, the customer service rep said, "You sound disappointed that you solved your problem." And I answered, "Yes, I do." (It shouldn't have been the case, I don't think that *I*--rather than *he*--had figured out my problem.)

I would add to this that there are other problems that when solved, there is no real "EUREKA" moment. As they say, "Huh" is a better discovery than Eureka. The truly big shifts do not occur via some drastic "explosion" of change, but rather a new realization or perspective that can be as small as "huh", or "that sucks".

An example of this is working on a computer bug that when you solve it you have tried so many things that cause so much time and pain that when you finally do solve the thing and make it work you are simply disappointed that it was THAT HARD. Such is life.

Lag Time, Patience, and “System Perception”

People have very different reactions while waiting for computer systems (any process for that matter) to complete or change. Take for example launching a program on your home computer: you click a button and the "wait cursor" comes out. What do you do? Get angry? Wait patiently? Hope for the best? Some people tap their foot and get anxious, others watch and wait and think about what might be happening and how things might be working. We have a chance to be introspective about systems other than ourselves.

We can witness the same behavior on the road every day in our driving: some drivers are patient and don't give too much thought about what the drivers around them are doing while others are very critical of the other "stupid" drivers. I'd say that the way we think about other systems and what they are doing is a very clear reflection of how we think about ourselves: Are we patient? Are we forgiving? Are we intelligent? Are others intelligent? …All of these things cross our mind in computing and in other life-systems as well.

In this way, I recommend that we be more patient and seek to UNDERSTAND what the other systems around us are doing and why…and in that process we will learn much more about ourselves, our intuitions, and how we are actually impacting the systems around us. Thinking at this level will help us change things for the better.

Rise to the Actual Level of Stress

Many situations call for us to rise to the actual level of stress. This to me means that we are highly dependent on the context of the situation around us. For the most part, all we can really do (consistently) is to respond to how things are changing around us; we are a part of the system and are not—by any stretch of the imagination—the system itself. Systems are dynamic and we have to see and recognize ourselves as being a key and critical part of those systems. We must treat them carefully. We need to think very carefully about different perceptions and realities and decide to act in accordance with our beliefs and wishes. Act cautiously. Although we may be in a position of power or leadership, our thoughts should drastically govern our speech and actions. Seek to change the perceptions around us through our intuition and inner strength. Be careful with what you say and think very critically about the 'network effects' of your actions. You are at the center of the system but you are not the system yourself!

Saturday, March 20, 2010

Work Isn’t Fun but It Has Long Lasting Benefits

I'm skipping the Huskies basketball game right now and playing with friends because I am trying to help my buddy with his business. There are sacrifices that come with doing good. Working on my buddy's problems makes me feel happy and like I am doing something good. The Huskies will win or lose, my friends will (hopefully) still be there for me, and I am feeling better by contributing to my friend's business. Social to me is helping other people, not necessarily drinking or watching sports with them although that might be more 'fun'. Fun creates a short-term reward. Work has lasting benefits.

Remove the Immediate Business Process Bottleneck

Nothing more to say here, really. As a developer, you are coding for one purpose: remove the most urgent and important business problem that exists. You are fighting fires all the time but you may not realize it. If you're not, then become a better business analyst. You are trying to free business resources so they can do more value-added things.

The ‘Holy Trinity’ of Economics: The Customer, The Product, The Supplier


The goal of providing products is to create dependence on the supplier by the customer. The customer will use the product to solve his/her problems and hopefully return to the supplier when he needs something else or something more because the supplier was the one who helped him out in the first place.

Build Small Bridges

You might care, I might care, but how do we make 'everyone' care? It's impossible. We can't. We can attempt to add one person at a time to our way of believing. But most likely--by the time we reach the last person--our thought process and beliefs will have changed so drastically that our purposes will shift. It's like painting a bridge: by the time you're done, it's time to start over again from the beginning and repaint. Make your bridges small. Build many bridges. And be flexible.