Thursday, October 21, 2010

Critical Thinking

So - its election season, there are a great many commercials on about all of the people that are running for election this year.  I would say my perception of these commercials is that every single one of them is vitriolic and finger pointing - calling the other candidate(s) to the mat, blaming them for everything from babies dieing to global warming.  These commercials count on being able to make the viewing public THINK the way that the makers of the commercials would like.

Why do I mention this at all, you may be asking.  Well I ran into a blog post based on a tweet from a friend of mine.  The post is talking about people being misinformed or under informed and being happy to essentially remain that way.  The post points out that a seeming larger and larger population of people break their world down into sound bites and small 'parroting' points that allows them to glom onto someone elses opinion on a particular topic.  This process of not thinking critically about the information that is being presented provides a reinforcing factor for individuals being uninformed on topics ranging from politics to home cooking to sex. 

Listen folks - it is easier than it seems to get information on all sorts of interesting topics, including topics pertaining to elections in the US.  The internet has made the information infinitely more available than it was previously - leaving little excuse if you don't spend time reading or at least looking for information to corroborate the things that are 'dished'/'spoon feed' to you on tv and popular media.  The same statement holds true for information and communication in your day to day jobs.  Please - think critically about what you are told, look for additional information from other sources - spend time attempting to put yourself in other peoples shoes and asking in your head "WHY" someone might have said something the way in which they did, specifically to you.  You will be better off for spending the additional time in comparison to just thinking like 'They' want you to think. 

Friday, October 1, 2010

Consumable Software

I will warn all of the readers of my blog in advance, THIS WILL BE A RANT - I am stepping up onto my soapbox currently.

I recently had reason to attempt to install and use ReviewBoard - a software review management system.  ReviewBoard is written in Python, on the Django CMS framework.  In and of itself, ReviewBoard caused me no specific pain - now installing it into my environment is a completely different story.  I will freely admit, additionally, that the company that I work for currently has chosen Solaris as the platform of choice for their systems which added to the complication and heartache I had attempting to install ReviewBoard, in fact making the install nearly impossible. 

ReviewBoard was easy to download - Check in their Favor
ReviewBoard works on several different versions of Python - Check in their favor
ReviewBoard has a bunch of Python package dependencies - and here is where the issues begin.

Python has precious few pre-built things for Solaris (SPARC or x86).  This means that ReviewBoard needs to compile a bunch of libraries in order to function correctly.  Those libraries were not available in the ReviewBoard download - the were not bre-bundled in the ReviewBoard tar, they had to be downloaded.  NOW - ReviewBoard does have the knowledge to go and attempt to grab those dependency downloads for you so you don't have to go track them down yourself.  Yea!  I am however much more of the option that the software should have the 'Version' of the things it needs to run included with it - the software should not be 'required' to download it in order to work.  This requirement is about its specific software dependencies and not tools like MySQL that software might depend on.  Those are requirements to setup the system, no specific dependencies in my definition.

OK - Now I have a bunch of stuff to compile, that failed.  Solve the libs issues, build, fail, rinse and repeat for HOURS.  Eventually get the whole thing to compile correctly.  ReviewBoard is now installed - but you still have to setup a 'web' site that contains ReviewBoard.  The task also had dependencies that had to be worked out - and did not work out of the box.  Even if it was Solaris - the whole thing should have been easier.

OK - Now there is a ReviewBoard site that is setup, you can hit it with a browser, but it still needs to be configured with interesting things like where is your current source code repository.  Login to the ReviewBoard site you set up, attempt to configure the site and "LD LINKER ERROR" missing a specific library in the OS.  Which library is missing?  What additional thing needs to be installed?  Was it a compile error even though it didn't report any problems?

In the end - I never really got it working.  This was probably due to Solaris more than ReviewBoard specifically, but there were a-lot of problems.  I feel strongly that ReviewBoard as a site should have worked OUT OF THE BOX, and not required as much work on my part.  I imagine also that there were design decisions that would have effected my specific experience that were made in the past about how ReviewBoard would be put together - like the choice to use pysvn API integration rather than using the command line client and parsing output.

When you want to build something for someone else - the easier you can make the setup/install for them, the more they will see the care you took and the more likely they are to persevere when it comes to using the tool.  However when the experience is like what I experienced - I am left feeling like I never want to look at ReviewBoard again.  Chose the simplest thing that removes dependencies from your tool to make the install even easier.  First impressions are EVERYTHING, if peoples first experience is a shitty one, even if it is not specifically the fault of the software attempting to be installed - that bad view will be pervasive and stick with you.