February 29th, 2008Scaling with Clouds

Terry Goertz and I are writing a series of articles on designing, hosting and managing your application using Amazon Web Services (AWS). Our first one, which provides a basic overview of AWS, is up on RedCanary.

jeff_and_terry.jpgWe needed a portrait for RedCanary and not really being into the glamour shot scene, my son and daughter pulled together this drawing of the two of us. Yeah I’m convinced my kids have a pretty demented view of what we actually do. They know we do something with whiteboards. My daughter demanded help drawing UML actors and then my son proceeded to draw the hair and Terry’s beard. Finally it’s clear who the evil one is.

I was asked a deceptively simple question last week, “if you could buy your development team just 1 book, what would it be?”  After first thinking “that would make a dang fine interview question!”, I started to iterate through some of my fave titles on my bookshelf, err in my boxes (we recently moved).

First I thought of “PeopleWare”, a classic but not really what I’m looking for. Then I rattled through some of the Agile classics such as the “Lean” series by the Poppendeicks and some of Ken Schwaber’s Scrum books. Good but I don’t think so.

Pulling up a layer, maybe something architectural like Martin Fowler’s “Patterns of Enterprise Application Architecture” or “Refactoring”? Also good but only 1 book!?!?! Ok let’s go for the “your code is your craft” approach.  I know! Mike Gunderloy’s “Coder to Developer” but it is a little .NET centric. What about “The Pragmmatic Programmer” by Hunt and Thomas? Yeah  you’re right, it’s getting long in the tooth.

Can I buy 2 or 3 books for the team? No? Ok then I need your help. What book would you buy and why? Blog about it or leave a comment and I’ll write up a summary of the results.

Thanks to all who commented on my CTO Handbook. Well except for the one from that that Jason guy :-p this post’s title is for you bud.

First to answer the obvious question I’ve been getting “what type are you?” Well, I started out as #1 (technical founder) in two separate startups and transitioned to #2 “Visionary” as I backfilled my team in my last personal startup. Note I define “personal startup” as one where you personally made payroll! I’ve never been chuted-in but I have CTO friends who have had the “pleasure”. My style is probably 70% Visionary and 30% Technical. That doesn’t make me any less of an ass at times but more likely an ass at different times.

Now, there must be something “CTO” in the water; Fred Wilson posted “What to say to a room full of CTOs“. I like a lot of it and I agree that in a small company (< 30 people), the most effective CTOs are ones that can manage dev and drive the technical vision. Several paragraphs jumped out at me because they resonated with me and because they brought back some painful lessons learned.

First this gem:

First and foremost, I see the CTO as a manager. Great managers are hard to find in any line of work. But managing developers is even harder. The better the developer the harder they are to manage. I assume its a bit like managing high maintenance entertainers. The best developers are artists who are often moody, are anarchists who have bursts of creativity and equally long periods of uselessness. They are strong willed people who will fight with their colleagues over anything and everything. The people who have mastered the art of managing these kinds of people are a rare breed and every great technology-based business needs one of them.

Amen brother! But you have to admit, managing developers is never a dull moment. Recently the guys I’m helping out with driving some education on Agile methods here in Waterloo managed to land Scott Ambler. Scott was an awesome presenter and I was in tears from laughter due to his presentation more then once. Note to data management people: if you’ve been booked into a meeting with Scott, I’d find a reason to bail. I’m telling you this as a friend. Non-data management people, you might want to bring some popcorn and a comfy chair to the meeting. Ok I digress again, the reason I bring up Scott is that he had a great point about managing and incenting devs. To illustrate, he used the old herding cats analogy.

Herding cats is tough, if not impossible - if you don’t understand cats. You can send terse memos to your disobedient and non-complying felines but it won’t help a bit. But toss even the tiniest piece of fish in the direction you want your herd of cats to go and you’ll be pleasantly surprised. I think that’s the main reason why the Technical Founder CTO is most effective in early stage companies. They’re pretty much still a cat and they instinctively toss fish around to get the job done. Plus they’ve got the technical chops to be the alpha cat.

Hiring a Player/Manager:

I have found that for young companies a “player/manager” often works best. If you can find someone who is or has been a world class developer who also has the ability and more importantly desire to manage a team of at least ten developers, do it. That person, by virtue of their engineering talent and prowess, will be able to manage a small group effectively. And they can contribute to the development too which at crunch time is incredibly valuable.

Another total truth. I will never, ever, ever hire a development manager who cannot or will not code. Period. At least not at an early stage for precisely the reasons Fred cites above. My best VP Dev experience ever was a guy just like this, though he had prior experience with his own team — Tom Gross kicks ass.
And now the pain…

As companies get bigger, you really need a full time manager. The best ones, like all things in startups, have done it several times before in high growth startups. As Albert said in his post, it’s not usually a great idea to hire a CTO from a super big company for a young growth company. Companies growing from 10 engineers to 50 engineers to 100 engineers over a 2-3 year period are a unique situation and you really need someone who has lived that situation a few times. Again, it’s incredibly hard to find a person like that.

Hells yes. I lived through rapid growth and totally screwed it up. My “cats” were fighting. Code was not happening and we were completely consumed by it. Eventually you figure out what works and what doesn’t . You start to see patterns in your developer types and you figure out what “fish” works and what “fish” stinks.

Hmmmn note to self: “Developer Handbook” is the new black and the next blog post.

If this is your perception of Agile…

And if you’re in the Waterloo, Ontario area, you might want to come out to a Communitech Event on Dec 17.

Are your software projects:
Defect free?  Yes ? No
On-time?  Yes ? No
Under budget?  Yes ? No
Thrilling your users?  Yes ? No

If you answered Yes to all the above questions then congratulations, read no further. If you answered No to one or more then read on.

Since Agile was first introduced in 2001 it has taken the industry by storm. Recent surveys in Dr. Dobb’s Journal (www.ddj.com) have shown that Agile approaches are being adopted in 69% of organizations in North America and that Agile enjoys a significantly higher success rate than traditional projects. In this presentation Scott Ambler will describe what Agile is, address some of the myths that you may have heard, and discuss how Agile will affect your approach to software development. He’ll go beyond the Agile rhetoric surrounding programming and describe how project management, database development, documentation, modeling, user experience, and quality assurance activities are addressed by Agile teams.
Please join us for a complimentary afternoon seminar with Scott Ambler. Scott W. Ambler is the Practice Leader Agile Development at IBM Corporation. Scott is an award-winning author of several books, including books focused on the Unified Process, agile software development, the Unified Modeling language, and CMM-based development. Scott is a regular speaker at international IT conferences and is a contributing editor with Dr. Dobb’s Journal. Scott led the development of several software processes, including Agile Modeling (AM), Agile Data (AD), Enterprise Unified Process (EUP), and Agile Unified Process (AUP) methodologies.

This seminar is produced by eLead.Inc in collaboration with Communitech

You can register here. For free (as in beer)!

The Agile series was pulled together by local Agile mavens Declan Whelan of DP Whelan and Associates and Jeff Berardine of Innosphere with support from Communitech. I helped a bit but not nearly enough — sorry guys!

If you’re practicing Agile and love it, or if you’ve tried an Agile method and hated it, or if you’re just Agile curious please come out and join in the discussion. Heck just come out and hear Scott Ambler.

This afternoon Mark Slee of Facebook made it semi-official: it is Facebook’s intention to place Thrift into the Apache incubator.

For those of you not familiar with Thrift, I’ll quote Mark:

it’s a lightweight system for cross-language programming using code-generation, RPC, and object serialization. It’s designed first and foremost to provide high performance in real-time environments (i.e. Facebook’s backend, no surprises there).

We’ve been experimenting with Thrift a bit and it’s pretty cool. Some interesting parties playing with Thrift like Powerset and the Persai guys. Not to mention it powers Facebook. As a result, it is worth some experimentation. I have a draft posting of  building Thrift on OS X which is a little bit of an adventure. I’ll post it once it will actually be useful to anyone.

The real reason I’m excited about Thrift heading to Apache is that it’s the basis of what I think is possibly the coolest technology around right now — Thrudb. Thrudb is a framework for document oriented database services and is the brainchild of Jake Luciani of 3rd Rail. You can see Thrudb in action at JunkDepot. Jake has a nice write up on Thrudb on the 3rd Rail blog.

Check it out for yourself and thanks and kudos to Jake.

November 8th, 2007Test Test Revolution

Agile PracticesThis morning I participated in an Agile Software Development panel. It was early but even through my fog of only a couple (as in 2) hours of sleep, I think some interesting thoughts and comments surfaced.

One thing that struck me was the discussion about the role of software testing within Agile practices. ‘Typically’ you’d want your testers living side by side with your developers. Even better, you’d want them working with the Product Owner to verify that the story was implemented satisfactorily. There was some discussion/disagreement about the scope that Test Drive Development can realistically cover and the need for formalized acceptance testing. A few people chimed in that although software development practices have evolved, testing/QA/SV practices have failed to keep up to the pace of change.

Around this point, Paul Carvalho (a former senior tester of mine), theorized that we needed to get testers more comfortable with Agile practices like Exploratory Testing (ET) and even more importantly, developers needed to be comfortable with ET. My experience has been that developers’ initial reaction (mine included) to ET is pretty similar to  management’s first reaction to Agile. And while Paul eventually won me over with ET, I would’ve loved the kind comfort of a test plan in the early days.

Paul feels we can overcome the resistance to change through discussion and education but I’m curious -  is Exploratory Testing testing the Agile testing method of choice? What resistance have people felt to implementing Exploratory Testing?

Yesterday or maybe a couple of days ago (I’m temporally challenged) Dave Winer tweeted:

programmers are supposed to be too virtuous to want to be paid. a bunch of hooey. i don’t think programmers started that rumor! :-)

Peter Paul Rubens. The Champion of Virtue (Mars), Crowned by the Goddess of Victory.Amen brother! It was weird to read that from Dave, it was somewhat unrelated to the rest of his Twitter stream. Even weirder is that over the course of the days (hey I already said I was temporally challenged) several people brought up the issue of the virtuous startup. You know the old: do good things and the money will follow. Hmmn maybe Dave Winer has one those “world consciousness machines“; he does have an early iPhone.

Well I’m here to tell ya it ain’t the case. If you’re building a startup and you’re not sweating the revenue model and just “doing good stuff” you don’t have a business — you have a hobby and probably an expensive one at that. Trust me I’ve had a hobby.

Revenue isn’t the devil. Revenue lets you do good stuff. Revenue lets you hire “good” people, develop even more “good” products, hire more “good” people (if you need them) and most importantly continue to make your customers happy and the world a better place.

If someone tries to tell you something different, ask them why they hate you.


© 2007 Buzz Pressure | iKon Wordpress Theme by TextNData | Powered by Wordpress | rakCha web directory