Archive for the ‘Humor’ category

What’s a Manager to Do? Management’s Role in Scrum Organizations, Part III

March 15th, 2010

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #3: The Buck Starts Here.

For all the happy talk about mission, values, and meaningful work, the ultimate metrics for business are financial.  Our inability to grow, make profits, secure new investors, etc., will ultimately end our ability to accomplish our missions, support our values, or provide work to our employees and worse yet, ours bosses. That’s the bad news.

The good news is that we managers can use money (or their engineering equivalents, people) to accomplish great things.  Which things we choose to accomplish is largely up to us.

No, that doesn’t mean we want to create our own user stories, and reprioritize the backlog to meet the requirements communicated to us in our sleep by our deceased pet snake.  That’s the product owner’s job.

The Scrum process, like its Lean predecessors, is based on incremental improvement.  That’s great for two reasons: first the changes are small enough that we can get them done and see the results before the environment has changed, and second because they are small enough in scope that the individuals in development or product management can understand and control them.

We managers have to see the bigger picture, and that generally means determining the funding level for each of the initiatives we have.  Adding people to a team will eventually, not withstanding our bad management, increase its velocity.  Pulling people off will generally do the opposite (although not as quickly as you might think …….).

The optimization problem for the overall success of the organization involves lots of variables, but that’s really why they pay us the big bucks.  Is this group servicing a stable and productive customer, while this other group is struggling to overcome a mountain of technical debt?  Are competitors starting to emerge for what has been a stable area? Has this project achieved most of its goals? Is it time to determine what should be the next big initiative?

The purely business and marketing side of the equation is usually an area of influence, not control, for the development manager.  But the assignment of resources to projects is the execution of that strategy, and requires management comprehension and “buy-in.” For those of you uncertain, the term “buy-in” refers to agreeing to do something you’d really rather not do at the risk of losing your job.  It’s been around a long time, but has flourished in the recession.

On the technical side, there are important funding issues to consider.  One of the biggest is the effect of architecture on the overall success of projects.  Studies have demonstrated that one of the biggest factors in ROI for IT initiatives is the quality of the underlying architecture.  Should you add features to your Windows XP app, re-write it to run on an i-Phone, or re-write it to run within your CRM system?  Big questions with lots of impact both in the short term or long term.

Conclusions

Senior engineering management is a tough job with many tasks and responsibilities, too numerous to list here, but including team dynamics, people management, strategic funding decisions, and golf at expensive resorts.  Middle management has similar responsibilities, without the golf.

Great organizations are rarely the product of good luck.  Great leadership recruits the right people, puts them in the right roles, identifies problems and fixes them, and looks ahead at trends to make sure resources are assigned to the right places.

In Scrum, this doesn’t require a lot of managers, but does require of lot from managers.  Empowering managers to act, and ensuring that they do, is critical to the long-term success of your Agile organization.

What’s a Manager to Do? Management’s Role in Scrum Organizations, Part II

March 12th, 2010

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #2: PURE – Previously Undiagnosed Recruiting Errors

My old boss used to tell me there were three kinds of programmers.  Those smart enough to do the job, those too stupid to do the job, and those that could do the job but don’t care to.  Well, that’s not exactly the words he used, but this is a family blog.

None of us is the perfect recruiter, and every once in a while people get through the screening process that we’d rather have work for Al Qaida.

The incompetent developer (which we managers code name “moron”) is not always the one who takes the longest to do a story.  If some developers generally take longer than average to complete a story, they may be “slow” (as my grandmother would have put it) or the estimates may be dominated by optimists.  Until you’re measuring the amount of rework created by bugs found in QA (and the field), you really won’t know.

That doesn’t mean you don’t have to take action: managers have been acting on intuition since the Donner party decided to try the Sierra Nevadas in the winter of 1846.  Sometimes it’s better to eat the mule than have the whole group starve.

As engineers we tend to focus on technical proficiency, but there are some things which are hard to judge in an interview.  Like whether a developer has good judgment of when to refactor and when to patch.  Or whether a developer can embrace process changes or will struggle for weeks with the changes.  Or whether a developer has that certain combination of personality traits that make their coworkers doodle pictures of poisons, weapons and torture devices.

Now finding the sociopath may be more difficult than you think, because they’ve cleverly chosen to hide out amongst programmers, most of whom act as though still carrying scars from middle-school.  Like a submerged rock in the river, sometimes they can best be detected by the havoc they leave in their wake.

Developers generally treat managers using the same rules the Mafia use with the DA: no matter how much we loath our co-workers, we’re not going to rat them out.  One-on-one meetings with group members can give some indication of problems.  A few tactful questions at retrospectives may give some clues to underlying issues that aren’t being discussed.

Try inviting the group to try a little pair-programming and see what pairs get put together, and who threatens to quit.

Finally, the toughest people management issues are when good performers drop off.  Often this is a temporary fluctuation which just requires some coaching: do they need some customer visits to increase motivation, maybe a chance to learn some new technology they can apply, or sometimes there is a transient personal problem that just needs a little extra time.

Often, establishing expectations with people of what needs to be improved and then giving them a little time to do so is just the right prescription.  They may need mid-course correction and coaching to improve.  They might just need a supportive shoulder, or a swift kick in the pants, but the combination of communicating the issue, establishing higher expectations, and providing support is a good combination for improving performance.

Unfortunately, persistent decreases in performance are usually like that oil leak under your car every morning: they indicate there’s more going wrong than you thought, they’re probably going to get worse, and if untreated the future isn’t going to be pretty.

The most common mistake I see in my conversations with engineering management is the “conflict avoider.”  We’ve all made excuses about how long we need to wait to see if the situation can improve, how hard it is to find new talent, how much training time and ramp-up it is going to take to get a replacement up and productive.  And don’t forget the ‘ole disempowering “I can’t make a change in the middle of the project!”

These are just excuses. We owe it to both the team and the company to accept our mistakes, make the changes, and get on with building a better future.  That’s what we get paid to do.

What's a Manager to Do? Management's Role in Scrum Organizations, Part I

March 4th, 2010

I love the concept of self-managing teams.  Everyone figures out what needs to be done, and does their best to make the greater organization successful.  Beautiful.  Reminds me of the Shaker Village, the Russian Artel, or the Israeli Kibbutz.  All of which are (largely) extinct today.

There are three structural problems that, like termites behind the wallpaper in a French Quarter house, cause these “worker’s paradises” to fail.  Our job, as managers of the Innovation Engine, are to sniff ‘em out, expose them, and exterminate them.

Problem #1: “No, you can’t have a BB gun until you’re older.”

Scrum was the solution to product and project managers trying to both predict the future and over-control senior development talent.  Take away the control freak, and we can all let our hair down. We can do what we always knew was right.

Unfortunately, it’s hard to keep a team like that together forever.  The world is a fast changing place, people leave, new people are hired, some are inexperienced, and some good people become more interested in keeping their teenager off drugs than in completing user stories in your ERP system.

Can’t say I blame them, but this isn’t a welfare agency here, and we’ve got to get work done.

Teams, like individuals, have different levels of motivation and different levels of competence.

Let’s imagine that you’d never been on a sailboat before, but decided to try a cruise in the Caribbean aboard a 63’ Sloop (whatever that is).  I’ll bet you’re expecting the captain to train you to do some pretty straightforward tasks, and make sure they’re done correctly.

How’d you feel if the captain shook your hand and walked off onto the pier?

Some years ago, before the One Minute Manager had made him too rich to worry about such things, Ken Blanchard realized that there were different management styles appropriate for different situations.  He (and Hersey) created the Situational Leadership model to map effective leadership styles to different situations.  The most effective leadership style for a group of people who are Capable + Motivated to complete a task is delegatory: set up the process and let them turn the crank.  Sounds like Scrum!

Now not every team gets to work on Avatar.  Somebody’s got to fix that potato peeler code running on the mainframe, and that somebody just might be you.  If you’ve got a team of people who feel like they only get the projects no one else will take, who don’t have a lot of experience with the code and think it’s pretty badly written, and maybe haven’t been out of college long enough to have the wonderful motivation of monthly mortgage payments, that “hands off” style won’t get a lot of productivity.

This comes under the general heading of “coaching”, and some of us are better at it than others.  If you couldn’t figure out why your kids couldn’t learn to ride a bike while you were holding it, if you describe design ideas as “brain dead”, or if you think emailing a link to the manual is a substitute for training, then coaching might not be for you.

And coaching applies to team dynamics, too.  Sometimes the reason senior people didn’t go into management is because they have their own social challenges.  These senior types might not play well with others, and might need a little counseling, if not metal detectors, to keep the atmosphere professional.

Some philosophers think people are inherently good, and bad behaviour comes from social organization.  Some philosophers think people are inherently selfish and bad, and good behaviour comes from compliance with social organization.  My wife hasn’t told me what I think yet, but as managers we are responsible for making sure team members have the coaching and motivation to be successful.

Forks, Feuds, and Friends – The Unix Family Version Tree

April 25th, 2008

It’s Friday… so I dug up one of my all-time favorite web gems: The Unix Family Version Tree. Ever wonder when Unix started? Or the relationship between BSD and System V? Or how closely related Mac OSX is (or is not!) to Linux? Click the chart to see the full-size version.

Unix Family Tree

Here are some notable shortcuts: SystemV, Linux, BSD, HPUX, Solaris, MacOSX, GNU/Hurd, Plan 9, Atari Unix, iPhone OS, Windows OS.

Even for those new to Unix (out on the leaves of the tree!), this time-line has a wealth of interesting information showing the history and relationships of most unix varietals. It will also help explain the usability challenges of switching between divergent OS’ from navigating file-systems to loading drivers to managing hardware.

While this reference isn’t exactly about AccuRev or its software development process automation per-se, it’s a great example of how divergent software can grow over time and how tracking changes between active mainline and previous releases becomes really tricky — unless you have good tools (like AccuRev!).

/happy friday/ – dave

foo. bar. baz. ???

April 18th, 2008

Thank goodness it’s Friday.

This week I was creating a diagram and needed a few placeholder words. foo. bar. baz. The usual suspects. But I found myself needing a few more. I’ve used baq before as a 4th but wasn’t sure how ‘formal’ it was. Oddly enough, I can’t find a current reference to it! Egads. But I digress.

Wikipedia has a nice writeup of meta-syntactic variables and mashes some old-skool verbiage into a suggested “formal” list. Here is their list:

Wikipedia: A “standard list of metasyntactic variables used in syntax examples” is: foo, bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud.

From a distance, this list looks pretty interesting. Though, ‘foo’ probably works better than ‘thud’ in a formal presentation. In my opinion, this list breaks down. Why? Because only ‘fred’ can be typed with one hand (QWERTY) and the words are too terse! I may be biased as a left-hander, but ‘fred’ is the only word that can be typed by either hand in isolation! Otherwise, they are either too obtuse for presentation or frustratingly difficult to smoothly type… regardless of their pristine historical roots. Seriously, try typing “xyzzy”. Ugh. Would you label a diagram element as ‘plugh’? Useless, perhaps. Room for improvement? Indeed!

Do you have any suggestions for what could be used after ‘baz’?

/happy naming/ – dave

Top 10 Ways AccuRev Makes You Green

April 1st, 2008

Gartner claims that Green IT is a top strategic technology for 2008.  We thought you’d be interested in how AccuRev software is Green, even today.  

The Top 10 Ways AccuRev makes you Green

10. Cutting branches harms your source trees. Go green, use AccuRev streams

9. With AccuReplica, less travel is required

8. AccuRev runs on smaller servers (using less power)

7. AccuRev 4.6 is made from over 80% recycled AccuRev 4.5 code

6. There are no transportation costs for shipping AccuRev

5. A small amount of yellow can easily be added to the StreamBrowser

4. Less CO2 emitted by fewer required AccuRev administrators

3. With XP/Agile development using AccuRev, two developers share a PC

2. With on-time releases, there is more time to line-dry the wash

1. Developer productivity goes up, computers turn off earlier

Editor Learning Curves

March 7th, 2008

The importance of software tools can never be understated. For a developer, choosing the right text editor is a very important choice. Do you use notepad? pico? ed? nano? emacs? vim?

If you’re looking to swap editors or looking for an upgrade, maybe this picture can help. It’s one of my favorites.

Editor Learning Curves
<click image to enlarge>

If these don’t suit your need, maybe you should try editing source code with butterflies.

Editors for Real Programmers
<click image to enlarge>

/happy editing/ – dave

A Few Good AccuRevvers

February 14th, 2008

James from AccuRev: You want answers?

Tom the CC User: I think I’m entitled to them.

James from AccuRev: You want answers?!

Tom the CC User: I want the truth.

James from AccuRev: You can’t handle the truth! Tom, we live in a world that has complex software. And that software is going to be coded by men with computers. Who’s gonna do it? You? You, Tom with your CC? We at AccuRev have a greater responsibility than you can possibly fathom. You weep for CVS and you curse SVN. You have that luxury. You have the luxury of not knowing what we know: That the AccuRev SCM tool, while special and unique, probably saved jobs. And AccuRev’s existence, while grotesque and incomprehensible to you, saves jobs. You don’t want the truth. Because deep down, in places you don’t talk about at tradeshows, you want us for your source code. You need us for your source code. AccuRev uses words like Keep, Promote, Update…we use these words as the backbone to a life spent managing source code. You use ‘em as a punchline. We have neither the time nor the inclination to explain ourselves to a man who drinks coffee and programs under the blanket of the code management we provide, then questions the manner in which we provide it. We’d prefer you just send us a P.O. and went on your way. Otherwise, I suggest you pick up an IDE and start programming. Either way, I don’t give a damn what you think you’re entitled to.

James from AccuRev: Did you order something besides AccuRev?

Tom the CC User: I did the job that the IBM bigot made me do.

James from AccuRev: Did you order the CC?

Tom the CC User: You’re damn right I did!!!

James from AccuRev: All you did was weaken a company today, Tom. That’s all you did. You put software projects in danger. Sweet dreams, son.

scm h00dlums

January 25th, 2008

This week AccuRev had a booth at the Real-Time & Embedded Computing Conference (RTECC) in Santa Clara. The exhibition floor was crammed with circuitry, chips, resistors, PC boards, cables, and apparently the ‘cool’ thing was to have an RJ-45 or USB port directly mounted. The conference was a success as we met current customers, old friends, and folks new to AccuRev, especially firmware developers, who were intrigued with how streams could separate out levels of testing.SCM Humor

Now on to the humor…. Later that day I was leaving a parking lot and spotted a van with a unique marking on the side that was too good to be true. At first, from a distance, I was convinced that the van was the target of high-tech hoodlums from silicon valley. Turned out to be some large stickers.

But I can’t resist… If this were spray paint, the van would definitely have been TAGged!

/happy friday/ – dave

Force Testing

October 19th, 2007

There are a variety of testing methods: White Box. TDD. Mocks. Unit. Stress. Functional. Taste. Flight. Load. and more…

It’s Friday… Here’s my favorite test courtesy of Boeing… check out the 777 Wing Force Test.

/happy testing/ – dave