My blog has moved to

I moved my blog. Visit for the new one!

Archive for April, 2009

My approach to product development

Posted by derekbobo on April 30, 2009

When I talk about product development I’m generally talking about some piece of technology I’m about to build. That being said I think the approach is useful in other realms as well.

The first thing you have to do is come up with an idea. I like to keep it simple and go with the old approach of, “find a need and fill it.” One way these thoughts typically come to me is when I think, “boy wouldn’t it be nice if…” So I try to jot down any idea that comes to mind and might have some potential. They won’t all be good ideas, others may not be practical, but don’t throw them out just yet. If you think it’s a good idea but aren’t sure how it will all come together, that’s okay too.

With several ideas in front of me I start to go down through them asking a series of questions. Is this something I want to do? Is this something that people would want to use? Is it something I can make money off of? Are the market conditions right? As you go through these questions you will start to see which ideas appear to make the most sense and you’ll ulimately arrive at the idea you’re going to persue.

At this point you may have some work to do. Since your thoughts are based largely off a hunch you want to validate that it’s correct. If this product is mainly intended for personal use at first then you can skip this step, otherwise you want to do some research. Ask some friends and family, maybe make some blog posts, check with businesses, etc and find out if it really is something that makes sense. Listen to all the feedback you get, some may be useless and that’s okay too. With the facts at hand revisit the questions you asked yourself earlier.

Now that you finally have the idea and are ready to get after it just start going crazy. Start thinking of all the features you’d like your product to have. Don’t think of it in terms of boundaries or limitations at this point. Don’t worry about the how, just let your imagination go. Jot these down on a piece of paper as you go.

With your wishlish complete it’s time to start prioritizing. Which features absolutely make or break the product? Which features help enhance or differentiate the product? Which features are less important and are more marketing hype? You may notice some features are not quite as critical but if you try to retrofit them into a later phase it may create more pain than if you implement them from day one.

As the vision comes together you will want to start throwing together some rough designs. Hand sketches are fine, figure out how you will want to arrange your features, think about work flow, user experience, automation, customization, security, etc. Work through several iterations until you get something you’re happy with. When you think you have a winner that’s the design you want to spend more time with. Work through building the appropriate graphics, colors, widgets and controls. One completed you will have conceptual prototypes for which to initiate the sales cycle and a blueprint to begin the actual development phase.

Posted in Business, DIY, Technology | Tagged: , , , , , | Leave a Comment »

5 ways small businesses wipe the floor with corporate America

Posted by derekbobo on April 30, 2009

I’ve had the opportunity to work with a variety of companies. I’ve seen dozens of small businesses, consulting firms, technology shops, academia, financial services, biomedical, manufacturing and fulfillment. While my age may not reflect all of my experiences I am certainly wise beyond my years. Through these experiences it has become clear to me that I prefer working with (or building) small businesses to corporate America.

Here’s why:

  1. In small businesses you play an integral part of the organization. Your typically a subject matter expert who gets a voice. In corporate America you’re almost always a peon who is expected to take orders. They don’t want people who think; they want people who follow orders. If it’s not their idea – it sucks. If it’s a good idea they take it and claim it as their own.
  2. Politics are minimal or non-existent in small businesses. You don’t have time for meetings about meetings. It’s about getting shit done.
  3. You typically have a much better bond with the folks in small businesses. You work so closely you can share more with each other and appreciate each other. In my experiences it’s a lot easier to go to the office because it’s almost like you’re going to see friends.
  4. You get to see and understand the vision in a small business. In corporations an understanding of the vision is beyond your pay grade. You can’t possibly understand such matters… right?
  5. You often get to play a role where you directly interface with clients. You see your impact on the business and it helps develop you as a more well rounded individual.

Posted in Business | Tagged: , , | Leave a Comment »

I got my guitar back today!

Posted by derekbobo on April 30, 2009

I decided to pick up guitar playing about 3 weeks ago. My younger brother bought a guitar and taught himself to play a few songs years ago, so when I decided to take it up I bought his old Ibanez off of him for $30. She had been in the basement for a couple years without playing, the strings needed replaced and there was a screw in the place of one of the bridge pins… but it was $30 so it was fine to get me started.

Once I started my lessons I figured it was worth having her cleaned up nice like. They replaced the strings, put a new bridge pin in, straightened the neck a bit, and oiled her up nicely. I now have a whopping $65 in the guitar so I can’t complain.

This is the song I’ve been trying to learn. If you jump to about 2:00 in the video it shows the strumming version and that’s what I’ve been practicing. It’s really a pretty simple song, but I haven’t quite got it all to come together yet. If I’m strumming the chords individually they sound fine. If I strum the rhythm without the chords I can do the rhythm pretty well. So far when I try to put the two together I just can’t seem to get it to click yet. I’ll keep at it!

Posted in Life, Random | Tagged: , , | Leave a Comment »

When is enough really enough?

Posted by derekbobo on April 29, 2009

Ever find yourself in a situation when you’re unhappy with how things are going? I know I sure do. What I always struggle with is how long do you ride out one of those situations before you say enough is enough? I mean there are times when your efforts seem futile yet you justify it because now isn’t an ideal time. Maybe it’s the down economy, maybe you just had a baby, maybe you’re in the process of moving… it could be any number of things. Are these really valid reasons or just excuses?

When do you call it quits?

Posted in Business, Life, Random | Tagged: , , , | Leave a Comment »

My content management system (CMS). Keeper or dud?

Posted by derekbobo on April 29, 2009

I’ve had the opportunity to use a lot of CMS in my day. These include homegrown, commercial and open source systems. With that in mind, while I’ve seen some pretty nice systems that are easy to use for an end user, they don’t allow me to easily make changes to account for truly dynamic content (aka writing server side code at the page level). Or on the flip side of things they try to be everything to everyone so they are so bloated that they’re hard to work with. Long story short, I’ve just run into a lot of short comings so I decided to write my own that models how I work, and how my clients typically want to maintain.

Miscellaneous features:

– You can create reusable code blocks (random image droppers, contact forms, etc) by using the “widget” feature
-I have a “redirects” feature which essentially lets you alias long pathnames as a single token. This is nice if running campaigns and want something like: instead of
-Multiple sites can be hosted from a single instance. So for example a company could maintain their main website and intranet… or I as a developer could maintain individual sites for my clients from a single installation.
-Pages can be enabled (made live to the world) and/or hidden which would hide them from auto navigation but makes them still viewable
-PHP code can be written so that it would act like code that appears at the top of a page (executed pre page load, postbacks etc)
– The has a “backend” or “cpanel” which is what is depicted above.
– It then has a single index.php file that interacts with the database and is used to render all of the pages.
– Database is MySQL
– The files that get uploaded (images, javascript, css) are stored in the filesystem rather than the DB. I then create a unique hash and drop off the extension (this is to allow them to be stored in a single directory w/o collisions) The hash is then stored in the DB and used to serve them up
– Page names can include file extensions if you want. While the site is driven by PHP you could make it look like it was .NET (.aspx), .php, .html, etc (security through obscurity?)

Here is a rough outline of how this thing works:

1. Create a design – woohoo
2. Load the design into the CMS as a “template” and then define regions that will contain dynamic content. (Think templating approach of using extract)
3. Upload any relevant images, external js includes, stylesheets, etc
4. Create a page
5. Choose the desired template… in doing so the page is populated with the placeholders defined in the template. (I use a naming convention to account for textbox vs textarea vs wysiwyg)
6. At this point a casual user could just dump content using a wysiwyg. If the page required special functionality a developer could write php code at the page level (I’m ebil and make use of eval… if you want to hack your own site I don’t feel sorry for you)

This is the main dashboard, similar to the concept of a file manager.

This is an existing template.

This is the wysiwyg in full screen mode… this is basically the index page template.

This is the tree menu used to control where I’m storing the template in my virtual file system.

This is the page view which is populated based on the defined regions in the template.

This is the rendered page that gets created from the above steps.

This is just a quick overview on a project I started quite some time ago. It was really just intended as a proof of concept. At this point I’m sorta sitting on it wondering if I should pick it up… if it’s worth continuing, or if I should open it up to the open source world. What do you think? Is this a keeper or a dud?

Posted in Business, Technology | Tagged: , , , , | Leave a Comment »