Arcane Thoughts: Go Wildcats

By now many of you are aware of the devastating tornadoes to hit the state of Alabama, mostly in the Enterprise area. I reside in Alabama, currently near Birmingham but Enterprise is my home town. I graduated from Enterprise High, and my niece is currently a senior there, and was in the school today when the tornado hit. She got hit by some debris when the ceiling partially collapsed, but wasn’t injured thank goodness.

Somewhere between 8 and 15 others weren’t so lucky, and lost their lives (as I write this there are conflicting numbers and it’s unknown if they were students or not). What you can learn from this though, is to be prepared. Weather radios are not expensive, every home should have one (I do!). They will alert you to a variety of severe weather conditions, especially during the night when you might be asleep or not listening to the radio / TV.

Have a designated spot in the house to go when severe weather strikes. For us it’s a spot in our basement. We all know it, and are prepared for it. If you have kids, grab their bicycle helmets and put them on them. Our local meteorologist James Spann mentioned that a good number of the kids who are killed in storm events suffer head trauma, and the helmet could save their lives.

What can you do now? Well those folks in Enterprise are going to need a lot of help. If you can, donate blood, I understand there is a shortage now. Money is good too, and can help with the rebuilding.  This is going to be a tough time, but I know that as time goes buy they will rebuild and bounce back. Enterprise High, Home of the Wildcats.

Go Wildcats!

Arcane Review: Why Software Sucks

I promised myself I wasn’t going to have a blog filled with a lot of book reviews. But having just finished “Why Software Sucks” by David S. Platt (http://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756/sr=8-1/qid=1172286512/ref=pd_bbs_sr_1/105-8037691-1992410?ie=UTF8&s=books or http://shrinkster.com/mdg), I find I can’t resist mentioning it.

David S. Platt is a software developer, author, and teacher at Harvard University Extension. However this book is not targeted at the experienced software developer, but instead at the average computer user. He gives the reader a basic knowledge of how software works, so they will know what is possible and what is not. Armed with knowledge about the possibilities of software development, the average joe can then determine when software sucks as opposed to just bumping into current limitations.

One reviewer on Amazon said he “…didn’t find anything new in the book for seasoned UI developers.” That’s a shame, as it shows he clearly didn’t get the point of the book. This book is not targeted at developers. It’s for users, so they will know when you’ve written good software, and when you’re handing them crap.

While it’s true this book is not packed with development techniques, it’s still an important read for any programmer. As a developer with over twenty years experience, what Mr. Platt’s book gave me was insight. To be reminded that the code I write is to be used by people other than developers. He helped me to see my application through the eyes of an average user, or to quote Mr. Platt, “Your users are not you!”

This was not a thick or expensive book, and was filled with enough humor to keep it a quick yet enjoyable read. At the same time it was serious enough to deal with the subject of user interfaces in a meaningful way. After reading this book, I think the best compliment someone will be able to give me about my applications is “it just works!”

For more information see the authors site at http://whysoftwaresucks.com/.

Standard disclaimer, I make no money from book sales, nor have I any financial affiliation with Amazon, the author, David S. Platt, the publisher, the guys who grew the trees that got turned into paper the book was printed on, the truck drivers that delivered the books, the company that hosts the authors website, nor am I the father of Anna Nicole Smith’s baby. Just so that’s all clear.

 

[Why Software Sucks Book Cover]

Arcane Thoughts: Designing for Use

Last week I traveled on business, and the hotel I stayed in had some interesting features that got me to pondering the dilemma of design versus usability. In the bathroom the sink looked like a piece of furniture. Four wooden legs held up a black marble table, atop of which was a large white bowl which was in fact the sink.

Visually, this was quite pleasing, the colors worked well, the contours were pleasing to my eye. The issue came when I tried to actually use the area. There was virtually no counter top area to work with. I had a very tiny space to put my contact lens stuff and my shaving kit. Further, there was no place to sit the hand towel while I was scraping my whiskers or putting my eyeballs in. This was a classic case where the builder went with a design that was visually pleasing over one that was usable.

Another conflict I found was the frosted glass that divided the bathroom from the bedroom. Where the frosted glass pane was located, if someone got up during the night to, well you know, and turned on the light, the light would hit right in the face of the person remaining in the bed. (Since I was alone it was a non issue, but if I’d been with my wife it could have been a problem.) In this case it was something with a design that looked good having negative side effects when put into use.

Lest you think I’m all whiny, there were some good points to the place, such as the closet. When I opened the closet door, the light came on. Didn’t have to think about it, didn’t have to fumble for a switch, it just worked. Simple yet very effective and pleasing.

My point on this post is not to complain about hotel rooms but to get you to think about design versus usability when it comes to your applications. How many websites have you been to that were confusing or hard to use, but visually stunning.

A good example of a bad example is Brown University. (http://www.brown.edu/). If you try to put your mouse over a menu item in an area that is collapsed, that area pops up to show a pretty picture. You then have to slide your mouse up to be able to click on the item you were just hovering on a second ago, before the page helpfully slid the menu up to show you a pretty picture you probably don’t care about. Visually, the effect is cool and the page looks nice, but if you are trying to actually click on a menu option it sucks.

On the other hand, let me mention my favorite site, Google (http://www.google.com). Yes, I said Google. It’s simple, not too much being thrown at you, and it’s obvious what I’m supposed to do (type something in and click Search). Like the light in my hotel room’s closet, it just works.

Windows Presentation Foundation (WPF) included in the new .Net 3.0 Framework gives us some powerful new tools for designing beautiful applications. Like all new technologies, this can be a double edged sword. I hope this post gets you to spend some time thinking about the user experience. Be sure the pretty pictures and cool effects don’t actually get in the way of getting the job done. Spend some time actually using your app. Key in data, do searches, etc. In short, be sure your program isn’t so pretty it’s ugly.

Arcane Thoughts: The Passion of the Programmer

One of my favorite bloggers is Jeff Atwood, and his Coding Horrors blog (http://www.codinghorror.com/blog/). Why? He’s passionate not just for code, but for coding.

I see a lot of people who are good at writing code. They know the syntax, can knock out some code, and get the application completed. Then there are people like Atwood, Steve McConnell, Paul Sheriff or Carl Franklin. These guys are passionate about the process of writing code.

When I speak of process, I’m talking about more than just writing, but the design of the code, how much reuse can you achieve from your existing components, do you do test driven development, waterfall, how often do you have code reviews, and more. This is the stuff that doesn’t help you write code, it helps you write better code.

Yesterday I had a root canal. I spent more than three hours in the dentists chair. Since there wasn’t much opportunity for stimulating conversation, I brought along my PDA and listened to some old DotNetRocks (http://www.dotnetrocks.com) episodes. In one of the episodes (http://www.dotnetrocks.com/default.aspx?showNum=104) Carl and Richard were interviewing Paul Sheriff on architecture.

During this episode, somewhere between the root canal and fitting a new crown, I realized that the coders who are passionate tend to also be architects, whether they realize it or not. They care about things like code reuse, good design, and adhering to standards.

If you are interested in learning more about architecture, I would recommend taking a look at the Patterns and Practices libraries at Microsoft. (http://msdn.microsoft.com/practices/). This is a collection of tools, e-books, and articles designed to not only recommend ways to architect your code, but the tools to get it done. Be sure to check out the “Getting Started” link on the upper left, it’s a good place get started on the road to not getting the job done, but getting the job done right.

Programming Possum

I’d like you to meet my Programming Possum. His name is Floyd the Ferocious, and he is one of my biggest helpers in coding.

[Programming Possum]

Floyd was a Christmas gift from my wife, to commemorate the dead possum I found in my hot tub shortly before Thanksgiving. Seems that possum was assigned to write an application in VB4 that generated Java code to be an interop layer between a Perl app and Ruby on Rails program.

Poor guy grabbed his chest and just keeled over in my hot tub, turning himself into a hot possum stew. I found him about four days later, when I went to top off the tub. The smell was, well it was something Mike Row would have wrinkled his nose at. And the stew was now a nice murky black. Yum, soups on!. But I digress.

A few weeks ago I was catching up on my Dot Net Rocks episodes. In episode 205 (http://www.dotnetrocks.com/default.aspx?showNum=205#download) guests Venkat Subramaniam and Andrew Hunt were talking about Agile Programming, and one of them mentioned he keeps a rubber duck on his computer. He keeps his duck around for the same reason Floyd hangs out on top of my monitors, to squash bugs.

Have you ever gone to one of your coworkers and started to explain an issue, when all of a sudden you smacked yourself in the head and gone “OK I know how to fix it now thanks!” Your coworker wittily replies “Uh, OK”.

For me, my Programming Possum is the first person I talk to about my issues. He’s like a hairy therapist with a tail, very attentive listener and never interrupts. (I used to talk to pictures of my wife, but found I kept getting interrupted.) About forty percent of the time, I find that I can work through all the alternatives and come up with a resolution. And if I can’t, when I do have to visit my coworkers at least my thoughts are more organized and coherent.

It doesn’t have to be a possum, it could be a rubber duck or even a rubber chicken. Scott keeps a yellow chicken by his cube.

[White Chicken]

Ben, another coworker, has a yellow chicken which keeps an eye on his code. (Which frankly we all think is a bit weird. I mean, who ever heard of a yellow chicken? White, sure, even brown or black, but yellow? I guess that’s where brown eggs come from.)

Whatever you pick, we all recommend you get your own Programming Possum. Something to focus on so you can talk your issues through while you look for solutions. You’d be surprised at how often it’ll work for you.

And don’t worry about your coworkers thinking you are nuts. I’ve talked to them, and they already think that.

Floyd the Ferocious, Programming Possum

Arcane Thoughts: The Fourth Estate

Over the weekend I’ve been continuing to think about what I wrote Friday. In looking over other opinions on the web, I see a lot of folks who seem to want to blur the distinction between bloggers and journalists. This is dangerous. Let me say this once, and clearly so everyone can understand.

BLOGGERS ARE NOT JOURNALISTS.

Journalists are paid for their words. It’s their job. What they say reflects not only on them but upon the organization for which they work. When you go to the website of a major newspaper, often you don’t even know or care who it is that wrote the story you read. The paper as a whole carries a reputation, a credibility.

That’s why there are so many standards when it comes to journalistic ethics, and rightly so. An organization is responsible for all of the people who write for it, and one bad apple can spoil it for everyone. Remember Jayson Blair? He made up or outright stole stories that went to the New York Times. The entire paper’s credibility suffered. (see http://en.wikipedia.org/wiki/Jayson_Blair)

On the other hand, I as a blogger stand alone. My words are just that, mine. My blog is not affiliated with anyone else’s, and if I say something outrageous only I will suffer. Likewise, if I do something wrong such as libel someone, only I will be responsible for the consequences, not my coworkers and not my company.

Nor do I get paid for my words. Granted I hope to recoup my time investment some day, perhaps through notoriety, writing magazine or book articles, or public speaking engagements. But for now, my only reward is the satisfaction that comes from (hopefully) helping others with my blog entries. Thus, bloggers should be held to a totally different standard.

Of course we muddy the waters some with the corporate bloggers, those companies who have one or more individuals blogging, and that blog represents the company. Don’t get me wrong, I love the concept of a corporate blog. It’s a great way to communicate with your customer base. But just as no two companies are the same, it’s impossible to set one standard for all corporate bloggers. What would be appropriate for Billy Bob’s Beer and Bait might be totally inappropriate for Fred’s Fine Wines. Each company needs to decide for itself what standards it’s corporate bloggers need to uphold.

There’s also the rare coincidence where you have a journalist who blogs, someone like Mike Cassidy (http://www.mercextra.com/blogs/cassidy/). In those cases, unless it is clear the blog is a personal one, and not professional, as far as I’m concerned the blog entry is no different from an article that appears in the printed paper. The person is acting as a journalist, and thus should be held to the journalistic standard.

Finally, I have seen a few instances where a blogger claimed some sort of legal protection, claiming to be a journalist. Most notable is Josh Wolf, who took some video of an anarchist protest and now refuses to turn over his raw footage to a grand jury. He’s now in jail for contempt of court. Let me say up front I admire Josh Wolf, it takes a lot of guts to be willing to go to jail for something you believe in. That said though, I have to disagree with his conclusions.

I said it before, but let me reiterate in case you weren’t paying attention:

BLOGGERS ARE NOT JOURNALISTS.

When Mr. Wolf took the video, he was not representing any news organization, nor at the time did he sell it to a news outlet, he instead posted it on his personal blog. He was a private citizen, using his first amendment rights to express a viewpoint. He happened to choose a blog to do it on, but he could just have easily stood on the street corner and played it on his portable TV. From the standpoint of his personal, first amendment rights there is no difference.

My blog is merely a medium for expressing my thoughts and creations. You could read these words on printed paper, say a magazine, or on the bathroom wall. I could yell them at you from a soapbox, or you could read them right here on your computer screen. No matter what the medium, the result is the same. I’m a private citizen, expressing my views, not a journalist.

Those are my arcane thoughts, feel free to leave yours…

Arcane Thoughts: Do you trust me?

I’ve been watching an interesting debate between Scoble and Joel on the recent giveaway of Vista loaded laptops to bloggers. (No, I didn’t get one, dang it.) First, let me see if I can summarize their opinions, with apologies to both gentleman if I over simplify.

Scoble’s most recent posting on the subject can be found at http://scobleizer.com/2007/01/02/why-bash-microsoft-and-not-nokia/. His basic position is that it’s acceptable for bloggers to accept items from companies as long as there is full disclosure.

Joel in his posting at http://www.joelonsoftware.com/items/2006/12/28.html has the position that by accepting any item we destroy any credibility and lose trust with our readers.

As a relatively new blogger, I’ve spent a lot of time over the last few days thinking about both viewpoints. And while an admirer of his work I have come to a conclusion.

Joel is wrong.

Trust and credibility are something a blogger builds with his readership over time. Scoble is a perfect example of this. Microsoft paid his salary for many years, yet he still managed to gain an enormous amount of respect in the blogging community. Why?

Simply put, Scoble’s posts about the company he worked for rang true. Readers trusted him when he wrote something good about Microsoft, because he also wrote when Microsoft did bad things. Additionally, his experiences were reflected in the user community, who could hold his feet to the fire through comments. Finally, and most importantly, Scoble quickly and openly admits when he is wrong, publicly correcting his mistakes.

For a blogger who is willing to accept hardware / software, whether to review or not, his credibility will be born out over time. A blogger who only writes love letters about the things he accepts will soon be found out for the untrustworthy individual they are.

On the other hand, bloggers who are willing to be honest, provide full disclosure, and write negatively when justified, as well as positively (like Scoble did with Microsoft), those bloggers will gain that high level of trust and credibility regardless of whether they accepted freebies or not.

Those are my arcane thoughts, feel free to leave yours…

Arcane Thoughts: The Zone

Over the Thanksgiving holidays I did a lot of traveling. Before I left I downloaded a lot of videos and podcasts from the internet to keep me busy during those slow times when everyone else had keeled over from too much turkey. One video that caught my eye was on the Channel 9 website. Channel 9 ( http://channel9.msdn.com/ ) , by the way, is the Microsoft sponsored site where the Channel 9 team goes out and videos other folks in Microsoft, talking about new technologies or interesting activities they are doing. This is the same place famous (or infamous) Rory Blyth ( http://www.neopoleon.com/home/default.aspx ), former co-host of DotNetRocks went to.

This particular video, http://channel9.msdn.com/Showpost.aspx?postid=226791 talked about the CodePlex team. CodePlex, by the way is the Microsoft site ( http://www.codeplex.com/Default.aspx ) for open source development projects. I rather like the way it’s laid out, easy to find and organize a project, however that’s beside the point of this post.

During the video they revealed the entire CodePlex team works in a single office. Not an office with nice cubicles, not a section of a building, no all 8 of them are crammed into a single small office. Each has a small workstation or laptop on a small table or desk. Apparently this is some take off on Agile Development. Their claim was that if one guy runs into an issue, it’s very easy to say “Help!” and get immediate help on a coding issue and not delay his work. My thought was, hey that’s really great. For that one guy.

For the rest of the team, it seems to me it would be incredibly disruptive to the creative process. As developers, we often get into what Tony Robbins ( http://www.anthonyrobbins.com/ ) refers to as “The Zone”, that creatvie point where the juices are flowing and we lose all track of time. You’re solving problems, creating code, really making your application flow well. You know you’re there when you reach over for that cup of coffee to find it’s ice cold.

Then boom, someone interrupts you. Doesn’t really matter if they were asking, all that matters is you are rudely jarred out of “The Zone” and back to reality. After dealing with the interruption, it can be difficult to get back into “The Zone”, I’ve seen some studies that suggest it can be as long as half an hour before your mental processes have returned to full focus on the issue.

There are some aspects to Agile that appeal to me, for example the short release schedules. But cramming a bunch of coders into a single room? No thanks. I prefer to hang out in “The Zone”.

But hey, that’s just my opinion. I could be wrong.

Paid Blogging

Over on today’s blog post, Robert Scoble mentions some company that does pay per blogging. It’s an interesting concept. After all, folks like John C. Dvorak have been getting paid to talk about their opinions for years, they just do it in a magazine format or on TV. How would it be wrong for an average joe to get paid for his thoughts? Of course there ought to be a few basic rules.

First and foremost it should be disclosed there is payment going on, and who is coughing up the bucks. And second, it ought to be clear if that payment has an effect on the posting. That helps us to understand the difference between a true opinion piece like the afore mentioned Mr. Dvorak might write, and something that resembles a late night infomercial.

I can think of a lot of reasons why someone would not want to accept money for a blog, or certain situations why it might not be appropriate. On the other hand, I can think of some situations where it would be OK to get paid for their thoughts. After all, we we don’t own our thoughts, who does?

Oh, and just for the record, I ain’t making squat for this.

Greetings

Arthur C Clarke, in his “Profiles of the Future” book said “Any sufficiently advanced technology is indistinguishable from magic.” I’ve been working with computers since the late 70’s and sometimes I still feel like it’s magic. And as a programmer, there are those moments when I’m a sorcerer, getting the computer to perform it’s magic to my command.

In this blog I plan to focus on technology issues, focusing on development topics. I am a long time Visual Basic (and before that Basic) coder, but now make my living writing C# code for nuclear powerplants. I also manage a team of developers, keeping up with their work and providing a little guidance and training along the way. I’m also delving into the SQL Server 2005 and SharePoint worlds, as part of a large Business Intelligence project we’ve initiated.

I’ll wrap up this first post for now, but plan postings in the near future on the various tools and topics I use in my daily work. I also have a personal blog, check out n4ixt.blogspot.com.