Posted in Software Engineering, Technology
Monday, February 28, 2011

united colors of gummi bearsTechnology changes quickly. Anybody who doesn’t revisit old assumptions and challenge their beliefs is doomed to fall victim to the tectonic movements in the industry we call paradigm shifts.

Innovations in computer technology do not happen in boardrooms where a few old men sit around a table chomping on cigars and make decisions for the industry. Change comes from the crucible of competition where ideas are loved, debated, abandoned, revived, collaborated and implemented.

A young engineer asked me how he could influence change. He was concerned his input would not be taken seriously. Here are five ways you can influence change in your organization esp. above your pay grade.

FUTURE PULL. We are creatures of habit. Even if the current situation does not work very well, it is comfortable and familiar. How many times have you seen folks fall back into old habits? Tim Hurson‘s books Think Better outlines the concept of future pull. In order to inspire change you have to appeal to people’s emotions. Give them a picture of the future so compelling that they must change. A well crafted vision can help escape the strong gravity of the past.

FIND CHAMPIONS. Champions are folks above your pay grade who can help guide your idea through the corporate gauntlet. In the beginning ideas are easy to dismiss. Tom Kelley points out in his book The Ten Faces of Innovation that the worst idea-wrecker is the Devil’s Advocate. This persona assumes the most negative possible perspective while searching for the downside and drowning the idea in negativity without considering an alternative. When your idea is getting flamed by the Devil’s Advocate you want a strong advocate that can step in. Your champion might say this: “Now hang on. We’ve watched our customers suffer with this for too long. A new idea might help them.” or this: “Why don’t we try a pilot project and see if this is something that can work for us”.

SMALL WINS. When assembling a complicated piece of furniture I usually have a moment of self-doubt where I question whether it will come together successfully. If your idea is big and takes too long to implement, it will fall victim to doubt and lack of faith. In order to keep your stakeholders engaged you need to demonstrate steady progress. One way to do this is with small wins. As parts of your idea are implemented invite everyone to participate in a demonstration of progress. Wins encourage wins. Note that I am advocating revolutionary change through steady progress and not suggesting incremental change by thinking small.

REMOVE BARRIERS. When a project grows past a non-trivial size its complexity may overshadow the productivity of the team. To continue to create value for customers two things must happen we must: 1) reduce project complexity and 2) improve team productivity. Traditionally processes are developed in order to reduce project complexity. In his book The Innovator’s Dilemma author Clayton M. Christensen points out these very processes are barriers to change. If you want meaningful change, then challenge processes that add complexity and hurt productivity. Ask questions such as “Is this meeting really necessary?” or “Does this documentation add value to our customers? Could the time be better used to make a great product?”

NUTURE A NEW CULTURE. Change is scary particularly when it is disruptive. Nurture a collaborative environment in order to reduce fear. Be bold and avoid analysis paralysis. Invite skepticism because it is a healthy response. And lastly, realize that nobody owns a monopoly on innovative ideas. Change can come from anyone, anywhere. If not you, who? If not now, when?

photo credit: *MarS

Tags: , , , ,

Posted in Music, Software Engineering
Monday, August 30, 2010

guys with guitarsLast week I was invited to join an impromptu jam session. So I packed up my Gibson Les Paul and amp and went to a garage in Belleville. I joined two guys playing a Fender Squier Stratocaster Bullet and a Charvel both of whom were much better than me.

As cigarette smoke circled around me it reaffirmed my career decision as a software engineer where I work in a smoke-free cube. Also mastering musical instruments takes time and practice and does not pay very well.

Many of today’s aspiring artists create music in isolation in their basements. But music used to be a community activity. People used to gather on porches and in parlors to sing and play music together. For all of the collaborative power of the Internet nobody has mastered a system that allows people to easily make good music together.

At times we got to be quite loud. We got attention from folks walking and driving by. At one point a neighbor walked in. I thought for sure he was going to tell us to keep it down. “I have a drum set,” he said. “Next time you get together let me know. I’ll bring it by if you’d like me to join you.” The spirit of social music lives indeed.

Tags: , , , , ,

Posted in Computer Games, Movies, Music, Software Engineering, Technology
Tuesday, November 10, 2009

And now some stuff that has been on my mind.

  • What the Netflix Prize 2 gonna be like?
  • Why can’t I get motivated to participate in this year’s NaNoWriMo?
  • Can I do anything cool with Raphaël?
  • When is my copy of Call of Duty: Modern Warfare 2 with the night vision goggles going to arrive?
  • Why are the retailers already selling Christmas junk?
  • Why does the Lord of the Rings Trilogy make walking seem interesting?
  • When am I ever going to catch up on my book list?
  • Should I put up Christmas decorations outside before the weather gets colder?
  • Could burritos be more awesome?
  • Should I go see the Stevie Ray Vaughn tribute show? By myself?
  • Why don’t I play guitar more?
  • Why is it I forget what I needed when I get to the store?
Tags: , , , ,

Posted in Music, Software Engineering, Technology
Saturday, September 26, 2009

WordPress.com has a message to the HTML hackers out there: join us.

  1. In Mozilla Firefox (you’re using Firefox, right?!) open Firebug
  2. Now point your browser to wordpress.com
  3. Look for the X-hacker response header in HTML Headers section on the Net tab. It reads: “X-hacker: If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.”
Wordpress.com X-Hacker Header
Tags: ,

Posted in Software Engineering, Technology
Sunday, May 11, 2008

I woke up Friday and decided to skip the final keynote address and remaining sessions. I had a raging headache and was anxious to get home. I did a little shopping for Mother’s Day. Then I took the subway to the airport to see if I could catch an earlier flight. Unfortunately, I did not have luck and settled in for the four hour wait before my flight.

It was probably best that I did not good back to the convention center. I probably would have bought another book from the bookstore. Here is a list of books which I bought while at JavaOne:

  • Think Better by Tim Hurson
  • The Pragmatic Programmer by Andrew Hunt and David Thomas
  • Effective Java, 2nd Edition by Joshua Bloch
  • Prototype & Scriptaculous in Action by David Crane and Bear Bibeault with Tom Locke

Yesterday the headache returned. I spent most of the day taking it easy including a three hour nap. When I finally checked my email I saw this notice:

The JavaOne conference team has been notified by the San Francisco Department of Public Health about an identified outbreak of a virus in the San Francisco area. Testing is still underway to identify the specific virus in question, but they believe it to be the Norovirus, a common cause of the “stomach flu”, which can cause temporary flu-like symptoms for up to 48 hours. Part of the San Francisco area impacted includes the Moscone Center, the site of the JavaOne conference which is being held this week. We are working with the appropriate San Francisco Department of Public Health and Moscone representatives to mitigate the impact this will have on the conference and steps are being taken overnight to disinfect the facility. We have not received any indication that the show should end early, so will have the full schedule of events on Friday as planned. We hope to see you then

I feel much better today. I am catching up on chores and preparing for my week. I am looking forward to discussing some of the interesting things I saw with coworkers and friends.

Posted in Software Engineering, Technology
Friday, May 9, 2008

Well folks, this is gonna be a short entry. Tomorrow is the last day of JavaOne. I need to pack up all of my stuff and swag in order to be check out tomorrow.

I dug the session on Nimbus. Vector-based UI components for a cross-platform look and feel just makes sense. The presenters showed off a nifty tool to design new vector-based components. Impressive stuff. I am anxious to download Java 6u10 and tinker with this. I am especially interested in reviving an old drum machine project I started writing in Gnome/GTK. I think I can utilize the customization available in Nimbus to make a custom, professional looking interface without the ugly hacks I had to use for GTK.

The Scala session made me want to puke. The presenter proudly proclaimed that the language is the next generation of Java and that it is everything that Java should be. I almost walked out when he said that they removed the “break/continue” mechanism in favor of “goto”. WHAT?! I decided to stay for the rest of the session to give the presenter a chance to redeem my opinion of my language. No luck. I was not impressed. So friends, I flipped the bozo bit for Scala.

The Filthy Rich Client session was great. It really got me thinking. Last year I wrote an app that animates dots starting at the top of the screen and falling to the bottom. The problem is that I hit barrier where it would not run faster than 30 fps. At the beginning of the session they demonstrated bouncing balls app that ran at over 100 fps. They explained the issues with Swings timer thread. I am hopeful I can revisit the app and get it working at a respectable framerate.

The session on Unit Testing with Groovy gave me a bunch of ideas I plan to take back to work with me. I talked to some guys who commit to the Groovy project about how we can work about issues we have with testing singletons. They gave me an idea or two to try out.

The Java Posse guys gushed about Scala in their session. The session was fun but not great. It made me nearly regret my decision to skip Sun’s After Dark party where the band Smash Mouth performed.

Overall it was the best day yet. I may not post the next blog entry until Saturday. I will be traveling tomorrow for over six hours and will be crossing two timezones. California was okay but will be happy to return to the familiarity of Illinois.

Posted in Software Engineering, Technology
Thursday, May 8, 2008

Ok, I just got back from the Sun Developer Network Party. I am going to make this short. My plan is to revisit these blog entries once Sun releases the videos and slides from the JavaOne sessions in the near future. Here’s my brief recap of today’s fun.

First of all, Scott Davis is a brilliant speaker. I highly recommend his Groovy: the Red Pill presentation. I missed this one at No Fluff, Just Stuff a few months ago. You will not look at the EXPANNNNNNNNDO-METACLASS the same way again.

The Struts 2 presentation flew over my head. I wasn’t sure if it was my relative lack of experience with Struts 1 or the presenters lack of examples. When the speaker pronounced HTTP as “Haytch Tee Tee Pee” it pulled my mind out of any comprehension of any point that he attempted to be communicated. This session was a waste.

The OpenSocial Container presentation discussed a project named Shindig. One of the presenters started working on his Web 2.0 social network website in January and finished in April. Am I in the wrong business?

I cannot wait for the Compelling User Experience session to make it online. Nothing was sacred. The presenter threw stones at a lot of today’s paradigms. I couldn’t agree with him more!

The video games BOF introduced me to the javagaming.org forum.

The Groovy in a Cloud session got me to thinking about the benefit of deploying virtual servers much more quickly than it would take any corporation’s purchasing department to acquire the equivalent hardware.

The GWT and Comet session introduced me to the Grizzly Comet project which uses continuations to push data asynchronously from the server to the client. Imagine an auction website where an auction’s high bid is updated automatically on your web page without having to refresh the page. Who knew it was possible to suspend a browser’s session?

The Groovy Builder session discussed making Domain Specific Languages (DSLs) with a part of the Groovy language with which I am not yet familiar.

Ok, friends, more later.. Off to do a bit of reading before turning in.

Page 1 of 712345...Last »