Entries Tagged 'software' ↓

Happy Path

I talk about being simple a lot.  I like software to be simple.  It’s not as hard when you keep it that way.  That’s important for a lot of reasons, but for me the most important thing is relating how that software is going to put dollars in your pocket.

The single most overlooked aspect of simplicity in software development is the concept of a “happy path”.  Look around, as tons of companies are doing it.  They’ll call it agile development, or some other silly buzzword, but in its simplest form, its nothing more than coming up with a happy path for how the customer will want to use your product.  Non-software people in your business will understand that and get engaged at a different level.

How does Joe Customer accomplish the problem your trying to solve with your software?  That’s it.  Go build that.  Get that done.  Stop getting hung up on implementing things that don’t matter.  Bite off that simple niche and build it with a limited feature set.  You’ll know when your done building if you need to add a few things here and there to make it work right.  Those few things will have a MUCH smaller development time and complexity curve.  Not to mention it can be offloaded easier because the “guts” are there and you can inject people with less domain knowledge (code monkeys) into the mix because you’ve really defined the “domain”.

Most software projects would just be better off re-written in a year or two anyway because of the speed of the tools evolving around it.  So instead of designing to write large complex systems, stay simple.  Build your first happy path and release it, and if it doesn’t solve your problem (and you’ll know because people won’t pay for it), bolt on another happy path and continue to build that way.

Simple is hard to do, but when done right keeps you moving at the speed of the competition around you.  Happy path software development will help you accomplish simple.

Reblog this post [with Zemanta]

Twrts – Small, Readable Stock Chart URL’s

I was fiddling around with an idea in my head to write a small website that helped me translate stock charts into nice looking URL’s. Most of the time, when you look at a stock chart and want to share that with someone, the URL is GIGANTIC. It contains all sorts of cool variables, vectors, really everything that the site needs to paint the proper chart. I wanted a way to copy and paste a URL that was MUCH shorter, so that I can use them in systems that limit my character usage. Also, it just gives me a much cleaner URL that can be embedded anywhere you might be linking to charts without having a really crappy looking URL.

Well, with that, I spent last night watching hockey and writing an application, called Twrts (pronounced Tw-arts), with Google’s App Engine. You can check it out here:


It was an exercise mostly in fun, but I did want to see how productive I could be with the limitations of the framework. The main one for me is that you have to write stuff in Python. I have used it before, but its been a while, so I had to use a lot of reference material. I gotta say, the framework is really nice for simple stuff. You can be up and productive in about 15 minutes. Concepts are easy to grasp and without having to really muck with configuration is really, really nice. The deployment is money as well. One click and done. I love that.

My implementation definitely isn’t without flaws. The first glaring one is the size of the URL. Without buying up a shorter domain name, I am stuck with probably 8 extra characters I would like to shave off (twrts.com instead of twrts.appspot.com gets rid of a period and the appspot). Oh well, if anyone actually uses it besides me, then I will look into some forwarding through a smaller domain. I also chose the simplest algorithm possible for producing the generated URL’s, meaning I am limited to only around 14,777,000 url combinations. But since I will probably be the only one using it, it should suffice ;) .

It’s also interesting to note that this is pretty much the same thing that TinyURL and the other millions of services do. With my implementation though, I didn’t want to have to go to the chart’s URL in order to copy and paste it into one of those services. Just eliminates a step or two from the process. Also, I want to build in posting a message to Twitter to simplify the process even more. That should be uber simple with the twitter API.

Check it out when you get a chance.

I gave it a Twhirl

I have been using Twhirl, the popular Adobe Air client for Twitter, on my Powerbook now for about a week. I am trying desperately to figure out why. Twhirl has re-implemented the Twitter online interface giving you a desktop client that is platform independent. So the movement towards online applications that are easy to use with creative interfaces is already receding back to the desktop. For Twitter, I think unnecessarily. Twitter is designed for quick bursts of creativity, with short time spans on interacting with its interface. To me having a desktop client for this functionality seems like unnecessary noise. You aren’t writing long dissertations that require frequent saving, and you usually are getting messages through your phones SMS capabilities.

Thats not to say their totally isn’t a space for the Air platform, because there is. Specifically for handling batch tasks that are network intensive, where the connection can be dropped and re-establish. In particular, uploading photos to popular photo sharing sites. I am a Smugmug devotee, but my 1 beef with them is their client uploader sucks. They could REALLY benefit from having a platform independent framework to develop their client on instead of hacking out some terrible disconnected clients for each of the different platforms.

Chime in if you are using Twhirl in a way that I can justify it as one of my everyday tools. Differentiating the signals from the noise in your everyday toolbox is just as important as it is with information.

Evernote makes an impact

I admit it. I have a really hard time keeping track of the amount of information that I am bombarded with on a daily basis. It is a constant struggle for me to know what it is I need to get done from a personal perspective. At work, it is easier because you have email, constant conversations about products you are working on, expectations, etc. Those kind of things don’t exist for my personal life when it comes to things like home improvements, insurance rates, investments, childcare, etc. I have tried tons of things over the years but what I have been using lately is a moleskine notebook that I carry around to jot notes in and ideas. But with everything I am figuring out its pitfalls. Enter Evernote.

Remember everything. | Evernote Corporation

Evernote is a well written piece of simple software that lets you take notes from you desktop, web, or mobile phone, interconnecting all of the worlds you live in. This is going to be the first post of a multipart series about the software and how I am using it to make my life simpler.

One of the biggest shortfalls of my moleskine system is finding things easily. I have a hard time when I am reading ANY physical media not subconsciously pressing the control-f or command-f to open a search window to find what I want. With Evernote, this task is now made trivial. If I am ever around where I don’t have my blackberry handy or laptop, I enter notes into my notebook. Once I am back to my desktop, I take a quick picture snapshot note of the page of notes that I was looking at. I do the same thing with post it notes that are laying around my office. Take snapshots of them, and now I have a nice collection of the information flow that I thought was important enough to write down.

Uploaded with plasq‘s Skitch!

With the image recognition software built into evernote, it indexes my handwritten pages into notes that I can search through. Very simple, and very, very elegant. Below I was searching for the words “out” and “note”, obviously:

Uploaded with plasq‘s Skitch!

Stay tuned as the next post I am going to show how it can help you make smarter wine purchases…