April 30, 2009

CNET Television Buying Guide

CNET is a technology news company founded in 1993 and eventually acquired in 2008 by CBS. They provide news, reviews and blogs about various technology products, including computers, digital cameras, car audio equipment and televisions. A particular article of interest is the Television Buying Guide, which was last updated in February of 2009. The guide details display types, screen sizes, and much more information related to making an informed TV purchase.



After a quick read of the guide, I feel that I could make a very well informed decision about purchasing a TV, and would know what to look for when shopping online and in store. A new TV is a big purchase, but it is a very large part of our lives. We already spend a ridiculous amount of time in front of a TV, and it is expected to increase. The bottom line is that we need a TV in our life, but we should think about reducing the time we spend watching.

Founders At Work, Caterina Fake of Flickr

Caterina Fake started Ludicorp in 2002. Ludicorp was a massively multiplayer online games company that allowed players to interact in real time. In 2004, Ludicorp added a photo sharing service that surpassed their initial venture in popularity, so Ludicorp became Flickr. It has grown into one of the most influential examples of Web 2.0 technology and was acquired by Yahoo in 2005.



One interesting fact about Fake is that she is married to her co-founder. She is taking commitment to the venture to a whole new level. In the beginning, Flickr began development on a photo sharing website without thorough analysis of the industry or the creation of a business plan. This contributed to the success of Flickr – if the founders would have done their due diligence research they would have determined that photo sharing has not worked yet, and they would be foolish to enter the field.

Flickr’s naivety in field paid off. They created a great product that people love – they created their own market with a breakthrough product. This is refreshing because most entrepreneurial thought is centered around building a product around a market, but Flickr proved that if something is innovative then people will use it, regardless if they fit into a certain market of demographic.

Flickr is the textbook example of web 2.0 – integrating blogging and social networking and capitalizing on the widespread adoption of broadband internet.

Founders At Work, Joel Spolsky

Joel Spolsky founded Fog Creek Software with Michael Pryor in 2000. They did not have a specific product in mind, but wanted to start a company where they (and other top computer science talent) would want to work. Joel’s blog, Joel on Software, helped get his startup off the ground. He created a very popular blog among software developers around the world. Fog Creek is based out of New York City and writes software for bug tracking and remote desktop. Fog Creek has doubled its sales every year (even during the dotcom crash) and have never taken outside investment.

I find it very notable that Fog Creek has never taken outside investment. One of the reasons for this is that they did not want an outside venture capitalist to pull the company in any direction. This demonstrates organic growth – they did not grow too quickly, and that is why they are sustainable. The interview in Founders at Work describes the growth process as a more traditional business rather than a fast web startup. This makes sense because Fog Creek was formed as an anti-dotcom company. Spolsky saw that most internet startups were overvalued and their founders were inexperienced.

Joel describes Fog Creek working as a software consulting company as a means to an end. Fog Creek was doing consulting work while building a software company internally. Fog Creek (and most other consulting companies) paid their consultants $60 an hour and charged them out at $250 an hour. This worked great until the market disappeared for highly paid consultants, so Fog Creek became a traditional software company (like they had planned).

The story behind fog creek is really interesting. It fits with the “made by programmers, for programmers” because their employees are highly paid and have some of the best amenities in the industry (Below picture is the office - from this album).

April 29, 2009

Founders At Work, Craig Newmark of Craigslist

Craig Newmark is the founder of craigslist, one of the highest trafficked websites on the internet (26th highest according to Alexa.com). Craigslist started as an e-mail list for events going on around the San Francisco Bay area. After growing in popularity, he turned the list into a website. From the beginning of his venture Newmark was dedicated to building a community on the internet, and wanted to keep the site as ad-free as possible (much like this blog :) ). The site has always has held the user experience in high regard, and that’s one of the reasons that the site is so popular. Craigslist is able to operate as a small organization, even though they manage postings from over 300 countries.

Newmark got the idea while working at Charles Schwab in 1994. He was adamant about the transition of equity brokerage to be conducted online. After dedicating the majority of his time to Craigslist, he allowed users to post Web pages automatically. In 1999, this was a breakthrough because web technology was still relatively new and unproven. Newmark claims that the biggest entrepreneurial lesson that he learned was to follow your instincts. He realized that he was not a good manager, so his CEO (and first hire) is a great manager. Newmark mentioned that he primarily does customer service on his site – which is really cool. He spends most of his time dealing with apartment brokers in New York City.

I found this to be very interesting. Newmark, the founder of the company, does primarily customer service. He said that he sometimes uses George Costanza magic when acting as the public figurehead of the site, but the majority of his week is customer service.



The Craigslist community has a culture of trust and goodwill, which makes it unique as far as internet communities go. Craigslist users share the same moral compass of the founder, which I found to be very interesting. Much like a normal community, it is self policing, and Newmark has found that the majority of people want other people to play fair. The reason for the strong community is the relatively slow growth of Craigslist; they’re the tortoise, not the hare. The site grew slowly and has adapted over time, much like a real-life community (Below image courtesy of Hitwise).

April 28, 2009

Holographic Storage Breakthrough

G.E. announced (article here) that researchers have laboratory proven (it works, but not on my budget) that 100 DVDs worth of content can fit onto one standard size holographic disk. Industry experts are excited about the wide range of applications of this technology, and so am I.


Being the computer pack-rat (or digital archive enthusiast) that I am, I love to see advances in this field. The aforementioned article claims that this holo-technology could be the next generation in low cost storage. I don't want to get into the specifics of how the holograms are stored on the disk, but the breakthrough came from an increase in hologram readability by using lights on the lower end of what is readable by current Blu-ray players (awesome light spectrum chart). The technology to read the hologram is similar to CD, DVD and Blu-Ray players, so they would be backward compatible with the soon to be ancient formats.

It may seem surprising that G.E. is coming up with this tecnology (I would have expected it from Sony), but they have a rich history in innovation. The article mentions that G.E. plans to partner with electronic optics producers to bring the holographic technology to market.

It makes perfect sense to innovate in this area, even when traditional hard disks are very cheap. The world is producing data at an alarming rate, which is expected to increase. Even with more advanced servers, data still needs to be backed up.

Getting Things Done with Moleskine

About a month ago, I purchased a Moleskine notebook. It has been the subject of some critcism (jokingly I'm sure) but I really like it and have made part of my daily struggle to get things done.


I have always been a great note-taker. Even though I don't know shorthand, I can transcribe a content filled lecture pretty easily. I even have a notebook dedicated to each class, and most of the time they get filled about 3/4ths of the way through the class. This system works great on a day where I am 100% focused on the task at hand - but that rarely is the case.

Whenever I have a thought that I can develop in my head for longer than 30 seconds, I try to put it in writing in the Moleskine to see if it still makes sense. If it passes that test, then I look into the idea later when I can do additional research. The Moleskine book has become the starting point for all of my recent ideas and acts as a good pad for taking notes at a meeting without an agenda.

I separate ideas and things to do in the notebook by date. This makes it easier to remember when I had a meeting or came up with an idea. It also forces me to address all of the day's items before I lay my head (a phrase I commonly write in the book). I have taken a liking to this approach of decompressing (like a daily retrospective) information, it keeps me up to date and keeps due dates at the front of my mind.

Even though they seem a bit hipster, I would suggest that everyone carry a page-per-day notebook (and a pen of course). It is the first step in my GTD strategy - more steps will be detailed in near future posts. Please, post comments related to the first step of your Getting Things Done process/strategy. I would love to hear a few different perspectives on how an initial thought is developed into an idea.

April 27, 2009

Changes Going Against the Grain

I recently heard Ed Brill (yes, the Ed Brill) speak about enterprise social networking. Overall the talk was very well done. Ed did a really good job of detecting the audience's understanding of the topic. Since everybody that attended the talk was educated on the subject, he could skip over some background content, which I appreciated.

The focus of Ed's talk detailed corporations use of blogs and social networking to their advantage. He brought up some good general guidelines about corporate blogging. Instead of having product blogs, companies should have individual blogs about products. This gives blog posts a more personal voice, which makes it easier for other people to connect to the blog. Also, companies should establish a blogging standard (Ed mentioned IBM's) for employees to follow. This is an extension of the companies corporate policy, and it helps to establish a standard of quality among corporate bloggers.

One part of Ed's talk was of particular interest to me. Popular, High visibility products/services typically have a strong online community that supports the product. High-traffic sites like Facebook fall into this category. Everyone is on Facebook, and the average user is there frequently (Facebook has a great statistics page). Users love Facebook, but there is chaos whenever Facebook tries to make a change. I asked Ed for input - how are "against the grain" changes are made? Because if it is working, why would it need to be changed?


Ed responded with by saying that the product/service has to be worth defending to make significant changes. Since Facebook is a great service, it is worth the extra effort in defending it when it is changed. Ed went on to say that changes should be made public before they happen, and that users should be aware of upcoming changes. Ed also mentioned that customer reviews carried more weight than any other statistic - so power users of the product/service should support the change before it happens.

Facebook is definitely worth defending, so it is continuously improved. Most of the time, its users are accepting of system changes, but there will always be demands to bring the old Facebook back.

When a product/service is high visibility, there will be more opponents of changing the it for the better. There is reduced risk when things stay the same because of the critical mass of users. But with this reduced risk, there is missed opportunity. High visibility products/services should still have the ability to adapt - even when users are satisfied with staying the same.

April 23, 2009

Web Trends Metro Map

This map surely caught most everyone's eyes when the final beta version was released a few weeks ago. (link is from TechCrunch, Information Architects created the map).



Picture referenced from Flickr (High resolution version). For a more interactive experience - check out Zoomorama.

Every year Information Architects (iA) overlays the 333 most influential internet domains and the 111 most influential people on the internet on top of the Tokyo Metro map. With help from mapping enthusiasts, iA maps each domain and person to a stop on the rail network. As an added twist - the maps are available for a high quality printing, but the firm will only be producing 1000 of them. So get your requests in now.

This visualization is a joy to explore - I especially like the different colored rails lines, representing different types of internet traffic, like applications, broadcasting, etc. For example, The Pirate Bay is on an intersection between the sharing line and the filter line. This makes sense, because they are a torrent (file-sharing) search engine. If I follow the pink filter line up from The Pirate Bay, I eventually hit Google, which is a central stop on the filter line. Google also intersects with the applications line.

IA put a ton of time into creating this masterpiece - it takes a few minutes to get used to, but spatial locations are also relevant on the map. This means that CNN is close to YouTube, and the Onion is close to ESPN. This map is a blast to play with - please comment with any observations that you find, particularly if parts of the map layout do not make sense.

April 22, 2009

Shovel Ready Projects

The phrase Shovel Ready, taken from its roots in government is defined as a project that has been fully vetted and approved at the state and local level. In order to call a project shovel ready, one must be able to break ground the next day and begin construction. Shovel ready can be applied across many different types of projects, not just ways to spend that Obama money.


Having a project that is shovel ready plays a large part into whether or not it receives funding - Chancellor Perlman hinted at this with UNL receiving federal funding for the innovation campus expansion.

This same principle can apply to software projects. Having a software project shovel ready involves any or all of the following (please note that this is an abridged list):
I am a firm believer in starting a development project strong - this is especially important in Agile software development (the top principle). The faster a team can produce working, accepted code, the happier clients will be. This can play a huge role in the life of a project. A young project that covered its bases from the start will have a higher probability for success.

Entrepreneurs often claim that they have projects that are shovel ready and are waiting for the shovel (funding) to get the project moving. This is an indication that the project in question is not shovel ready. It does not take millions of dollars of funding to get a software project started. Grab a few friends and crank out a detailed prototype of a feature of the product. Coupling this prototype with a business plan will ensure that the project is shovel ready.

April 21, 2009

Consuming SOAP Web Services in Grails

On my current project, my team has to consume numerous web services from an external, SOAP provider. This may seem trivial, but the Grails Framework provides numerous ways to expose web services, but could offer few solutions to consume the web services. I initially experimented with GroovyWS. After some success, I had to ditch it because the services that we are working with are too complex for that library.

The solution I decided to use back to Java. Since Groovy runs on the JVM, a Groovy developer is armed with the same libraries as a Java devloper. This makes the Groovy language very powerful (if it needs to be). To consume a SOAP service, import the required Java libraries - I used the Apache Commons Libraries.

import org.apache.commons.httpclient.*;

The implementation of the calls may seem primitive, but what it lacks in beauty it makes up for in speed - I was shocked at the quickness of the service calls. To call the service, we are going to pass a small snippet of XML to the web service and parse the results. First, define the url of the web service and the XML request (which I of course called payload):

def url = "http://www.webservicex.net/CurrencyConvertor.asmx?wsdl"

def payload = """
<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.webserviceX.NET/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ><SOAP-ENV:Body><tns:ConversionRate xmlns:tns="http://www.webserviceX.NET/"><tns:FromCurrency>USD</tns:FromCurrency><tns:ToCurrency>EUR</tns:ToCurrency></tns:ConversionRate></SOAP-ENV:Body></SOAP-ENV:Envelope>
"""

Please don't be afraid of the payload. I was at first, but the ever so awesome SOAP Client is used to make SOAP requests and responses a breeze. The payload string is generated by the SOAP Client then pasted in the source code. The payload string will differ depending on what function is being used - notice in the example string that I am converting USD to EUR.

From here, we need to send the request to the server and recieve its response - hopefully a 200 response.

def method = new PostMethod(url)
def client = new HttpClient()

payload = payload.trim()
method.addRequestHeader("Content-Type","text/xml")
method.addRequestHeader("Accept","text/xml,application/xml;q=0.9")
method.setRequestEntity(new StringRequestEntity(payload))
def statusCode = client.executeMethod(method)
println "STATUS CODE : ${statusCode}"
def resultsString = method.getResponseBodyAsString()
method.releaseConnection()
return resultsString

This makes the request to the server and returns a string.

From here, we can parse the string and reap the benefits of not having to write the complex functionality that the web service provided our application.

This method of consuming a web service also appears in Scott Davis' Book, Groovy Recipes: Greasing the Wheels of Java. All I want to know is why could I not find this information 2 months ago? This book is a must for any Groovy/Grails geek.

I know this is a trivial example, but trust in this method and the the methods described in the previous post. Please post a comment if a more complex example is needed - I had a hard time finding resources when I was searching and want to help out anyone that I can.

Big thanks to the formatmysourcecodeblog for the cool source code boxes - I will definitely be using them again.

SOAP Client for Web Services Development

About two months ago, I discovered one of my favorite tools (to put in my programmers toolbox, of course) for developing software. I do a lot of work with web services, and the SOAP Client (actual url: http://www.soapclient.com/soaptest.html) is incredibly useful for testing and implementing web services.



The SOAP Client is useful for testing because it is so quick and easy. Just enter in the location of the WSDL and the SOAP Client can reach out and parse the web service into an easily understandable form, complete with help text. From here, you can test web services on the fly by entering values. This makes it easy to evaluate a web service before you go to the trouble of implementing it in a application.



Each method described in the WSDL file can be individually called from the SOAP Client. The client displays the web service request or the response according to the data that was input into text-fields. This request response information can be viewed in XML or HTML, depending on if the service is being tested (XML) or the client is being used to generate code for an application (HTML).

I use the SOAP Client in the following order:
  • Enter the WSDL location to ensure I'm calling the right service.
  • View the XML Response of a request to see if I am calling the right function.
  • View the HTML Request so I can drop it into my application.
  • View the HTML Response to the request to see if there is any tricky parsing needed.
This application saved me a lot of time and effort and has helped my Agile software development because I can quickly integrate web services. Also, I now only integrate the services I need, and am not worried about trying to generate java code from a WSDL - but that is something that I would love to try.

April 20, 2009

YouTube Costs How Much?

Google acquired YouTube in November of 2006, for around $1.65 billion. It has operated as a subsidiary since then, but they have not been the breadwinner. According to Business Insider, YouTube is predicted to bring in $240 million in ad revenue in 2009 - not bad for a company that is 4 years old. But when that is weighed against their projected $711 million operating costs, YouTube is predicted to lose Google nearly $500 million this year. "A bitter pill to swallow," the article states.

YouTube began running ads with their videos to generate revenue, but they cannot charge enough per CPM(Cost per thousand impressions) because no one wants to watch the videos people put on YouTube. The article goes on to say that YouTube will continue to grow in 2009, but the amount of user generated (less appealing) content will continue to exceed the premium (worthwhile to advertise) content.



Hulu, YouTube's network-backed younger brother, got he online advertising right by providing users with content that they want to see. The number of unique visitors to Hulu pales in comparison to YouTube (6 Million vs. 86 Million). Hulu is projected to make $120 million in ad revenue this year, about half as much as YouTube. These are difficult predictions to make, but Hulu is much more efficient in generating revenue.

Why would Google continue the YouTube experiment? It's costing them around $1.4 million per day to run the site. Google cannot pull the plug on YouTube, but the Business Insider article did mention a few alternatives to monetize like subscriptions and premium content. Those would be great but they would change the YouTube community.

I would propose to shut down YouTube for one day per week - "On the Seventh Day, YouTube rested." Google could keep some of the money that the site loses everyday. Or they could donate it - which they love doing.

Experiment time: If the site were shut down for a day (I know you can't just pull the plug), then you could theoretically:
YouTube is not going anywhere, and Google will improve its profitability, but it is interesting to think of what a day without YouTube could buy.

April 19, 2009

Active Uses of Twitter, Pt. 1

Evan Williams visited the Raikes School for a fireside chat between himself and whomever else managed to get in the door. It might have been a miss-communication, but the event was over advertised. The event was so popular that Paul and Dan had to act as bouncers. Dan even accidentially turned away Williams' mother from attending the talk - Hey, if you're not on the list, you're not on the list.

The talk was Webcast to anyone who wanted to listen, and the #evUNL search term was used to field questions from people in the audience and listening from remote locations. The event went pretty well, I know Nate worked hard on it. Williams fielded a wide range of questions from the audience - like technical, business and the celebrity users of twitter. Shaquille O'Neal is an avid twitter user, and Ashton Kutcher is more popular than CNN.

Someone had to ask the burning question, "How is twitter going to make money?" This is a very inappropriate question to ask. It's like asking for the formula to Coca-Cola - He's not going to tell you that. He'll tell you after it makes money.

I started using twitter a few weeks ago and I think it is fun. I especially like being able to update when I'm away from my desk (I use TwitterBerry). Most of my friends use Twitter so it is fun to keep up to date in a different medium.

Corporations, companies, businesses, for-profits, non-profits, and any other entities have begun the task of trying to tap into Twitter to market to consumers and maintain brand image. Twitter is unique in the fact that companies can hear you; you make a public post about how much you like Starbucks - Starbucks hears it. I offer you the real life example:



That was the post that I heard Kiel make. I responded with this:



After about 6 hours, I received this:



The Sonics heard me. This might be a little too creepy, but I thought this was really cool. If people are talking about the Sonics, the Soncis want to hear about it.

April 15, 2009

Stanford Entrepreneurial Thought Leaders

The Stanford Entrepreneurial Thought Leaders Series is a podcast series of lecturers from the Stanford School of Business. The speakers present on not only software , but bio-science, medical and social entrepreneurship as well. The speakers definitely know their stuff; past speakers include Tony Perkins, Martin Eberhard, and Steve Young (to name a few). The talks are always entertaining and run about an hour apiece. Check out the screen shot of their homepage below (there was no embeddable player):



These talks are great - I listened to them all summer (on my Zune of course). It's great to hear the stories and all the advice these guys (and gals) have to offer. If you're into podcasts (if you're not, they are a great resource), I would suggest you check out these talks. Also, if anyone is familiar with this series, post a comment and let me know what you think.

April 13, 2009

Google Docs to Get Things Done

In the next 3 weeks, I will be moving out of my cozy dormitory and into a house. Also, in the next three weeks, myself and 7 friends are going to Italy (for a week of Linguine!) Since both of these activities are happening at once with many different people involved, I have been having a hard time keeping things straight.

Just recently, my use of Google Docs (and Google Calendar) has reached critical mass - I have transitioned all of my personal notes to Google Docs, along with my other todo lists and information. I never thought it would happen, but I am using Google Docs everyday. I have finally been able to update notes fast enough for them to become living documents. Living documents is a phrase that I have used to describe documents (mostly software documentation) but have never actually seen them come alive.



I think that it is important to have a Getting Things Done (GTD) Strategy, and Google Docs serves as the end of the day resource to catalogue and organize the organizeable parts of my life. After I log a days worth of notes (why yes, I do use one), I decompress them at the end of the night. I can expand and organize project ideas that strike me during the day. Throughout the course of the day, I pick up alot of book recommedations (like Daivd Allen's book on GTD) and blog post ideas, so I can remember them when it is time to read/blog.

A great advantage of my nightly decompression is that it puts me back in front of past ideas. This allows me to keep other ideas current and cull out older, nonsensical ideas.

Much to the dismay of Nate, Paul and Matt, Google Docs are collaborative documents - so just call me Shawn Fanning because I'm sharing the love. I shared two spreadsheets about our Italy trip (adding to our growing library on Google Docs) and two more spreadsheets about the house we are all about to move into. Two of the sheets were shared within 10 minutes of each other.

This may seem excessive, but it gets the job done. One particular use of the shared documents will surely work out well - Sharing group expenses on a Google Spreadsheet is fast and easy - a perfect fit for any group that will have to settle up their finances at the end of their trip. I got this idea from a group of friends that were Spring breaking in Texas. They utilized a shared expense sheet to distribute gas, hotels, beer and other expenses across 8 people.



I am slowly becoming a fan of Google Docs, but I can't wait to see how Microsoft Office performs online. I'll post more about GTD, but until then, check out Lifehacker - you won't be disappointed.

April 12, 2009

Geoff Dagley from Relevance

About a week ago, we had the pleasure of hearing Geoff Dagley from Relevance Development. He was a friend of Jeremy Suing's (the professor) from his years of working at the (now defunct) J.D. Edwards Company. Geoff's talk covered both agile project management and agile development.

The project management half of the talk was pretty interesting. Relevance is on the bleeding edge of not only agile development, but agile management as well. They do most of their work remotely for smaller clients. Relevance uses Mingle for project management, which looks like the best tool for the job. Some other highlights about their project management techniques:
  • They work with clients and educate them on agile processes - so the client knows what their consultants are doing during an iteration.
  • They involve the client during daily standups - Relevance teams conduct daily conference calls with their clients.
  • Clients can purchase a single iteration of development from Relevance.
I was very intrigued by the fact that would could buy a single iteration (2ish weeks) of development from Relevance. They must work very closey with their clients to make that possible. He also showed us the end of iteration documentation and it was pretty impressive. They used Mingle to export reporting materials, which is a great way to save time.

The second half of Geoff's talk was about agile development. It was nice to hear it from Geoff because he still developed software. Relevance uses rails, github and a continous integration server (Calm down Erik). Some more highlights about thier development practices:
  • They practice Behavior Driven Development (BDD) - A practice that is driven by value delivered to the client, which is perfect for a consulting organization.
  • RunCodeRun, which is their continuous integration solution, is tied closely to github, so it makes sense for Relevance.
  • Developers do remote XP with skype and screen sharing software, which I found to be incredible.
The remote screen sharing was very interesting - He is on the phone and sharing his screen with another developer for most of the day. That's an interesting way to get things done right, but might be a little intrusive.

His final thoughts touched on the culture of Relevance, which is a big reason for their success. If the culture of an organization fits with agile development, then that organization should build their software with agile development. This is a counter argument to the traditional "Right tool for the job" argument about using agile to build social, interface driven software. The culture of the company should dictate the methods they use for getting the job done. A sports anaology can be applied in this situation: If I have a guard oriented basketball team (culture), then I would run a guard oriented offense (software development methodology), to win the game (deliver working software).

Geoff gave a great talk - I Could really tell that he loves what he does and was very passionate about software.

April 11, 2009

Bonus Evaluations

The final system is arguably the most controversial, but accurately mimics systems in some companies. In many companies, salaries are "low", while a good portion of compensation is in yearly bonuses and/or commission. These are used to reward results and encourage improvement. In Design Studio, the PMs would be given a set amount of bonus money points. These points would be distributed to teams and team members based on achievement and improvement. PMs would need to defend these choices to the other PMs saying why their team deserves more points. It would essentially put the Design Studio grading on a sort of curve. The PM could choose to give each team member a "B", or (more likely) set distinct grades.
This would require extensive PM communication and rely on their ability to accurately justify their teams' progress and results. They would also need to know each team member and their activities very well, more than in the current system. This would still require them to evaluate their team, but on their own terms. (perhaps with a previous method?)
Pros:
  • Competitiveness between teams can yield greater results.
  • Forces PMs to be actively involved to properly evaluate teams.
  • PMs get to defend value of their decisions.
Cons:
  • Competitiveness between teams can easily become negative.
  • Team grading is truly at the discretion of their PM, there is very little standardization.
  • Results may take precedence over learning and goals.
This would work with a set of identical PMs and a purely positive competition between the teams. Unfortunately, students always question grading and would even more so if people (Lutz) broke the curve.

Big thanks to Nate for writing the majority (all) of this post. Please forgive me for being a day late in our post-a-day series about Design Studio evaluations. Please post any final comments below.

April 10, 2009

Create Your Own Evaluation

This next system might not really stand on its own and might work better as an addition to one of the other systems. Write your own evaluation for your teammates to fill out. Having students define a portion or all of their evaluation would give them specific feedback on what they want to improve. This would have numerous benefits for students, the most obvious being feedback that interests them. Often times, feedback coming from evals is relevant, but does not mean anything to students. For example, a student improving their client interaction is positive, but it may not be important to the students improvement. If I am trying to improve my front-end coding skills and I learn that I am interacting with the client well - that is good. But I don't care. Requesting to be evaluated on something is a new topic for everyone in design studio - there are few times when one requests topics on which to be evaluated. Creating your own evaluation is much like focusing on goals, but this takes it a step forward (because it is not required to evaluate teammates on their goals). Having students choose a required evaluation category. Here are a few of the high level pros and cons of user created evaluations: Pros:
  • Students request information on (and improve in) their highest priority categories. This means that if a student want to improve their testing, they will be guaranteed feedback on testing.
  • Students have more involvement in the evaluation process because they are getting specific information in return for completing evaluations.
  • Make evaluations (even more so) directed at a specific student.
  • Removes a portion of the team bias involved in evaluations.
Cons:
  • Student might pick generic categories and not use the information to their highest potential.
  • Adds another difficulty to quantifying design studio.
  • Reduces the spectrum of opinions of teammates with limited evaluation categories.
User created evaluations would need to be part of a new (or the existing) system. They do not necessarily have to be constrained to a category type, but would be preferred so that they are as much like the traditional evaluation system. Below are some example questions/categories:
  • Lateness
  • Am I working well as the driver of an XP pair?
  • Am I properly handling the clients expectations?
  • Writing Effectiveness
  • Am I disruptive at work?
  • Do you love me? Do you want to be my friend? (joke)
Some of these questions may seem insecure, but they can help students get better. Please post comments about student defined evaluations. Also, if you could be evaluated on one thing, what would it be?

April 9, 2009

Interview Evaluations


Instead of having team members write responses, evals could be done face-to-face with a Program Manager. These "interviews" would happen every 2 weeks and take about 5 - 10 minutes. It's basically a "how goes it" session with your PM without any other team members. These would closely resemble the post-eval talks from the current system.

An obvious benefit of this system is the timeliness of responses. Issues with team members or processes can be acted on immediately. Another necessary piece would be to focus time on goals (if there are no major issues). This would allow a regular check on the progress of goals and suggestions for improvement. Since setting, achieving, and learning from these goals are a large part of our grade, students would be able to hear exactly how they were doing and still have time to improve.

Pros:
  • Timely information.
  • Informal, conversational situation.
  • Elimination of evaluation deadlines.
  • Good practice on open, constructive communication for both students and PMs.
Cons:
  • Hard for students to verbralize difficult evaluation subjects (i.e. Criticism of a teammates work). Also difficult for the PM to respond in a timely manner to difficult issues (more on this below).
  • Scheduling pains and time investment.
  • Recording workload is placed on the PM.
  • Difficult to quantify evaluations into a grade.
  • Issues may take time away from goals.
Personal interviews would be a big change of pace for Design Studio. Communicating a specific, difficult subject verbally in the proper context (PM and student are on the same page) is a communication skill that most students would need to improve on.


PM's would also have to factor in the personality of the evaluator, as well as the information provided about the student that is being evaluated. For example, students that have more upfront personalities would provide evaluations that are biased - either very positive or very negative reviews. On the other hand, if the evaluating student's personality is more reserved, then the PM would need to be very attentive during the interview to understand the evaluating student's opinion.

Personal interviews would give PMs better feedback on the person that is providing the evaluation. This would be in addition to the reviews provided by the rest of the team. A lot can be determined about a person from the way they describe their teammates.


This is one of the more experimental ideas that we came up with for improving the evaluation system. Please post thoughts and comments about personal interview evaluations. Also, examples of a similar system being used in the industry would be great to discuss in the comments.

April 7, 2009

Private Blogs for Evaluations

Since Nate and Nick are avid bloggers (note we didn't say competent), our first idea for the improvement of the evaluation is an evaluation blog. Team members would make a well thought-out blog post about the performance of their team at any necessary time. Blog posts could be shorter (a few paragraphs) and focus on one member of the team. We would want to enforce a minimum length for each post so we don't have people tweeting their evaluations. This would reduce the number of reactionary and flamatory posts.

Pros:
  • Students can report feedback at their own pace. Blogging gives the option of more frequent updates, while retaining the option of having large posts twice a semester.
  • Team members would receive faster feedback on how to improve. PMs could also use comments to ask questions for clarification.
  • Can tag based on team member, individual goal, team goal, etc. This should make PM life a bit easier.
  • Faculty can enforce a qouta on number of posts depending on the amount of feedback required.
  • Easier to remember specific behavior examples the day they happened instead of at a particular time.
Cons:
  • High initial overhead if an existing cannot be adapted to fit Design Studio's needs. These need to be both secure and accessible, and only visible to the student and their PM.
  • Easy to forget/put off because there will be more updates required (i.e. every two weeks compared to every six weeks).
  • Would bring on more negative comments.
  • High PM overhead because they would need to compile multiple posts to determine a grade.
An organic system like this would skip over the "evaluation period" and require more upfront planning to ensure the completion of goals. Team member goals would need to be communicated to the rest of the team, or this system would not make it easier to give feedback on teammates goals. Unless there was a public post of goals that teammates could comment on.

A system like this would either be very easy (use Wordpress or Blogger) or quite difficult (write custom application) to set up. If a blogging system could enforce all of the constraints required by an evaluation system then it would be an attractive replacement for the current system.

This example post took me less than 2 minutes to think up, write, and publish.



Please, share your thoughts about blogging evaluations in Design Studio. And remember, if you have any other ideas about improving the evaluations process, please share your thoughts below.

Also, it happened.

April 6, 2009

Actual Demand Based Pricing

Kevin pointed out that the example offered in a previous post was over-thought, which is absolutely correct. In my example, I claimed that our increased demand caused the back-end system to proactively increase the price of a flight to Italy. This is not entirely correct. Kevin offered the more realistic situation - we bought all the cheap seats of their promotion, which is a more believable scenario.

This is of course, absolutely correct - Thanks Kevin. According to Wikipedia, the biggest set of encyclopedias ever recorded, demand based pricing
is any pricing method that uses consumer demand - based on perceived value - as the central element. These include : price skimming, price discrimination and yield management, price points, psychological pricing, bundle pricing, penetration pricing, price lining, value-based pricing, geographical and premium pricing. Pricing factors are manufacturing cost, market place, competition, market condition, quality of product.
Couldn't have said it any better myself.

This concept directly relates customer demand to the price of the good sold or the service rendered. This is prevalent in markets where high demand has exhausted the number of goods or services that can be purchased - any market where some customers will walk away empty handed. So Jonas Brothers Tickets, Game Systems (to an extent) and Plane Tickets.

This is a risky strategy - demand pricing can lead to reduced revenues and unsatisfied customers. For example, when Nate & AJ make it big and are selling out arenas, they can increase their ticket price to make more money. They can do this as long as there is high demand. So when they get addicted to drugs and begin to fizzle out, the demand will not be there. If their manager/booking agent/backup drummer keeps ticket prices high they will be playing to unsold venues, which still might be profitable. No one will be willing to spend the big bucks to see a band that has fallen from prominence.

Gauging the maximum price consumers are willing to pay (MPWTP) is a tricky subject and is difficult to generalize. Of course there are boundaries to this scenario - there is a maximum price because very few people would pay $1,000,000 to see Nate & AJ Live (not yet at least). There is also a minimum price, because a free show would mean chaos and riots in the streets (theoretically). In between the two poles is where capitalism takes place.



From here we can take this a variety of different ways: Forget the subject, understand demand, say there is no pattern, or just make a sweet product. Most firms and individuals will price at the most logical point; where they make the most money. But some cases come up with great and horrible ignorance of demand based pricing.

I like sharing my very basic thoughts about Economics, even though they are sometimes shortsighted and incorrect. In the future, I hope to share more detailed concepts and examples.

The Current Evaluation System

Four times a year, we do evaluations of our teammates, ourselves, and the team in general. This involves filling out multiple categories as strengths or weaknesses and elaborating on three sections for each: Current Progress, Improvement Suggestions, and Other Comments. Categories can be added or removed from the top, and you can add your own category (even "Beard"). A suggested grade is also required. It is a lot better than the previous system. It has improved since the beginning of the year; the second round of evaluations brought the addition of some good looking web 2.0 features (click the image for a better view).


There has been an added emphasis on goals this year, which is an improvement from last year. Goals are not built into the system that handles the rest of the evaluations; they are tracked separately in SharePoint.

Pros:
  • Comprehensive - They cover all aspects of Design Studio.
  • Choose Your Own Adventure (or categories) - Evaluate what you think is important for them or your team.
  • Goal based - Meet with your PM after evals to review grades/goals.
  • 4 due dates per year - there is no week to week requirement for maintaining evaluations.
Cons:
  • Not Responsive - Feedback goes to your PM four times a year, hardly often enough to take corrective action in a timely manner.
  • Requires People To Remember Situations - If a teammate does something negative or outstanding, you need to remember it untileval time.
  • They Take Forever - Any week can be ruined by 6-10 hours of evals.
  • Goals are tracked in a separate system, so there is little feedback on goals from teammates.

The length of evaluations are always up to the discretion of the evaluator. There is no set requirement on the length of each evaluation. It is suggested by faculty that each team member evaluate themselves, team members and their PM in at least 5categories. However, this guideline is rarely followed.

The current system has served Design Studio well for the past X number of years (at least two). The following 4 posts in this series will explore new ways of handling feedback to improve performance and make Design Studio a more enjoyable experience.

Please post comments related to the existing system - What you like? What you dislike? What is confusing about it? Also, share an idea if you would like us to include it as a part of this series.

Design Studio - Evaluation Series

Starting this evening and continuing throughout the week, Nate and I will be taking a closer look at the Design Studio Evaluation process and possible ways to improve it. We have to give credit where credit is due - this series is borrowing from Erik's Design a Day Series. But neither Nate or myself are very good designers, so we'll be presenting a series of examples to improve the evaluation process and help students improve during design studio.

Nate and I plan to keep in mind the following guidelines when rethinking the evaluation system:
  • Design Studio is still a class - which means the new system must be able to assign a reasonable grade to each student.
  • We need to focus on improvement - If a student is learning and applying course material, then they will show improvement.
  • Students should work on their projects as much as possible, so there needs to be low overhead in an improved evaluation system.
Evals have come a long way since we began Design Studio, and we want to keep improving the process. Improving the evaluation system would lead to better feedback, which will help students get better and increase the probability of project success.

Later tonight, we will post a review of the current evaluation system and the road map for the rest of the week. Please leave comments - we want to hear as many different viewpoints as possible.

April 3, 2009

Demand Based Pricing

In my previous post, I discussed the general pricing strategy for airlines. Our booking of the trip to Italy for $388 was an anomaly and didn't really fit with trends of airfare - round-trip to Europe goes for $800 during May (which I still find to be incredibly cheap.) The below graph gives a great picture, and its only one-year-old.



When we booked our tickets, we booked 5 at one time. Erik and Matt followed within the hour. We originally thought that the rate we booked at (which Paul somehow found) was going to expire. This was not the case, because when Carrie went to book her ticket a few hours later, the rate adjusted itself to $750ish dollars.

All travel websites implement a back end web-service for flight information and booking online (from a company like ITA Software). Even though the travel sites look different, (Expedia vs. Traveolcity) they use the same back-end web-service to offer flights. The travel "front end" sites offer sites from the same pool, with some price variance depending on the time of day or area of the country from where the person is visiting the site.

So the front end sites and the back end provider must keep in close contact, because the front ends are all selling from the same pool of flights.

The strange thing about our example is that we are leaving on May 7th, and the rate was only adjusted for that day. The day before and the day after (6th and 8th) had the same rate that the rest of the group booked. The pricing service saw that there was high demand of people from Lincoln, Nebraska booking the same flight to Italy, so it adjusted itself hoping that the last person would pay double to travel with the same group.

The fortunate thing about the rate adjustment was that Brett (internet travel extraordinaire) was able find one Website, Orbitz.com, that did not update their prices. So Carrie booked the flight through Orbitz at $388. But Orbitz has to turn around and pay the increased wholesale rate for the $750ish flight to the back end service.

We really dodged a bullet here. Online travel (shopping as well) is difficult, and consumes lives. Booking online travel is impossible - that's why I outsource whenever I can.

Demand based pricing is an interesting subject. Since the acceptance of online shopping, retailers know much more about their customers and can offer a range of prices for the same goods. Keep your ears up for more Italy trip posts and at least one more post (this week) related to variable pricing.

Variable Pricing on Airlines

Recently, Paul convinced Brett, Nate, Matt, Erik, Kyle, Carrie, and myself to travel to Italy for a beginning of the summer vacation. The trip is shaping out to be a blast and I'll post more about the specifics of the trip in the future.

Our main motivation for this trip was not the sights or sounds of Italy, but the price of the plane ticket. We booked our round-trip flights from Chicago to Italy for $388 dollars a price. We might be flying over on the Wright brothers plane, but this was quite the accomplishment, considering that you cannot get to Phoenix for less than $300 dollars. Or can you?

Everyone has a story where they stuck it to the man, beat the system and booked air travel for a ridiculously low price. There is of course a logical explanation to these low rate flights - variable pricing. This is evident in airline pricing strategy (different classes of tickets). Some people can afford to pay $1000, some $800, $500, down to $100. This is done to meet the demand of the market while still trying to maximize revenue.



Maximizing revenue is a difficult subject, because once the fixed costs of keeping the plane in the air are covered, the marginal cost of adding another passenger to the plane is around $30 (meal, baggage, ticket handling, etc.) If the airlines' marginal cost to add another person to the plane is $30 dollars, why are there empty seats? An airline lowering its rates at the last minute to ensure that the plane is filled would make the most revenue off of that flight.

Airlines cannot conduct a last minute, everything must go fire sale for all of its flights. This practice would increase revenues for individual flights, but would hurt the brand image of the airlines in the long run. People would refuse to book their flights, hoping that they will book at the right time to get the cheap seats. Lack of early bookings would cause a reduction of flights because airlines cannot meet the fixed costs of keeping planes in the air. This would cause customer dissatisfaction, and eventually the airline would go under. Then the economy would collapse and we would revert back to primal tribes of nomads (maybe not that far, but who knows?)

Airlines can decrease rates slightly to get the final 2% of seats filled, but there are still empty seats.

Air travel is an interesting business because it is so broken. There are a multitude of problems with air travel - business and technical - that still have yet to be solved. This slide show was pretty interesting (but its from 2003).

April 2, 2009

Please, Don't Throw the Sheep

My Mentoring by the Masters post made me think of an article I wanted to share for quite some time - Tim O'Reilly urging developers to stop throwing sheep and do something worthy. HappierHour is not a sheep throwing application. But it is not preventing global warming either.

O'Reilly makes some other observations in the article. He stresses that the United States is getting surpassed in science and technology innovations - American firms are not providing enough value. He also mentions that Wall Street firms capture more value than they create.

Value is something that needs to be in the front of your mind. Always. HappierHour might not cure cancer, but we are providing value to a significant market. I still think the value we provide is valid, but would it pass O'Reilly's test? Not too confident about that one.

Then how on earth are we supposed to tackle large (checkbook-intensive) problems? And the better question is - How do we solve a large world problem with software?

We can't directly solve world problems with software. Software is not the net that stops the spread of malaria or the smart fuels powering hybrids. We need to take it some step further and think of the building blocks that go into solving these issues. Want to map the human genome? Grab your Perl book and get to work.

Through the efficient use of software - large, complicated world problems can be solved. I hope that's what O'Reilly meant when he told us to stop throwing the sheep.