Yearly Archives: 2013

Software Prototyping: Please Throw This Away

I believe in the value of prototypes.

So do manufacturers, designers, and silicon valley. New hardware concepts at large coprorations like Google, Apple, and Microsoft are accompanied by many prototypes (for example Google Glass).

prototypes

User interface prototypes are key to discovering usability and are commonly used by designers. Often this starts with pen and paper before a single mouse is clicked or keystroke registered.

uiprototype

One similarity shared by all prototypes I want to mention before continuing is this: prototypes are never meant for use by the end user. In the case of Agile software development, we may have a select group of users work with prototypes with the knowledge that they will never see production usage in their current state. Additionally, if a piece of software serves some purpose in a production environment, it must be developed as such.

Opinions will vary on this subject, but here are the most important traits of a software prototype in my opinion.

  • A software prototype is developed in isolation. No (or absolute minimum) interaction with existing code.
  • A software prototype follows coding standards. We write clean code regardless of its final use. Perfect practice makes perfect results.
  • A software prototype is written by people who are constantly learning and training to hone their craft. More on this later.
  • A software prototype is written by people who will be responsible for writing the finished product.
  • A software prototype is discarded. I repeat. Throw it away after demoing it.

When the above specifications are followed, we gain some specific benefits.

  • We are provided the opportunity to experiment with a few of the myriad different solutions to a given problem.
  • We have the opportunity to learn from mistakes before creating a production-worthy solution.
  • We have the opportunity to use the best design possible based on first-hand knowledge when creating the final product.
  • Product/business people see their concepts in action earlier in the software development lifecycle.
  • Other groups/departments aren’t paying people to learn to develop software they aren’t ultimately going to create.
  • The company enjoys faster overall development times as technical debt remains low.

everyoneWins

My continued belief is that many companies have a large disconnect between technical and business people on the purpose and value of software prototypes. Prototypes are as much for developers and engineers as they are for business and product people. Technical teams should own prototype implementations.

C# Little Wonders: An Introduction

csharplogoI’ve mentioned C# Little Wonders to engineers on various teams in recent years and several had expressed interest in the URL (when I successfully remembered/found it). I thought I would share it here and save some time.

James Micheal Hare (the series author) has added multiple posts to his blog over the past 3-4 years after switching from being a C++ engineer to C#. Given his background, Mr. Hare is very focused on efficiency. His concise approach and thoughts on why to use certain language features (or not) are very valuable.

If you are new to writing C# or have been doing so for many years, you’ll agree that it is a complex language. I have found and continue to find in C# Little Wonders much that I either didn’t know, had forgotten, or didn’t realize the value of.

C# Little Wonders
http://blackrabbitcoder.net/archive/2011/09/26/c.net-little-wonders-the-complete-collection.aspx

I hope you enjoy it as I do!

Movies: Physical Or Digital Media (Legally?)

The Problem: Physical Versus Digital Media

Let me begin by saying I’m a programmer and we are, by definition, lazy. I despise physical media for its inefficiency and general in-the-way-ness. DVDs, CDs, cassette tapes, VHS, etc. The only real exception here is books. Something about holding a dead tree… but I digress.

digital media

I’ve gone out of my way to digitize everything possible for many, many years and it hasn’t always been easy. Recently, laws have been passed that say you can’t even make a copy of your own physical media for backup or viewing on your computer or media device. I’m certainly as willing to pay for digital content as the next guy. You just have to make the value proposition worthwhile. That’s all I ask.

Why Is Getting A Copy Of Digital Media So Hard?

The first time I tried to redeem a copy of a Blu-ray in digital media format via UltraViolet (http://www.uvvu.com/) was a couple years ago. It was some movie we had bought and I’m not sure I even remember why… probably just because we wanted so badly to support the people who made it. I get that way sometimes. Great work should be encouraged with cold hard cash.

Frankly, the UltraViolet process was TERRIBAD. Account creation was a joke and once I finally made it through that travesty, I couldn’t get the movie to register in the system. I tried again at some point not too far in the future (due to an unrealistic sense of optimism) and was again devastated by the total lack of anything resembling working software from UV. I downloaded a copy of the movie through alternative means at this point and forgot about the whole thing.

A New Experiment

Fast forward to last week… I am in the unique position of having my electronics infrastructure spread around the United States and I find myself buying DVDs/Blu-Rays more frequently than I normally would given the lack of available alternatives. Couple that with the fact that the missus had a flight to California scheduled and wanted to watch the copy of The Hobbit we just purchased on her Kindle Fire. Staring down the possibility of shelling out cash for a digital copy direct from Amazon, and paying AGAIN, I found myself gazing upon the UltraViolet sticker on the dragon-hoard pilferer’s Blu-ray and thinking to myself:

There is no possible way this will work, but I have to try.

The digital rights for the movies are kept by UltraViolet but it turns out that I can actually redeem them through Vudu (http://www.vudu.com). Vudu also works on iOS, Android, PC, and a ton of other devices as well. I’m vaguely familiar with Vudu because there is an app for it on my PS3 so I figure, “cool, I’ll be able to watch it there as well if by some freak chance it actually happens to work”.

I begin the registration process on Vudu and… it. is. surprisingly. simple. It asks me to link my UltraViolet account OR it will go ahead and create one for me if I don’t have one. I choose life:

It lets Vudu do the work so it doesn’t get the hose again.

This seems to be going okay but I’ve yet to enter the code for the movie. I search for the movie regarding the adventures of the esteemed Mr. Bilbo Baggins, click the button to redeem my UV copy, and presto-chango! I now have a digital copy of the movie that I can either download or stream through Vudu… apparently at will! I click play and the movie queues up as fast as anything on Netflix. No complaints there.

Next I navigate to “My Collection” on Vudu and find that they have gifted me with 10 other random movies that are now synced to my  UltraViolet account as well. Some of them are even good!

Now, some of you may see the problem that I ran into next… there doesn’t appear to be a Vudu app on the Kindle Fire.

Facepalm.

Some quick Googling reveals that I could sideload the Vudu app from Google Play but that doesn’t seem to be confirmation that this will actually work. The alternative is to create a Flixster (http://www.flixster.com/) account, attach the UltraViolet account to it, and watch the movie through that app which IS available on the Kindle. My sense of foreboding returns as I can only imagine that using the UV account with more than one movie vendor is going to cause a giant charlie foxtrot… if you take my meaning.

Strangely the process is pretty smooth. To my delight, the Flixster account now has access to not only the short, round, furry-footed fellow from The Shire, but also all of the free movies I received from the Vudu signup process. IT’S LIKE MAGIC THAT ACTUALLY WORKS WHERE IS THAT WIZARD HIDING AND WHAT IS HE UP TO?!

digital media

Now my wife has plenty of entertainment for her trip and I’m kinda stoked about this whole thing. I grab the few other movies I have laying around my temporary residence and find that they are added to both Vudu and Flixster with ease as well.

This is giving me warm feelings because I’m generally happy to pay for media that I love as long as it isn’t more trouble than the alternative. I’ve long since traded in my mp3 collection for a Spotify Premium membership and generally watch anything and everything available on Netflix before looking for another source. It seems I may actually have a viable way to own the movies I really enjoy without the hassle of living on the edge of the law. If only the Television industry would make shows instantly available and do something about the prices of their series I could get behind that as well.

One final thing: Vudu and Flixster are both offering another tempting option. You can purchase digital media copies of every physical movie you own for 2-5 dollars each. This is making me pretty glad I still have that considerable DVD collection!