This week I return to following the advice in
Chad's book. It's something I've been doing now for a while: automation.
I'm really big into automation - one of the things I really like to do is create developer tools, or even just small throwaway scripts that get
me through the day.
One paragraph that stuck with me was this one:
So, imagine your company is in the business of creating websites for small
businesses. You basically need to create the same site over and over again,
with contacts, surveys, shopping carts, the works. You could either hire
a small number of really fast programmers to build the sites for you, hire
an army of low-cost programmers to do the whole thing manually and
repetitively, or create a system for generating the sites.
Sound like
anyone you know? (Or any of the other people writing generators, automated testers, and the like?)
It was after reading that paragraph that I decided we needed to change things at work. Forget about code repetition, there was plenty of effort repetition as well. The first part of that process was getting
cfrails together, the remaining part is to build a WYSIWYG editor for building sites - if I ever get around to it.
There are other things to automate besides frameworks that generate code. Neal Ford has a
pair of
talks (both links there are PDFs found via
his past conferences page) he gives that illustrate a bunch of tips and "patterns" along these lines. I enjoyed both of them and will eventually get around to reviewing them. He also
mentioned that a book covering the topic is coming soon.
Getting back to
MJWTI, Chad lists a "simple (minded) formula" to calculate productivity:
productivity = # projects or features or amount of work / (# programmers * average hourly rate)
At the end of the chapter he shows it in action: 5 units of work with 3 fast programmers at $80 per hour would be as productive as 20 programmers at $12 per hour on the same project (obviously ignoring the communication deficiencies and other pitfalls of a group that large). But if you are able to automate enough of your work, you can be the single programmer at $80 per hour on the same 5 units of work.
The exact math isn't what's important - the fact that you are more productive by automating as much as possible is.
In what ways do you automate your workday, no matter how big or small?
Hey! Why don't you make your life easier and subscribe to the full post
or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate
wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!
Leave a comment
Well, I think you know my position on this stuff! Key is a lifecycle solution so you're re-using requirements, tests, code, deployment scripts - everything. Challenge is to create a solution that is integrated enough to be really efficient, but loosely coupled enough that you can change different parts of your automation system without breaking everything else. Not trivial, but a fascinating challenge!
Posted by
Peter Bell
on Dec 17, 2007 at 04:44 AM UTC - 5 hrs
Absolutely. What about smaller level things? Ever use Automator on the Mac, or automate just sort of menial tasks in one way or another?
I'm going to have to start paying attention to stuff like that for myself.
Posted by
Sammy Larbi
on Dec 17, 2007 at 06:05 AM UTC - 5 hrs
Good question. I am definitely not as efficient as I'd like to be. I don't use automator. I use a lot of "Find" to get to code, but I don't do Regex finds, I don't use the command line to automate tasks, and I'm just not as skillful as I'd like to be with the shortcuts and automation potential in Textmate or with using all of the features available in Eclipse.
It's an ongoing process of taking the time to become more efficient. I also find that I invest at least an hour a day in reading blogs. While that isn't an automation strategy, I find that often I'll come across solutions so that when I need to solve a problem I can remember enough to Google the appropriate article, saving me a bunch of time.
Posted by
Peter Bell
on Dec 17, 2007 at 06:40 AM UTC - 5 hrs
Speaking of find to get to code and remembering enough from blog-reading to find a solution to a problem, you've just reminded me that I saw an enhancement to Spotlight where it will look inside your Ruby code as you search.
It's at
http://www.apple.com/downloads/macosx/spotlight/ru... if anyone is interested.
Posted by
Sammy Larbi
on Dec 17, 2007 at 07:02 AM UTC - 5 hrs
I am all about automation. I built my first code generator in '01. Primitive by todays standards but when faced with creating an application for student housing, it took less time to create the code generator than create a CRUD with some hundred odd form fields. Fifty column table to functioning crud - 5 min.
I am a big fan of ORM, especially Rob Gonda's SQL.CFC. So much so that I am in the process of porting it to MySQL. I like the fact that I can update a table by feeding a function two variables (table name and the variable struct and I am done). I even wrote helper functions to set defaults values and combine structs. I will post it on RIA Forge if anyone is interested.
Even little tricks like this are a God send.
http://www.dopefly.com/techblog/entry.cfm?entry=22... what Peter said... Dodd Hall at FSU is inscribed with: "The half of knowledge is to know where to find knowledge".
Posted by Coz
on Dec 17, 2007 at 09:54 AM UTC - 5 hrs
Leave a comment