Poll Everywhere in CNN and much better web voting

My product, Poll Everywhere, was recently the featured subject in an online article written by Steve Mollman on CNN.com. Some very interesting points about the human side of polling in general and also about the various uses our customers have found for the product, especially as it continues to rapidly expand into new areas, particularly under-served customers. I can’t discuss all of the new areas and customers we’re reaching but I can say the future evolution of the product and the platform is bright.

Lastly, we recently re-vamped our web voting to make it much more usable (and appropriate) for the web, especially when embedding polls into the web. So, check out and vote on this poll that I just created:

July 8th, 2008 - Posted in business, news | | 0 Comments

Invention and Failure

Each time we iterate over our ideas, each time we put forth new effort to try something new, something unproven, we fall; we fall often. In fact, strangely, we fall even when we’re trying to do things that thousands, millions perhaps, have done in the past.

With anything new or old, why are we so afraid of failure? Is it the thought of revealing a trite line to our peers? “Oh, yea, I just couldn’t hack it. I suck.” Do we fear that? Or is it telling ourselves that’s worse? I think the answer is either the former or the latter, actually. Some people are obsessed with status or reputation. Others are obsessed with their subjective, intrinsic contribution to the world. Both are, of course, wrought with inaccuracies.

Regardless, it is the human desire, our instinct, to accept risk and invent, iterate, and improve. We exist to try to move something in a new direction: forward or backward. That’s our balance. Whatever side you’re on, though, you have to accept that your future inventions will consist of iterations of constant failure, rejection, pain, and suffering.

Along the highway of pain, though, we realize that the pain is something we chose for ourselves. We brought it on ourselves voluntarily. Expect no one to feel sorry for yourself except, well, you. But sorry? Why would you care or think about people being sorry for you? Who gives a shit?! Blaze through the new trail and try something, fall over, skip the part about caring and whining, and get the hell back up and keep moving. If you have half a brain, you’ll iterate in the direction of improvement (whether its 2x iterations or 100x obviously varies but you get the idea).

There really is nothing more rewarding than trying something new, something that lots of people doubted, and showing them that in fact it can be done, and can be done successfully because you believed in it.

A quick disclaimer about believing in something: Obviously, any idea that perhaps requires a lifetime or two before any progress is made might in fact be, well, a bit beyond reach. That said, the wise inventor, iterator, and improver knows he must try his best to get quick wins to keep progress towards a more grand goal. Every step is a step in a direction, changing it or moving it forward. Not taking steps, though, can prove fatal.

July 2nd, 2008 - Posted in business | | 0 Comments

Stop using treadmills

Here is the order of preference for me when I am running for exercise:

Outside, in a quiet area (like a forest preserve)
Outside, somewhere that I won’t get killed by cars
Inside on a track
Treadmill

Notice that the treadmill is the last option in the list. In fact, sometimes I will just do something different for exercise than run if the treadmill is the only option available. I just can’t stand running in place, especially if there are better options available and usually there are. Still, when I go to the gym, I see tons of treadmills and tons of people using them. My gym even has a decent indoor track which I frequently use when the weather is inclement.

I just don’t understand why, if you’re going to run, you would use a treadmill. I guess if you want to watch television? Frankly, watching television is actually a distraction! Psychologically, it could hurt the effectiveness of your workout, not to mention signaling to yourself (and others) that you’re not really there to workout seriously.

I the treadmill applies in regular life, too. Stop treading and get moving!

May 28th, 2008 - Posted in Uncategorized | | 1 Comments

Pretending like we can avoid a recession

I’d like to speak this article about the economic stimulus plan sent by Congress to Bush.

Why is this a stupid plan?

“We believe the stimulus, the way it is targeted, will put money into the hands of those who will spend it immediately, injecting demand into the economy and therefore creating jobs,” says House Speaker Nancy Pelosi.

I really wonder to myself, does someone like Nancy Pelosi, whom I am sure is very well-educated and probably has a decent amount of intelligence, really believe in her heart that this plan does anything at all to solve any particular problem, other than squander more valuable money (and further increase the deficit)? I am completely befuddled if she (or anyone in Congress) truly believes that this is a good idea. Simply handing cash to people does not solve problems, certainly not any kind of long-term problems. Moreover, once it is spent (wisely or unwisely, usually the latter), then what? We’re back at square one, or maybe worse.

There is an attitude with this plan that says the government can bail the country out of a recession. That doesn’t make any damn sense at all. A recession is a natural phenomenon and, in many ways, vital to a sustainable long-term economy. Let me list a few things that I could compare a recession with:

Going to the bathroom is important to empty waste and used material from the body (not having to go number 1 or number 2 might be time-saving but imagine if we just stopped going to the bathroom one day)
Winter lets a few plants and animals die out and other ones a new chance to thrive again in the spring (not having winter might be nice for the temperature but imagine what it would do the local ecosystem)
Night and day (have you ever considered what life would be like if it was light out all the time? Try visiting the North Pole during the longest days of the year to find out!)

I am pointing out these examples because they are natural cycles. Almost always, natural cycles are needed and provide indirect benefits which may be difficult to see at a micro level, such as cutting out the fat and making what has become overweight lean once again. Anyone trying to stop these natural cycles usually ends up wasting lots of time, energy, and money. Which leads me to my utter disgust with this plan: It is a waste, a total waste, of money. You cannot keep an economy from going into its occasional spasms or recession. Why? Because it is natural and it is necessary. A recession helps cut out the fat and lets the strong survive; it is a necessary component of a free market. Trying to intervene change those fundamental dynamics never works. It’s practically against our human nature (which is maybe why Communism sucks in practice).

It may sound bad but we need to let parts of our economy (that is, people and companies) “die out” and let others thrive once again after this purge (aka recession). Think about it: Housing prices are way over-inflated. Few people can truly afford them at price levels in many areas of the country; that can’t last forever as you would certainly end up with over-supply and under-demand which is almost precisely the situation we have now in housing. The overall stock market has just boomed and boomed and has been well-above pre-2001 dotcom bubble levels for some time and even gone beyond that. That kind of growth (and endless profitability for individuals and companies) can’t last forever. It isn’t as if people just found extra $100 bills in their pockets one day and could afford to buy more stuff!

Therefore, my gut says our government should keep its hands out of this cookie jar and keep quiet. The Fed already lowered interest rates (and that won’t stop a recession either, may I remind you) and even that may poses big risks to for problems besides merely a recession, such as high inflation levels which could actually exacerbate a weak recession by turning it into an even bigger one.

It’s like the bum on the corner. He could get a job if he truly wanted to. He could seek help in other ways. It is out there, it is available. He simply chooses not to seek that help. Instead, he haggles people for money. If I give him money, he’ll never leave that dirty curbside so I give him nothing. Giving him $5 to “get food” will not help him. Just as in the case of our government giving many taxpayers $600-$1200 to “inject demand” into the economy won’t help them (or the rest of us).

Save your money.

February 7th, 2008 - Posted in news | | 0 Comments

Scrum principles for any business

If you look at the values of Scrum, it’s notable that if we don’t call it Scrum, the values mentioned can very quickly be translated into common sense business principles.

Scrum principle: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
Generic translation: “The highest priority of any business should be to satisfy its customers early and continuously by providing something valuable.”

Scrum principle: “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
Generic translation: “Respond to changes in the market and to customers’ needs quickly to create competitive advantage.”

Scrum principle: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
Generic translation: “Deliver working (but not necessarily feature complete) products to market sooner. Iterate the product with enhancements over time.”

Scrum principle:
“Business people and developers must work together daily throughout the project.”
Generic translation: No translation necessary!

Scrum principle: “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
Generic translation: No translation necessary!

Scrum principle: “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Generic translation: “The most efficient and effective method of conveying information with a product development team is face-to-face conversation.”

Scrum principle: “Working software is the primary measure of progress.”
Generic translation: “A working product is the primary measure of progress.”

Scrum principle: “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
Generic translation: No translation necessary!

Scrum principle: “Continuous attention to technical excellence and good design enhances agility.”
Generic translation: No translation necessary!

Scrum principle: “Simplicity–the art of maximizing the amount of work not done–is essential.”
Generic translation: No translation necessary!

Scrum principle: “The best architectures, requirements, and designs emerge from self-organizing teams.”
Generic translation: No translation necessary!

Scrum principle: “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
Generic translation: No translation necessary!

As you can see, they can all be translated into a set of a principles for how to conduct business anywhere, not just software development. In fact, many Scrum principles need no translation at all. It amazes me how many businesses I’ve run into (many of which are quite successful) that do not prioritize their needs and strategy in any visible manner. Number one recommendation to any business on this planet: “Prioritize your most valuable initiatives now. Start by doing the most valuable thing first.”

November 22nd, 2007 - Posted in agile, business | | 0 Comments

.NET URL Generator Class

If you’ve done enough web development in .Net, you’ve certainly run into the need to work with URL’s. Heck, in any web development arena, there is a need to work URL’s. There are various situations where creating URL’s from scratch or dynamically modifying an existing URL are useful. Some examples include generating a URL that links from one dynamic page to another in your web application. In Ruby on Rails, you have the Rails routes built in and can almost always generate URL’s using the dynamically created URL path helpers that exist when you define routes to different controllers.

Obviously, in .Net, your routes, pages, and URL’s are up to you define. You can certainly get a framework but even within a framework, the ability to manipulate URL’s can be very important and useful. For example, consider URL re-writing which is common in any web application, particularly those that make heavy use of URL parameters but still want to conscious of SEO (Search Engine Optimization). In these cases, you often have a set of rules (usually regular expressions) that are checked in order to ‘write’ and ‘unwrite’ URL’s into their ‘friendly’ form and ‘raw’ form.

In any case, for you .Net web developers out there, I wrote a utility class called UrlGen. First, though, here are some examples of how it can be used:

  1. URL from scratch:

    UrlGen myUrl = new UrlGen();

    myUrl.BasePage = "google.com";
    myUrl.Parameters["q"] = “some search keywords”;

    System.Console.WriteLine(myUrl.ToString()); // Outputs “http://www.google.com?q=some%20search%20keywords”

  2. Starting from an existing Uri object:

    UrlGen myUrl = new UrlGen(new Uri("http://www.microsoft.com/?param1=value1"));

    myUrl.Parameters.Remove("param1");
    myUrl.Port = 25;

    System.Console.WriteLine(myUrl.ToString()); // Outputs "http://www.microsoft.com:25"

  3. From an existing URL string, such as Request.RawUrl:

    /* Assume Request.RawUrl is equal to "http://localhost/mypage.aspx?param1=value%20one&param2=value%20two"
    UrlGen myUrl = new UrlGen(Request.RawUrl, false); // isRelative property is false since the RawUrl should be an absolute URL

    System.Console.WriteLine(myUrl.Parameters["param1"]); // Outputs “value one”
    System.Console.WriteLine(myUrl.Parameters["param2"]); // Outputs “value two”

    System.Console.WriteLine(myUrl.ToString()); // Outputs “http://localhost/mypage.aspx?param1=value%20one&param2=value%20two”
    System.Console.WriteLine(myUrl.ToRelativeString()); // Outputs “/mypage.aspx?param1=value%20one&param2=value%20two”

That’s the gist of this class but as you can see from the examples, manipulating existing URL’s or generating URL’s from scratch and working with them in a controlled and predictable fashion is now very simple. The class handles all the URL encoding and unencoding for you as well as appending necessary parameters and building the query string, etc. Additionally, the ability to take an absolute URL and spit out a relative URL may also be a very useful function for some out there. Download, use, and enjoy. I have the unit tests for this class available but didn’t provide it here. Feel free to let me know if you want it, too.

October 1st, 2007 - Posted in .net | | 0 Comments

Agile methodologies for other types of work

Agile methodologies are well-known in manufacturing and software development circles. As a person with a broad set of experiences in various industries, I’ve seen a lot of different businesses at work in their own domains. For example, how could one apply agile methods to the business of insurance claims? How about towards the process of brokering commercial real estate deals?

Before I even try and find a possible opportunity to improve these businesses with agile methods, several preliminary issues come to mind: Am I merely using agile methods as a hammer looking for a nail? Also, ‘agile methods’ is an often misunderstood (though well-known) phrase, maybe I should think about more specifically what kinds of agile methods even make sense to talk about?

In tackling the first question, you could say Yes, I am using agile methods as a hammer looking for a nail. This is because I have seen (and have heard) of much success with agile methods (Scrum, in particular) in software development and Lean in manufacturing. In that sense, I am biased towards Scrum as an agile method and as I’ve learned and used Scrum thus far, it begs the question whether Scrum itself or one of the other myriad agile methods can be effectively applied to other forms of work and entire industries. Since I am aware of my bias, however, I intend to be careful in making assumptions about how agile methods might even be plausible when applied towards other kinds of work, such as insurance claims adjustments or actuarial research.

As to the second question, ‘picking’ a particular agile method will require a thorough examination of the particular business process. If you think about Scrum for a moment, it’s certainly geared towards the needs of software development but several of its aspects are generic in a way that they could be translated to other forms of work. The concepts of the Team, the Product Owner, the ScrumMaster, Chickens and Pigs, and even User Stories, are concepts that could be fitted to other work patterns. I shall try and define those further in another post when I dissect some of these business processes at a high level.

I just want to get the juices flowing about agile and ‘other’ forms of work besides software development and manufacturing. I’m certain I am far from the first person who has though (or even tried) to take agile methods to other professions and industries to see if they are viable alternatives to improving the quality of work, and speeding up how work gets done.

September 15th, 2007 - Posted in agile | | 1 Comments

Action… Patience… Different Action

In software engineering, we speak often about re-factoring. In essence, re-factoring software code means to break down responsibility into more manageable and organized chunks. Of course, in reality, re-factoring by that definition is insufficient to actually re-factor code. Nevertheless, the principle behind re-factoring is an important one: Make a small change, test and make sure the behavior hasn’t changed. This applies to running a business as well; sometimes you need to take a small action, and then test to see what happens.

Tearing out the basic tenets of the business can make sense, too, as we have seen throughout the course of history as exemplified by huge industry juggernauts like Apple, Inc., IBM, and many other large companies that have re-invented themselves into markets they never would have predicted themselves to be leaders in. The point I am trying to make is that a short attention span to the nuances of a niche market can be costly. Patience is important to making a few small changes to your business and then taking the temperature of your business as it changes, giving it ample time to actually see results from your tweaks, just like software in the real-world.

This applies to my current business in how we acquire customers. There are many different customer channels we’re approaching, from cold-calling conference centers and event facilities to optimizing our site for search engines and keywords, we have to be patient with our changes and also be ready to adapt to things to work and stop doing those that don’t.

What’s the moral of the story here, anyways? In life, it means make a small change, even when in doubt, and then watch to see what happens. If the outcome is negative, you can change back relatively easily (it was a small change, after all, right?) and it works well, you can continue on.

September 6th, 2007 - Posted in business | | 0 Comments

Poll Everywhere Launched!

In trying to re-ignite my joy of keeping my blog going, I decided a great way to do so was to briefly mention the launch of my company’s latest product, Poll Everywhere (http://www.polleverywhere.com). It solves a simple problem for presenters and event planners everywhere: How can I quickly take advantage of technology to gather feedback from my audience and make my presentation/event more meaningful and interactive? Answer: Text Message Voting. With Poll Everywhere, members of an audience can now use their cellphones to vote for things seen on-screen and see some pretty cool charts update in real-time.

Since we’ve just launched, we’re in a promotion period and so far have received quite a bit of unsolicited interest from various entities: Churches, schools, fraternities, consulting firms, trainers, and more. In fact, many of the very people’s attention we sought to capture have come right to us.

If you’re looking to add something unique and impressive to your next event or presentation, hopefully you can take advantage of us!

August 19th, 2007 - Posted in news | | 0 Comments