05/23/2009

"Good Enough" solutions

QuickImage Category   
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

As many of you know, I live on a peninsula on a lake near Atlanta called Lake Lanier. It is a beautiful place, and I really do love living and raising my family here.

One day I was driving over Buford Dam, which is the earthen dam that was constructed to create Lake Lanier. It generates power for the city of Atlanta, controls the flow of the Chatahoochee River through Georgia and into Alabama and Florida, and overall is very beautiful. Anyway, while driving over the dam I was struck with how steep the river-side of the dam (i.e. the side that isn't submurged). The dam itself is 192 feet tall, and the steep incline of the river side of the dam is breathtaking when looking down to the river below. The river side of the dam is sloped at a pretty steep angle - I would say at least 60degrees, and maybe even a bit more than that. The river side of the dam is covered in fescue grass - so the obvious question (ok, obvious to a geek) is, "How do they cut the grass on the river side of Buford Dam?"

The Wrong Answer
Unfortunately many engineers/architects/problem-solvers would approach solving this problem by wholeheartedly beginning to design some complicated lawn-mowing monstrosity. It would probably be very expensive, hard to operate, not very safe, prone to failure, and require specialized training to operate and maintain. Ugh.

Let me ask you: Does that sound like a good solution?

While this is an unusual example, the pattern is repeated quite often, every day, by many (most?) Problem Solvers in software design and development shops. Problem Solvers are quick to eagerly design some engineering monstrosity that (attempts to) solve the problem - and quite often has a few extra "bells and whistles" added in anticipation of problems you "may" (however unlikely) have.

Sound familiar?

Luckily the person who solved this particular problem was willing to look at all facets of the problem, and consider a wide variety of possible solutions - and a great solution was found. Let's get back to my little story....

The Elegant, Simple Solution
As I drove over Buford Dam I was struck with the question of how in the hell did they mow that grass? And then the solution became apparent.

OK, maybe "apparent" isn't quite the right word. The solution walked out from behind some trees on the side of the dam. Actually a small herd of solutions, to be exact.

Mountain Goats. The solution to the grass-cutting problem on Buford Dam is a herd of Mountain Goats.

Think about it. This solution is really quite elegant in it's appropriateness and simplicity:

  • It is a solution that is particularly designed to solve the problem at hand.
  • If uses resources appropriately - It cuts the grass at the appropriate height, so it continues to grow and doesn't die.
  • It doesn't require special training or handling.
  • It is very low maintenance.
  • It is completely safe and is, in fact, environmentally friendly.

Lessons from this story apply in our world as well. I think that many of us in IT make the mistake of always looking to design something "new", "high tech", or "groundbreaking" - when quite frequently the best answer is simple, elegant... and often right in front of us. Our customers come to us for the right, best answer, and we are responsible for finding it. In order to do this we need to take the time to get outside of our techie think mode on occasion, take a step back, and look at the problem from different angles so we can look for the best solution - a solution that is "just right", or good enough.

Time for me to wander off on a diversion, at least for a little bit.

Time for a Diversion
As I have been thinking about simple solutions, "Good Enough" solution architecture (more on that in a bit), and so on I have began to formulate this concept that there is a range, or spectrum, of software applicability to the given problem. Take a look at the image below, and let me explain a bit further.

On the far left of the X-axis is our problem with "No Solution". Since this is "No Solution", you'll see that, along the Y-Axis, this takes 100% of our work effort - which makes sense. Then, as we love along the X-axis, you can see that there are various solutions, and their relative levels of effectiveness. A "Pretty Good" solution drops the work required down to 45% or so; and then there is the perfect "Just Right" solution that achieves the lest amount of work possible (in this example), 25% (assuming you can't get a solution that requires 0% work).

And then we begin to slide to the other side of "Just Right", where the solutions become more and more over-engineered. A "Little Overboard" isn't too bad - it still saves a bunch of work as it requires only 60% of the original work used with "No Solution". But as the possible solutions become more and more over-engineered, eventually the worst-possible-scenario solution is reached - the "God Help Me" solution - which not only requires as much work as "No Solution", but it actually requires MORE work than originally required (in this case 130%)!!

The causes of this excessive work are varied, but usually revolve around a solution with too many configuration settings, too many moving parts, too much babysitting required, too much maintenance required, too vast a dataset size created, and so on. You get the idea.

The "God Help Me" solution types are all too prevalent in IT today, and even within the IBM/Lotus market. I hate to say this, but many facets of IBM are often the creators of incredible "God Help Me" solutions - some earlier incarnations of Websphere come to mind, as well as some of the solutions in the now-defunt (thank god) "Workplace" strategy. SAP is a very visible example as well, as anyone who has worked with SAP can attest.

So our goal, as IT professionals, is to attempt to create solutions as close to "Just Right" as possible - or at least between "Pretty Good" and "Little Overboard". If we're able to land in that zone with our solutions, then we will be serving our customers honorably, and not causing them more problems than we solve.

OK, enough with the diversion; let's get back to the main story, but keep this diversion in mind, because it does apply to the big picture.

Good Enough Solution Architecture
The concept of Good Enough solution architecture is fairly simple. Basically, Good Enough solution architecture states that the best solution is one that simply addresses the specified problem at hand, and nothing more. If more features are needed or additional issues arise and need to be addressed, then these items will be made apparent by your user base during the usage of the solution. During the initial design and development of the solution, the solution architecture should never be enhanced unless the enhancement directly services the stated goal of the solution. But, then, what is this "stated goal"?

Before you begin defining the design of your solution you need to derive a simple, common-language statement of the problem at hand. This definition should be no more than a couple of sentences - a paragraph or two at most - and should clearly express the problem. After the problem is simply stated, then create a "Goal" for the project, one that is based on the problem statement. The Goal should also state, in common language, what the project should accomplish. The Goal should be measurable, because this Goal is what will be used to decide if the project is successful.

Incidentally, when I say that the Problem and Goal statements should be in "common language", this means that these statements should be communicated more in the way actual normal people talk, and less the way we geeks talk (i.e. no "geek speak"!). These statements should definitely be technology agnostic as well - meaning that they shouldn't mention any technologies, platforms, etc. AT ALL, because this isn't how normal people talk. Keep in mind that you can define all the techie stuff later, when you're actually designing the solution.

There's one more thing I want to add to this "common language" talk. Please don't try to blind your clients with your brilliance (or baffle them with your bullshit!). They hired you (or, in the case of corporate developers, they've picked you for this project), so they already think highly of you. Blowing them away with language and jargon that they don't understand will simply make them feel uncomfortable at best, and piss them off at worst. It is better to let your work speak to your brilliance, especially in the elegant simplicity of your solution.

Lawn-mowing goats come to mind...

Conclusion, for Now
Later on I'll write another article that describes some ideas around how you get from Problem and Goal to Simple Solution; but for now I would like for you to think about the concepts I've introduced in this article, and let me know what you think, concepts and techniques you use that are similar (or different!) than these, and so on. We'll have a good discussion, and later on I'll publish the followup article to this one.

In the meantime, keep it simple, and keep it elegant.

UPDATE: I made some small grammatical corrections throughout the article, and then decided to add one more paragraph towards the end, in this color. **Rock
Rock

05/20/2009

The best road taken is the one you make...

QuickImage Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

It's funny how we continue to evolve and grow as people and individuals; and sometimes that growth brings us back to paths we may have walked before. Well, I am embarking on a path of my own that looks hauntingly familiar - I am leaving Teamstudio to start my own company again.

I suppose this move was inevitable; once you've been bitten by the entrepreneurial bug, it is really hard to shake off. I closed Sapphire Oak Technologies a few years ago in order to travel down new paths and learn new things as a part of IBM/Lotus. And while I may have came back to "Lotus", it definitely wasn't the same company I left in 1995, so I did view it as a new endeavor. I wanted to learn about new technologies, expand my network of friends and associates, and just experience what it was like working for "Big Blue" (and the new Lotus - "Yellow is the New Black" ). It was exciting, and I did learn a great deal. I also got to work closely with one of my closest friends, Bob Balaban, and we did some groundbreaking work while there. But that journey ran its course, and I realized that I needed to be out of a big company and back in the entrepreneurial world.

I decided to join a great company in Teamstudio, and my time there has been exciting and rewarding. Teamstudio has gone through some growing pains over the last year, and so have I. And while I still love the people and offerings at Teamstudio, the more I work there the more I realize that this type of entrepreneurial organization is just not enough for me. I realized that I have been my happiest when I had my own company, and that I need to "run my own show" to be truly happy again.

So, I have spoken to Nigel (Cheshire, CEO of Teamstudio) at great length, and as a result I have decided to step back out on my own, with his support. Nigel and I also agree that my stepping away from Teamstudio definitely helps their bottom line and profitability in these tough economic times.

Teamstudio is helping me transition back into my own company - or else I wouldn't be able to do so on my own. I will continue to work with Teamstudio as a partner on some engagements, as a speaker on their webinars on occasion, and as a "corporate friend" in general.

My new company is called Onyx Creek Technologies (site isn't ready yet - but stay tuned). I could have re-opened Sapphire Oak Technologies, but I decided I wanted to start totally clean and new, and there are some things that I want to do differently from my Sapphire Oak days. While I am getting the rest of Onyx Creek Technologies opened (the aforementioned new web site, etc.), I wanted to put the word out that:

I AM OPEN FOR BUSINESS!

If you need an expert on collaborative technologies, application integration, training or mentoring, or a host of other offerings please give me a call or drop me a line and let's talk. You can contact me in the following ways:

rock@onyxcreek.com
678.562.9225 - work

I would be happy to discuss your needs and help you in any way possible. I can assure you my rates are reasonable and my services are thorough and well-documented. I'm not happy until you're happy.

I am very excited about this new chapter in my life, and I can't wait to get started - and I look forward to working with you!


Rock

05/13/2009

Quick Announcement - new webcast TODAY!

Category    
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

I know it is late notice, but after the death in our family (more on that later, in a personal blog entry) my schedule was thrown off and announcing this earlier fell through the cracks. Anyway, I wanted to let you know that John Coolidge and I are giving a free webcast today entitled, "Stretching your Domino Dollars - Getting the most out of your Notes/Domino Platform Investment".
In today's tough economic times we are all being challenged to economize and get the most for our money. Maybe there's been a hiring freeze--or worse, layoffs; or maybe you've been told that (ALL of) your budgets are frozen for the forseeable future. These troubling circumstances bring us all to one simple question--what can you do to get the most out of your Notes/Domino investment?

This webinar will be a discussion of tactics that Notes developers, admins and IT managers can employ to help "stretch their Domino dollar". Topics will include:
  • Server consolidation
  • Server upgrades
  • Reducing your Application Footprint
  • Using DaOS
  • Using AdminP
  • Automating the Build Process
  • Open Source and other low- and no-cost resources

By the end of this webinar, you should walk away with a better understanding of why these tactics are so helpful, ultimately placing you in a position where you can get started implementing them in your own environment.

This presentatinon will be in a bit of a different format, where the talented and lovely Lindsay Howie of Teamstudio will be interviewing John C. and I about how to get the most out of Domino. It should be fun, and if you have some time available today at around 1:30, give it a look. You can go straight to the registration page here.

Rock

05/08/2009

A Loss in the Family - UPDATED

QuickImage Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

My father-in-law, Guy Robert Threlkeld ("Bob"), lost a battle with a progressive illness late Thursday night and passed away. My wife Debbie has been making frequent trips to Savannah lately to spend time with him, and it helped his spirits immensely. Bob was a great man - a good father, saavy businessman, and great father-in-law. I loved him very much. Debbie was very close with her father, and loved spending time with him or even just talking on the phone. He and his wife Rochelle were very supportive of Debbie and I getting married, even when no one else in the family was.

I could go on and on about the many things I loved about Bob - and I especially loved the close and tender relationship that he and Debbie shared. In fact, I looked to Bob as a role model of how to be a good father, since my own left a great deal to be desired. Debbie is the youngest of three, and she has always been "Daddy's Little Girl". So, even though my wife knew that this day was inevitable, and even though she tried mightily to prepare herself for this loss, it still has hit her hard. Very hard.

So, I will probably not be able to post anything here or on the Voices blog until mid-to-late next week.

When I know the funeral arrangements, I'll post them.

Please keep Debbie and my family in your thoughts (or prayers for those of you who are so inclined).

Debbie is an amazingly tough woman, and I know she'll get through this. Her toughness is a trait she acquired from an exceptional man - her father.

Rock

UPDATE: In lieu of flowers please make a donation in his honor to one of the following:

If you want to make a donation and send flowers, the funeral home's address is:

Fairhaven Funeral Home
2794 West US Highway 80
Garden City, GA 31408

Thanks again to everyone for your kind support. It means a lot to my family.

05/04/2009

Need some tech help with my Notes client...

QuickImage Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

I am having a bit of a problem with my Lotus Notes 8.x client installation, and I could really use your help. Whenever I save and close, or sometimes even just close, a document my Notes client will hang. This originally started with just calendar entries, would happen only when the document was created/edited and saved/sent, and would be very intermittent. It then progressed to happening with any mail document, and it wouldn't matter if the document was sent or not. Well, now it has escalated to ANY database, it happens numerous times/day, and requires me to use NotesMedic to kill off Notes and restart it.

Here are the things I have tried, thus far:
  • Uninstalled and reinstalled Notes client. I have tried various client versions, from 8.0.1 through the latest build of 8.5.1. I have also tried this numerous times.
  • During the last uninstall/reinstall I tried to clean out the registry as well - I meticulously went through the entire registry and deleted all references to the Notes client. I also checked for any exta files that needed deleting.
  • Tried updating the design of the mail database and bookmarks database

It is becoming harder and harder to work during the day because of this problem. Do any of you have a suggestion to try something of which I may not have thought?

Rock

05/01/2009

Happy May Day everyone!

QuickImage Category  
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

Happy May Day everyone! Today is May Day - and while it may be largely associated with Marxist communism, there is a rich history behind it - from ancient pagan rituals through the labor movement borne in recent history through today. Bob knows quite a bit about this (he's a history buff), so maybe I can prod him into writing a little bit more about it. In any case this is as good a day as any to celebrate Spring as it arrives, and the fantastic job our work force - which includes us hard-working geeks - do every day to keep this global economy moving forward.

This is also as good a day as any to come back to the blogging fold. I've been gone for awhile, but haven't forgotten you. I have just had a major case of burnout when it comes to blogging, and I have hit a "dry spell" on technical topics to blog about. I really didn't want to post only entertainment, family, my personal pain and disability issues, and political topics, so I chose not to blog at all. I'm not sure that was the right decision in hindsight, but it doesn't matter now. I have decided to start blogging again, and I'll just blog about whatever comes to mind, regardless of whether it is technical or not. This means that LotusGeek may not be the great technical resource of days past, but it will be an honest account of what's going on with me, both personally and professionally.

I have some ideas to blog about in the upcoming weeks - mostly around my family, some thoughts on the political landscape, and around my struggles with pain management - and yes, even some technical posts as well.

Finally, I'd like to ask you, gentle reader, to add the Teamstudio Voices blog to your feed reader. I've launched this blog, and it is my "work baby"; I think you'll find that the posts coming up in the near future are actually pretty interesting (and no, the Voices blog is NOT a marketing vehicle - it is just a way to give a voice to the great folks that make up Teamstudio, because they have some very interesting things to say).

Anyway, happy May Day. Be proud of your contributions to the work force, be thankful for the tenacity of our forbears in securing us a fair and fruitful work environment, and hug those who are special to you as they are your foundation.

Cheers!

Rock

Meet Rocky

Rock - February 2010
Rocky Oliver
If you see me at a conference, please stop me and say hi!

Calendar

Search

Categories

Proudly Employed By

Wofkflow Studios

LOTUS GEEK gear

Social Networking


Add to Technorati Favorites

View Rocky Oliver's profile on LinkedIn

Rocky  Oliver

LotusGeek Blog Roll

Why display a blog roll when Planet Lotus does it so much better?

Dilbert

Buy my book!

Blog Buttons

Atheist - Unitarian - Humanist

Poker Players Alliance