Archive for May, 2007

Agile Development Workflow Part 1 – Setup

The cornerstones of the agile development workflow I’ve developed over time are speed and flexibility. As someone who has fallen in love with his mac and refuses to work on any other operating system – I’ve had to adjust my workflow for whichever frameworks I’m working with.

This workflow will be of no use to 9-5ers that punch in and out promptly, who work only on a company provided computer and exclusively work with Active Server Pages and other web technologies circa 2000. If you have a passion for the web and web technologies – this will meet all of your needs (and possibly desires).

I have had to work with many co-currently, from working with .net applications (yumdrop) to perl applications (quibblo) and php based solutions (this blog), etc. I needed something that was flexible and fast, that I could use at work or at home (I work on my MacBook Pro exclusively), with a speed that would not interrupt my development process – I make changes fast and frequent. Plus – I am a front end web developer – so I don’t have to worry about developing with IDE‘s (RIP VisualStudio.net) – TextMate is my monkey wrench.

I’m splitting up this series over numerous posts – I believe it’s just too much information. Once I get all the information maybe I’ll release a condensed version but I think a walk-through will serve everyone equally well.

The Connector

The first thing that is required is a way to build a bridge. Since I work mostly on remote servers (although this is not required) I run some automation scripts over ssh. The problem with ssh or any remote login is the dreadful password prompt. What good is automation if you have to type in your password everytime? Luckily ssh allows you setup your account in a way that will give you access to your servers sans password.

Setup Time

Since this is an agile dev workflow that is catered towards Mac users – I’ll assume you have ssh available by default.

Fire up terminal (I prefer iTerm)

Navigate to

~/.ssh

macAttack:~/.ssh kb$ ls idrsa idrsa.pub known_hosts

Upload your

id_rsa.pub
file up to the root folder of your remote ssh-enabled server via FTP

This is an IMPORTANT step. If you are logged in via ssh do not copy and paste your key – it won’t work!

Log in to your webserver via ssh:

 ssh username@server.whatever

In the directory you uploaded your idrsa.pub file – run the follow command:

cat idrsa.pub  >> ~/.ssh/authorized_keys

This will append your computers public rsa key to your remote computer

authorized_keys
file

Test it out! disconnect and reconnect – it should be automatic!

If I lost you, I found these resources that go into a bit more depth of the setup process and may clear up any confusion:

Setup Complete!

If you got tripped up feel free to contact me and I will try to help you out.

Watch for updates here: Agile Development Workflow Series

Next in line: Agile Development Workflow Part 2 – Love The Sync

Missed Opportunities – Compeet

Last week my colleague and friend Patrick Haney tipped me off to a new and exciting web application called TeamSnap.com. Usually I’m eager to evaluate a new web application that was recommended to me – but upon my visit to teamsnap.com, my heart sank.

The big idea, the one as a web developer you always have in the back of your mind that you’d love to do, but never seem to have the time or the means to do it – had been done by someone else. I knew I had blown my opportunity to build Compeet even though the domain has been waiting – patiently since May 06.

In late April 2006, back when I operated Gray Door Solutions with my former business partner Dan Pickett, we organized a retreat with then co-workers Joe Riopel and Bill Rowell. The result of that retreat were some great ideas for subscription-based web applications. The crown jewel of which would be online sports team management.

Due to lack of time and money (though I suppose it was really drive), compeet never came to fruition. Dan and I started thinking about it again recently when I suggested we apply for YCombinator funding for the April 2nd deadline. It gave us a great opportunity to revisit our original ideas and improve upon them. However, due to the fact both of us recently started new jobs (Dan at secondrotation.com and me at quibblo.com) – when we weren’t accepted for YCombinator funding the idea was shelved again indefinitely. But Patrick would always remind me about what I should really be doing…

Below is the project summary taken right from the YCombinator app filed on April 2nd 2006.

Sports Team Management Software Organize your sports team online:

  • Collect dues and membership fees via the web
  • Create a team website that publicizes your image
  • Handle all scheduling tasks
  • Maintain statistics to keep it competitive
  • Easy team correspondence including sms messaging, email reminders, and location based mapping.
  • Get the best deals on the latest equipment
  • Bring your entire league online and track standings and statistics

Sparkplug has certainly done a great job on their beta release of teamsnap.com (although I don’t care too much for the name) . I was very impressed and wish them the best of luck. I’m going to follow them very closely in the future.

I’ve taken a valuable lesson from all this – and it’s a possibility someday compeet will rise from the dead. Next time an idea hits me with such passion – I plan on taking full advantage of it.

Incidentally, just this past Sunday was the first game of a spring softball league I had joined. It was a bit drizzly Sunday morning but I hadn’t received any communication so I left for Medford. Upon driving to an empty field I gave the team captain a call. The game was canceled. Supposedly an email was sent out 45 minutes prior that I never got. I couldn’t help but blame myself and my lack of perseverance for my predicament. Text message based game cancellations were very high on the compeet feature list. What did I do when I got home? I sent out an email that suggested the team try a new service called TeamSnap.com – to keep us all on the same page of course.