Jared's Weblog

Main Page - Books - Links - Resources - About - Contact Me - RSS


Jared Richardson Most Popular
Help! I've Inherited Legacy Code
Testing Untestable Code
Continuous Integration... Why Bother?
Mock Client Testing
The Art of Work
Technical Idiot Savants
Targetted Skills Aquition vs Free Range Chickens
The Habits of Highly Effective Developers



Blog Archive
2005-December
2005-November
2005-October
2005-September
2005-August
2005-July
2005-June

Sun, 31 Jul 2005

Who got the shirts?

I asked people to send in their favorite key practice with the promise of free t-shirts! :)

Continuous Integration was the practice most often picked, even by people who aren't using it yet. Apparently it's pretty easy to see the benefit even if you aren't fortunate enough to be working in a CI environment every day.

Without further ado, here are the winners:

Thanks for all the mail! I've forwarded on the winning mail to the Ship It! mailing list.

Jared

posted at: 23:48 | path: | permanent link to this entry

Sat, 30 Jul 2005

We're matching Amazon

Our book Ship it! A Practical Guide to Successful Software Projects is published by the Pragmatic Bookshelf. Traditionally the Prag Prog team have kept all their books at the listed retail price on their web site. Then online stores like Amazon.com sell the book for 30 to 35% off the retail price. This means our book costs $20 on Amazon.com and $30 on the Prag Prog site.

Next week we are running a little experiment. We lowered the price of the book to $20 on the Prag Prog site. So for the next week, we are matching Amazon's price.

This way you (the consumer) gets the same price everywhere you shop and we (the authors) get a lot bigger piece of the purchase price.

The sales numbers themselve will decide if this discount is a good idea or not. We have a Java Ranch book promotion this week that might help, but ultimately you the book buyers will have to tell us if this is an idea worth keeping. If you already have a book, send me mail and let me know what you think. Would this have swayed your purchase decision? Should this be a long lasting discount?

posted at: 01:27 | path: | permanent link to this entry

Thu, 28 Jul 2005

Free shirt reminder

Just a quick reminder, if you planned on going after one of the shirts, today's your last day.

Here's the original post.

posted at: 23:33 | path: | permanent link to this entry

Technical Idiot Savants

Andy Hunt gave a talk Thursday night in Reston, Virginia called Refactoring Your Wetware. I got a chance to review the slides before he went and it got me thinking... sounded like it would be a great talk by the way!

Some developers let their company put them in a niche. They learn so much of the company's internal technology that they lose touch with their industry at large. They become very good at a very small set of technologies.

This is a very bad thing for both the company and the developer.

As a developer, you have gained a great many non-transferable job skills. When you decide to move, or when the company lays you and 10,000 other poor souls off, you'll be unemployable. From a personal point of view, this is a very bad situation.

It's also bad for your company. There are a great many smart and talented people across this world and they are doing clever things. Are you learning about the clever things people are doing? Did you know about the ideas behind AJAX before AJAX became a buzzword? Or do you know what AJAX is now? :)

My point is that if you keep informed about your industry in general, you'll continue to learn. And you'll bring that knowledge back to your day job where you'll apply the new ideas. Instead of solving problems yourself, you'll read about how some other smart people solved the same problem.

It comes down to pulling your head up from your work from time to time and looking around at the landscape. You may be working very hard building your road, but are you headed in the right direction? Do you see the canyon ahead that you'll want to avoid?

Don't let you company train you to become a technical idiot savant who can do one thing so very well but is useless for anything else. It may occur naturally in some people, but in developers, it's a learned trait!

posted at: 23:31 | path: | permanent link to this entry

Justin Gehtland on software

I saw a great quote on Justin's blog.

So, I guess what I'm saying is, Agile Development works for books as well as for software. Get the product in front of readers early and often, and they'll work with you to make the perfect product. Deliver once, at the end, and there are bound to be problems, and lots of unhappy customers who, rightfully, can't understand why the problems existed in the first place.

Check out the entire post here

In Ship It! we talk about Tracer Bullet Development and how it enables you to have an end-to-end running system very early in your development cycle. The abilty to demo the product and get early feedback, for books and software, is the only way to actually deliver what your customer needs, as opposed to what they asked you to build!

posted at: 23:05 | path: | permanent link to this entry

Tue, 26 Jul 2005

You are responsible for you

I read a great entry today on Steve Freeman's blog.

Steve was quoting Kent Beck, apparently from XP2005

As Kent likes to point out these days, the only thing you can really change is yourself, so doing the best job you can is the only available response; the rest is out of scope.

There's a lot of wisdom in those words. You are responsible for what you do and who you are. If you're not happy with you level of expertise in a given area, don't wait for your tech lead or company to conveniently drop the training in your lap. Buy a book. Peruse via Google. Find the information yourself to improve yourself.

Find habits that you can practice with or without the rest of your team. Improve yourself. Don't stress over the rest. Do the best job you can and sleep soundly when you go home at night.

You can't control the customer, your management or any one of a thousand other potential issues related to your project. But you can control yourself instead of letting the project control you.

Also, Steve talks about a panel he sat on at XP2005 that's a great read. Check it out if you have the time.

posted at: 19:48 | path: | permanent link to this entry

Sun, 24 Jul 2005

JUnit is not a Unit Testing framework

Okay, after that inflammatory comment got your attention... :) JUnit is a ~testing~ framework. There is nothing in the framework that limits it's use to only unit testing. Given the name of JUnit, NUnit, MBUnit, and others, perhaps unit testing was the original motivation, but don't limit your use of a great tool.

If you're not using an XUnit testing framework for functional, acceptance and integration tests, you've been missing out on great uses for your favorite testing framework. Get all the benefits that you've come to expect from unit tests with your "mainstream" testing. Things like repeatable results, automatic test runs and known product state should be standard operating procedure in your shop... Are they?



posted at: 23:19 | path: | permanent link to this entry

Thu, 21 Jul 2005

Free Ship It! t-shirts

Those of you who've read Ship It! know about the book's key practices poster. And you may have also visited the Ship It! CafePress store. I decided to merge the two ideas. :)

Look over the key practices poster and let me know which practice you like the best. Include a sentence or two about why you like it. If anything in the book (or the sample chapter) changed the way you use the practice, feel free to include that as well.

A week from today (Friday, July 29), I'll send a free Ship It! t-shirt to the writers of the five best letters. This shirt has the key practices poster printed on the back, so you can wear it to work and use it as a conversation starter... or you can just wear it to mow the grass! I'll announce the five winners here and on the mailing list.

I'll reprint all the entries on the Ship It! mailing list, or you can post your letter directly to the list.

posted at: 21:46 | path: | permanent link to this entry

Wed, 20 Jul 2005

Podcast interview with Software Development Magazine

If Dave is hip for getting a Rails podcast interview, then Will and I must be hip too! ;) Who-da-thunk-it?

We were interviewed by Mike Riley (for Software Development Magazine) who had some great questions about Ship It!. We talked about things like Tumbleweed Developers, Continuous Integration, and The List. It won't be published for a few months, but I'll post a link when it goes live.

posted at: 21:24 | path: | permanent link to this entry

Tue, 19 Jul 2005

Test Framework Comparison

This is a short article and introduction to JUnit and several other frameworks, including JTiger, TestNG, and the next version of JUnit. It's a good article if you've got the time.

Test Framework Comparison by Justin Lee.

posted at: 20:24 | path: | permanent link to this entry

Mon, 18 Jul 2005

Develop in a sandbox

First, the term sandbox isn't referring to a cat's litterbox! It's a small contained play area on your own machine. Your sandbox is your own playpen. Of course, it's possible your sandbox does double duty, but that's another topic... ;)

Developing in a sandbox has several implications. You can build, run, and test the product locally.

James Duncan Davidson talks about how he builds in a sandbox. I like his motivation for automation as well as the descriptions of how they automate. The description of how easy it was replace a workstation when it died was nice. :) That's a real test of your automation practices!

Here's the conclusion:

Just because it looks wild and wooly out here in Rails land doesn't mean that you can't exert an iron hand when it comes to development, packaging, and deployment. And if you think those properties are unique to J2EE applications, here's a little secret: When the people at Sun sat down to embed those terms into the specifications and books, they didn't invent them or the concepts they stand for. They simply codified them in a way which puts them in front of everyone's face. But, regardless of whether they are codified or not, to get to a true level of managing the develop-test-deploy cycle using any framework takes a bit of human effort in set up and maintenance. And it takes some script-fu. But it's worth it. Every little bit.



posted at: 07:39 | path: | permanent link to this entry

Thu, 14 Jul 2005

It's just too complicated here!

Time and again I hear people say that their problem is too complicated to solve cleanly. The reason their solution is so messy? It's because the problem requires it!

This is, of course, just silliness. Your problem may be difficult. Your timeline may be too short. But you've got to realize that a messy solution is going to cost you needless evenings, weekends, and more stress than your body should have to endure. It's going to cost your company money to patch, fix and refix over and over.

I once met a team of developers who thought their build system was so complicated it needed to be built five to seven times before it could build cleanly. So when a build was required, everyone went to one box that could build and they hit the "build" key in the IDE until the build succeeded.

It took about half a day with Ant to create a robust, repeatable build script that did everything needed. The build wasn't that complicated, but once they had a working solution, everyone accepted the "solution".

Imagine the types of errors that crept into that code base. Remember, none of the developers could build the code! Everyone did the best they could, then checked in the code. Talk about Integration Hell! How many hours and days do you think were wasted in this shop? This system was used by the team for at least six months! Talk about coding up bugs and then wasting days fixing them...

Take the time to solve your problems cleanly and you'll only have to solve them once. Don't tolerate Broken Windows!

posted at: 20:31 | path: | permanent link to this entry

Wed, 13 Jul 2005

JavaRanch book promotion
Both Will and I are hanging out in the Process forum of JavaRanch the first week of August as a book promotion. We'll answer questions about the book from August second to the fifth. Come by and ask a few questions and JavaRanch might pick you to win a free book! If you've never visited JavaRanch, it's a great Java resource with very active discussion boards.

Of course, you can always drop on the Ship It Google mailing list now if you have book questions... ;)

posted at: 20:24 | path: | permanent link to this entry

Tue, 12 Jul 2005

Sensory Overload
What happens when you put too much information in front of someone? They overload! Will Gwaltney wrote a great bit on how fighter pilots discovered this phenomena years ago and how it applies to you as a developer today. Check out Will's blog.

posted at: 06:51 | path: | permanent link to this entry

Mon, 11 Jul 2005

Cancer Triathlon
Hi all. A co-worker of mine at SAS is participating in a triathlon to raise money for cancer research. Please visit the web site and if you choose not to support Laura, support your local chapter.

Greetings!

Scott Greene, my husband Tim's business partner and dear friend, is fighting non-hodkins lymphoma. Tim shaved his head.... which I won't do, but I am training for a triathlon to raise money for The Leukemia & Lymphoma Society as a participant in their Team In Training. Please help by making a contribution. Each donation helps accelerate cures for leukemia, lymphoma and myeloma and brings hope to the patients and families who are on the front lines of the battle against these diseases.

Want to donate or help? Simply visit my web site

--Laura Taillon

posted at: 20:30 | path: | permanent link to this entry