Ship It! LIVEShip It! LIVE
home about services writing contact

We develop, test, and create fine software products, and design creative solutions to your problems.
The development of software is an intrinsically creative process. We are dedicated to improving our mastery of the art.
Links · RSS Feed
Popular Pages

That's got to be one of the *best* choice of title since the Mythical Man Month!!
-Kenneth Sizer
Jared Richardson’s talk titled “Build Teams, not Products,” in particular, was one of the best presentations I’ve ever witnessed. It was just one of those talks where all the points seem tautologic...
-Yev Bronshteyn
If your shop has trouble shipping quality software on time -- and let's face it, most do -- then this book is for you. If you're a manager, I'd say that doubly so.
-Ernest Friedman-Hill "JavaRanch Sheriff"

North Carolina's Anti-Municipality Broadband Law: Get Involved! (Apr 14)
The great state of North Carolina is considering a bill that appears to be driven by Time-Warner and prohibit "predatory" local municipalities (you know, small towns) from rolling out their own ISP systems.

I'm no lawmaker, but I was born and bred in this great state, and have wished for a "predatory" town to roll out local internet service at a faster speed or better price and forcing my ISP to scramble to keep up. (My cell phone has faster upload speeds than my home internet service.) I've dreamed of having a "predatory" local town blanketing their downtown area with free wireless internet access in a bid to attract the technically savvy into the area.

Instead I'm living in a state where a state lawmaker that, from my point of view, would appear to be in the pocket of lobbyist, has sponsored a bill that would prohibit such a utopia. I suppose rolling out broadband to help local citizenry to compete in the new world of high tech jobs is too much too ask.

Rather than ranting on, let me provide a few links for you to follow on your own.

North Carolina cities mobilize against anti-muni broadband bill This link has the links you need to get in touch with the lawmakers running the committee currently considering the bill.

Cable-backed anti-muni broadband bill advances in North Carolina This is the article that first grabbed my attention.

Your NC Senator by county This bill has passed in the house. Let your Senator know that you care about this bill and that you'll be voting against and campaigning against anyone who votes for it.

Senate Bill 87 This is a direct link to the bill in question.

Please share this. If you have a blog, feel free to plagiarize this in it's entirety. I have no financial stake in this matter, but as a lifelong North Carolina citizen, I want the best possible infrastructure we can have at our disposal.

Internet access is crucial to the current, and next, generation of jobs and eduction. Let's share this message!

Category: Misc

Top Five Ways to Transform Your Organization (Mar 8)

The really hard part of changing an organization is changing the people, and that's not something I can tell you how to do in a blog post. However, I can tell you about five great practices that will boost your team's productivity, increase quality, and improve communications.

First, use continuous integration. It's a very simple tool with an enormous impact. A CI tool compiles source code after every check in, then runs every available automated test. This means that a developer who checks in code knows as soon as possible whether they've missed a file (oops!), or whether they've broken a test in another area. This type of rapid feedback means that your developers fix their own bugs, and learn from them, instead of having some poor dupe fix all the problems once a week. (See Jenkins for a good CI server.)

Second, require Defect Driven Testing (DDT). How often do you find bugs? Fairly often if your shop is typical. How often do you write automated tests? Infrequently, if your shop is typical. :) Instead you put in a large number of prints, or you step through the debugger for hours. And next week, when you find anther bug in the same area, you'll do it again. Instead, write a JUnit or Nunit test. It's simple, it's easy, and when the bug comes back, your CI system will flag it in seconds, saving you hours of debugging.

Thirdly, stop allowing groups to ask for features using Word docs. English (or any other written language) is very bad way to say something precisely. That's why lawyers make so much money trying to make it precise, then other lawyers always seem to manage to find loopholes. Instead, write simple tests. The automated tests we mentioned before aren't always unit tests. (In fact, they usually aren't!) If you ask for a new API, write a test showing how it'll be used. Need a new feature on the database API? Add a test. When the test passes, it's done. This is called executable documentation and it's an incredible communication tool. Use it between teams that are co-located, but especially when they're not. (Cucumber is a great tool for readable executable docs.)

Fourthly, use time-boxed iterations. Work for a month, or a week, and then stop. When you time box your work, it forces you to break down your work into more manageable amounts. We developers tend to be optimists and quite often (okay, ~always~) take on more work than we can complete on time. A time box lets us say "Done" or "Not done" in a very short amount of time. We get trained on breaking down our work, and our managers (or customers) gets to re-evaluate the work every so often and say "I wanted that feature when it was going to cost two iterations, but now that it's costing me 12, I don't want it this bad! Drop it out."

Finally, get developers talking with your customers. The perspective this interaction brings changes the way your team writes features, and it changes the way your customer sees your development shop. Both sides stop seeing stereotypes and start seeing real people.

There's a lot more you can do to change a shop, but these five tips will start you moving in the right direction.

Category: Agile

Drive By Requirements (Jan 25)
I'm working on the requirements chapter of Ship It! That work led to a spirited discussion of the ideal (iterative requirements) or real life (we're rushed, on a schedule, and underfunded. Can't be done right. Just has to be done.)

This paragraph (which may or may not be in Ship It!) was inspired. I'm tired and it's been a long day, so take it for what is. :) I'd love to hear your thoughts.

This sounds like a lot of work! We're under extremely tight schedule pressure. We simply don't have the time to revisit requirements. What can we do?

Consider that by not taking the time to revisit requirements, you're instead choosing to build similar to, but different from, features than what your customer wants and needs. How close will you be? That's the dice you're rolling.

If you're really lucky, you'll be close enough to still get paid. Is the product what you agreed on? No. Is it what you promised? No. But they can use it, and your parents are friends of theirs, so, sure. You get paid. What's that you say? The next contract? No, they won't be using you again.

If you're moderately lucky, you'll be able to spin your entire team back up for "minor" retooling that changes half of your application's behavior and introduces a whole new set of bugs. Somehow the "minor changes" the customer asked for have very little in common with the "minor changes" to the code base, or the development team's sleeping schedule!

If you're entirely unlucky, you'll throw away everything your team spent the last six months building and start over. Sure, the team will tell you they reused parts, but that's to make you feel better. They won't reuse anything that couldn't be rewritten in an afternoon. And by the way? You now have six weeks or we not only withhold payment, we also sue you for breach of contract. Sure, it might bankrupt your firm, but that's your problem not mine.

So tell me.

Requirements punk.

Do you.

Feel.

Lucky?


---------------

I've gotten a few replies offline. Since this blog doesn't take comments, I'm posting a few as I get them.

From Tim Wingfield
Whether you build it beautifully or crappily, if you build what the customer doesn't want it's 100% waste.


Category: Agile

Career 2.0: Take Control of Your Life Now a Free PDF (Jan 21)
The book I wrote last year is, for a short time, available as a free PDF download. Career 2.0 walks you through taking control of your future, instead of trusting to the random chance that comes from management and industry trends. Some of us have been fortunate enough to work with great managers in great organizations that cared about our futures. Others have worked in situations where we were considered replaceable cogs.

Are you a cog today? Do you want to break out of that mold? Career 2.0 walks you through the steps needed to ensure you work where you want to work, instead of where you have to work.

Here are a few links to nice reviews of the book, as well as a low resolution video of me giving an early version of the talk. It was recorded on my iPhone, so please forgive the quality and recording angle. :)

Career 2.0: Toastmasters

NFJS COSS 2008 1st Day Wrap Up

Career 2.0: Take control of Your Life

NFJS Keynote: Career 2.0 - From Grunt to Guru

And the video.

If you grab Career 2.0 and like the material, I'd suggest you also check out Chad Fowler's excellent book, The Passionate Programmer (2nd edition): Creating a Remarkable Career in Software Development

If you're not happy in the situation you're in today, you've got two choices. You can sit tight and hope it gets better. Someday. Or you can start working today to change where you'll be tomorrow. And by the way, not choosing is the same as choice one.

Category: Books

How Has Your Manager Improved This Year? (Jan 18)


Technical training is widely available. We've got great books, conferences, and lots of user's groups. Unfortunately, managers aren't that lucky.

Mostly they're expected to just figure things out as they go, and sadly, the results are all too often what you'd expect. Many bad managers float from department to department (or company to company) while never becoming great. They don't lack the desire, and they're very smart people, but they end up trying to re-invent the wheel. Instead of learning and applying tried and true principles, they end up scrambling to learn and understand while also trying to meet challenging deadlines.

Here's a chance to change the status quo. Mary and Tom Poppendieck are bringing their Lean Leadership Workshop to the Research Triangle Park in North Carolina. The lean software concepts are designed to help your team focus on the parts of software development that provide the most benefit, and eliminate the wated effort. This idea has been used for years in manufacturing, and those same ideas map very well to the software space. Mary and Tom were the two pioneers who championed that idea in our field.

In a time of increasing competitiveness... when the economy is still struggling and your company needs every advantage to pull ahead of the rest of your industry, can you really afford to ignore this type of world-class training? Invest in your managers and senior developers, and you'll reap the benefits for years to come. Remember the old proverb. If you think education is expensive, try ignorance.

Register now at Event Brite. Act quickly and you can get the early bird discount. It's expires February 2nd.

Here's some text from the workshop description:



As global competitiveness comes to the software development industry, the search is on for a better way to create first-class software rapidly, reliably and affordably. Lean initiatives in manufacturing, logistics, and services have led to dramatic improvements in cost, quality and delivery time; can they do the same for software development?

The short answer is ..absolutely!

Many methods are improving software delivery, but Lean is emerging as one of the best. It is grounded in decades of research and practical day-to-day usage. Lean leverages this incredible investment into making e processes better. Lean thinking focuses on giving customers what they want, when and where they want it, without wasted effort or wasted time.


Tom and Mary speak all over the world, but we've been able to bring them in at a very special rate. If you've ever considered taking this class, it'll be cheaper to travel to RTP and take the class than wait for it come to you locally! If you're in RTP, please take this opportunity to improve your team, but to also help make the entire RTP area even better. We're already a high-tech hotspot. Let's continue to build up RTP and make it the number place to come when you want software built right.

Category: Agile

Previous page Next page


© 2007 Agile Artisans.