Tuesday, May 06, 2008

Hasta la Vista, Windows

Dear Windows,

You are a long time pal of mine, we've been friends since you were just 3.1. I've grown up with you on my computer and we have many fond memories together (except during your ME years), but I have to tell you something old pal. I've found someone else. I know, I know, this may come as a shock to you, but ever since you grew out of XP and into your new Vista body things just haven't been the same. Its not you, its me... ok its you too, but you just don't have the tools and stability that I need. Plus I'm tired of telling you that I'm your Genuine® friend all the time. Why are you so insecure about that?

Now I know who you think I've found, but you're wrong. They may have better looks then you (sorry) and seem to be cooler than you (again, sorry) but they are even more controlling than you are. I just can't be with an operating system that is so willing to lock me down in both hardware and software. Instead, I've found someone else, and they aren't afraid of a little choice. And not just between Home Basic, Home Premium, Business, or Ultimate (what do they all mean anyway?).

I'm sorry Windows, but I will not be installing another version at home again and I will avoid you as much as I can at work as well. Of course, we'll see each other from time to time since I have to make sure my code works with you, but thats all it will be. Linux is my new best friend and we are happy to have superior tools and the freedom to use and modify them how we choose. Its been fun Windows, but your day has passed.

Monday, May 05, 2008

Peer Review Your Tests

Software review has been around since the 70's, but one place I see it skipped over often is in the test world. Why would anyone want to peer review your test cases? The answer to that is, why wouldn't you?

It seems to me that many testers don't have their code reviewed because it often does not intermix with anyone else's code. This is one problem that leads you to owning "your" parts of the code and ignoring "someone else's" code. This creates a sort of hands off environment where people begin to guard their code and resent when someone else is prodding at its inner workings. This is where a culture of voluntary peer reviews can help bring the test teams together into a more cohesive, and open unit.

I say voluntary because formal reviews do not sit well with developers (or anyone else involved for that matter), because of the stiff formality and time spent reviewing. The best way to get a team of developers reviewing each other's code is to introduce it and start using it yourself first. Once the benefits become clear, the stragglers will be interested. Also, by keeping the code reviews informal and voluntary, the reviewee's attitude is much different than if they were being forced to do a review.

So what benefits does a test team gain from using a peer review system? Just the same as they have been argued for developers. A good peer review setup will help keep your test cases consistent and readable among the differing 'silos' of tests in your suite. Also, by showing your code to your other teammates they can save you time debugging if they spot a problem with your testcase. This, to me, is one of the most valuable assets to a code review system. If someone can point out a problem before I waste time on it, I'm eternally grateful. The second most useful aspect of code reviews have absolutely nothing to do with finding bugs. The side effect of doing a peer review comes in the form of skill transfer. If I'm working on some web service tests and I'm reviewing tests for web services security, I'm going to pick up how their tests work as well as how the web services security works. This can also help foster another important and very useful activity within the team, mentoring.

While there are many more reasons why you should implement an informal peer review system, I'm going to leave what I have at this and open up to discussion on peer reviews. How have they worked for you and how did you implement a code review system? Let me know in the comments.

Sunday, May 04, 2008

Follow Your Users

Thanks to a tweet on Twitter I came across an interesting article on why companies should pay more attention to their customers complaints. But it doesn't stop just at companies keeping track of their brand reputation among their customers, this can (and should) be done much more often than it is today. Here are a couple people and groups that I think should be interested in what complaints they are receiving.

Open Source Projects:
If you run an open source project, you should be keeping track of what people are complaining about. Many open source projects get lulled into believing that if their users have a problem they will fix it and submit a patch for it. While this definitely happens, there are many more users out there that either just don't have the time or skills to fix it, or they may not even know that they can fix it themselves. This also leads me to another issue many open source projects have, it seems that many projects think that if someone has a complaint but is unable to fix it, they will go to the forums and start a discussion about this. Again, many people will simply post their complaint to their blog or Twitter and leave it at that. This isn't a bad thing, it just means that we need to go out there and actively be looking for what people are complaining about.

Product Managers:
Every product manager (software and non-software) should be keeping track of what people are saying about your product. While most products spend a load of money on doing customer research and analysis, it really doesn't cover you. While many people may fill out a survey about your product, they don't get to express their true feelings about it unless they get to say it in their own words. Product research will only get you so far, let your customers tell you what they think of it for free!

Specification Leads:
You definitely need to be listening to what users are saying about your previous specification revision or similar specification if its a new spec. It seems to me that most specifications written seem very out of touch with how people are working with the last revision. It took the EJB specification 3 revisions to begin to even remotely come close to what users wanted. If the spec leads had been listening to what users were saying about the EJB specification we could have avoided much of the hassle that was EJB2.

While there are more places listening to customer/user feedback is important, I'm going to leave it at these three. What's most important to remember is that you should be listening to what people are saying about your product, project, or whatever else it is. You need to listen to what they are saying and actually do something about it. You also should not be afraid to talk with your users and let them know that you do care and that you do know they exist. What other places could you find this helpful in? Leave some comments and let me know what you think.

Tuesday, April 29, 2008

Tee'd off

Recently I was trying to figure out how to output text from a command to both a text file and the console. My twitter friends weren't sure how to do this but fortunately a friend of mine reminded me of a handy little tool named tee.

from the tee man file:
tee - read from standard input and write to standard output and files

A simple example of using tee:
`cat somefile.txt | tee output.txt`

So next time you need to write to both the console and a text file don't get so Tee'd off! (cheesy I know)

Wednesday, April 23, 2008

Discipline

I don't know what super fuel Nine Inch Nails has been running on lately, but it sure seems like they have found a new creative well to tap. They keep coming out with more of everything in less time. Definitely not the typical four-to-five-years-between-albums Nine Inch Nails we have been used to. I just Downloaded their new song Discipline and its amazing! It gets me wondering what they are up to now that Robin Finck has joined the Nine Inch Nails fold yet again.

Oh yeah, and they are going on tour.... soon.

If you haven't clicked the link earlier, go download Discipline now. If you are musically inclined, you should go to remix.nin.com and get the multitracks of Discipline in the Mix section.

Monday, April 21, 2008

Git on Cygwin

Lately I've been trying out Git and I have been very impressed so far. I enjoy how Git doesn't impose any set method on how to do things, instead it lets me write code how I want to and forget about my version control. I did run into one annoying problem with Git on Cygwin though. Apparently, the default install for Git enables _all_ the pre-commit hooks for Git. The Linux version, on the other hand, *disables* all the pre-commit hooks. This kept me running into an annoying problem where Git wouldn't let me commit files because of bad whitespace in a couple files.

Fortunately I found a solution to the problem here. Its a simple 'chmod a-x .git/hooks/pre-commit'.

Now that I have that out of the way, I'm going to try Git some more and compare it to my experiences with Mercurial (which I think is another great version control system).

Saturday, March 15, 2008

Ghosts Film Festival

Trent Reznor and Nine Inch Nails keep the punches rolling with his newest album Ghosts I-IV. From my last post about Ghosts, I talked about how Trent Reznor has an amazing grasp of how to use the internet as an artist in our age of "piracy." After previously feeling "disheartened" about his experience releasing Saul Williams amazing album The Inevitable Rise and Liberation of NiggyTardust, Trent has a renewed faith in us:
First of all, a sincere THANK YOU for the response to Ghosts. We are all amazed at the reaction for what we assumed would be a quiet curiosity in the NIN catalog. My faith in all of you has been restored - let's all go have coffee somewhere (my treat)!

He has taken the remix culture and Creative Commons idea one step further and is actively encouraging participation in Nine Inch Nails art.
it's meant to be an experiment in collaboration and a chance for us to interact beyond the typical one-way artist-to-fan relationship.

I'm very happy to see that he has learned from his experiences with Saul Williams and is experimenting with how an artist can make a living in this growing world of music post-RIAA. His call to the community to participate and become involved in the creative process puts Nine Inch Nails in a much more intimate and rewarding environment. Nine Inch Nails is taking fans who were once content on passively watching and putting them into a whole new world of participation with Nine Inch Nails.

Not only is it taking fans from being observers to participants, it is also changing peoples views on music and its worth as art. The current music industry has taken the art of making music and turned it into a cold, mechanical world of commodity. By asking for fan participation it reinforces the value of music as a piece of artwork. When people have personally invested time and creative effort into a piece, it is much more important and valuable to them.

Fans want art, not crap. We want to see real artwork both musically and visually. We also want to see the art treated with respect as Nine Inch Nails has done with the multiple formats Ghosts is available in. When the art is respected, we are more than happy to pay $300 for an amazing boxed set of artwork. Thank you Trent and Nine Inch Nails for opening up this new and exciting world of creativity.

Wednesday, March 12, 2008

Google Profiles

While messing with Google Reader today I decided to update my Google profile information and got to thinking. When is Google going to show us the different ways they are going to integrate the Google profile? Right now, your profile information is being used in Google Reader, Google Shared Stuff, and Google Maps. So when are they going to integrate with Blogger and the rest of their applications? I'm interested to see how Google plans on consolidating their applications in a more social way like they are doing in Google Maps.

Currently, there is a very minimal amount of profile information that is actually being shared between Google Reader, Google Shared Stuff, and Google maps. Here is what I get to consolidate between those three apps:
















Step it up Google! I want to see what you are planning on doing with the social integration sooner than later! Give me a dedicated profile page that can link all my apps and make it easier to navigate to. No more ?id=12312312 junk in the url. Make it easy like http://www.google.com/profiles/merrell.sam. Hopefully we will soon be seeing the fruits of Googles social labor.

Monday, March 03, 2008

Nine Inch Nails Carries the Radiohead Torch to New Heights

This Sunday, Trent Reznor and crew quietly released Nine Inch Nail's newest album (actually a 4 volume set, so far) Ghosts I - IV. Trent Reznor's growing grasp of the Internet and how to harness the large Nine Inch Nails community continues to astound me. Nine Inch Nails relevance in the music world continues to become more and more important as he is pioneering new ways for artists to distribute their music independently and use the internet to their advantage.

Not only has Trent Reznor released Ghosts as a free download, it is also licensed under the Creative Commons Attribution Non-Commercial Share Alike license! This is probably one of the best moves I have seen in the music industry. Trent Reznor has been cultivating a remix society around his work through his Remix portion of nin.com, and it was only a matter of time before he took the final leap and released his creative works into the wild for us to enjoy and be inspired by.

I salute you Trent Reznor, please keep up the amazing work you are doing and stay in inspiration for all musicians out there. Hopefully more will follow in your footsteps.

Sunday, March 02, 2008

Twitter

Yes, I know. I'm not one of the early adopters or "alpha geeks" that adopted Twitter as soon as it came out, but I just recently signed up for Twitter mainly to maintain my online reputation as Lifehacker suggested and I actually find that Twitter could come in handy in many different ways.