Monthly Archives: September 2011

Multi-Monitor for Cheapskates

The Kensington Universal Multi-Display (USB) Adapter is a good alternative to getting a whole new graphics card, but my installation of it wasn’t without peril.

When I arrived last month, Northwest Cadence provided me with a Dell pLatitude and a very nice ViewSonic widescreen HD LED monitor.  My officemate brought in his own Dell dock and a second (huge) external monitor for a total of three displays.  I hate to be outdone, and it just so happened that a surplus monitor found its way onto my desk, so I set about trying to get it configured for a wraparound display experience.

At first, because I’m completely dumb, I assumed I could just pick up a splitter cable, plug both monitors in, and call it good, because that’s how all the workstations at my former employer have worked for as long as I can remember (desktop machine, 2 monitors, splitter cable, magic).  Steven pointed out that this would only duplicate the same display on both external monitors, not extend it as I obviously wanted.  I didn’t believe him, so checked with Google/Amazon.  Ugh.  I don’t mind when other people are right… as long as I agreed with them to begin with.

$3 splitter cable option == fail.

Next, Steven offered me a couple of different Matrox adapters, a TripleHead2Go and a DualHead2Go, that we had sitting around the office already.  These are very fine products and do what they say on the tin.  However, and a hearty thank-you to Matrox for documenting this so well on their site and saving me a bunch of time, they require that both external monitors have identical screen resolution/ratio.  Otherwise they default to the worser one.  (It’s because they simulate an extended display by tricking Windows into thinking the two monitors are just one really really wide screen.)  My scrounged extra monitor wasn’t nearly as nice as my new official monitor, and it’s just morally wrong to display 1680×1050 on a monitor that’ll do 1920×1080.

Already-paid-for Matrox adapters, for my purposes == fail.

My laptop has a variety of ports out, including an HDMI, so Steven ordered me an HDMI-to-DVI cable and I plugged it in (alongside the other monitor using VGA) with high hopes.  No worky.  When I finally located and dug into the nVidia control panel, it was pleasant and clear in its documentation that my laptop’s graphics card would support either VGA out to an external monitor or TV out via HDMI port, but not both at the same time.  One external display out, not two.

$12 HDMI-to-DVI cable == fail.

At this point, most sensible geeks just install another graphics card.  But I haven’t been a consultant very long, so I haven’t yet learned to think of my time as money, so I was determined to find a “less-expensive”/less-invasive option.  (I’m perfectly capable of taking a laptop apart and reassembling it, but this is my only work machine and that’s a whole ‘nother kind of downtime, that I can’t afford.)  Also, it felt like giving up.

New graphics card in laptop == deferred.

My colleague Martin has, on his laptop, a super-cool 1G graphics card and a DisplayPort. We argued for a while about whether my DisplayPort would work along with the VGA without a new graphics card (he was certain it would) or whether it would go the way of the HDMI (my position).  I conclusively won this argument when we discovered I don’t have a DisplayPort. (The thing on my laptop that I thought was it is actually an eSATA port.)

DisplayPort, for my purposes == fail.

Steven offered to order me a Dell dock like my officemate’s, which I don’t even know how much those cost, but by this time I was on the hunt for a cleverer solution.  I hope docks are expensive.

Dell dock == deferred.

On Amazon, I discovered an intriguing gadget.  SPOILER ALERT: the word “gadget” should make it clear to you how this story will end.

The Kensington Universal Multi-Display Adapter seemed like the perfect solution. Relatively cheap ($56), USB, and more than 100 reviewers almost unanimously agreed it was quick and painless to install.  I read the description lots of times to be sure it met my two acceptance criteria: extends the display to an additional monitor regardless of graphics card capability, and supports monitors of differing resolutions.  Additional coolness included ability to hub up to 6 of them (!) and a general consensus that the video quality doesn’t degrade through the adapter.  Sold!  Santa Steven kindly ordered me one.

And then, it arrived!

And then, I attempted the install.

OK, let’s be honest here.  When an installer tells you to shut down all other running programs, who really does that?  Right?  It’s 2011 and besides, I’ve ignored that warning lots of times before and it’s been fine.  Until this time, when I forgot about DisplayFusion (a multi-monitor wallpaper and windowing utility) and left it running while attempting to install display drivers.

Pro tip: don’t do that.

For my trouble I got a Blue Screen of Death and a bunch of missing/corrupted graphics drivers when the machine came back up.

Since I’ve already gone on long enough and I think I’ve been cute and funny enough for one blog post, I’ll skip the entertaining saga of the entire next week and go directly to the end where, just as I promised my colleagues I would do, I finally got everything working!

Windows 7 boot, after things went badly wrong:

  • Uninstalled the failed DisplayLink drivers
  • Uninstalled DisplayFusion entirely just to be safe
  • Reinstalled nVidia drivers
  • Rebooted a bunch of times
  • Installed latest DisplayLink driver from DisplayLink website per Kensington support person’s recommendation
  • Skipped the Kensington install CD and just plugged in the USB adapter which promptly installed its own proper drivers
  • Rebooted more
  • Success!
  • P.S. Reinstalled DisplayFusion, which works fine

Windows Server 2008 R2 boot:

  • Uninstalled DisplayFusion entirely just to be safe
  • Attempted the Kensington install CD, which failed saying DisplayLink couldn’t be installed on Server and referring me to DisplayLink website; DisplayLink website gives no indication that Server is supported
  • Downloaded latest DisplayLink driver anyway, what could go wrong?
  • With trepidation, rebooted after apparently-successful DisplayLink install
  • Plugged in the USB display adapter which promptly installed its own proper drivers
  • Success!
  • P.S. Reinstalled DisplayFusion, which works fine
My three monitors

Victory looks like this: panoramic, with a single image spanned as wallpaper (photo by me)

Update, November 2011: Occasionally—not every time, but often enough to be irritating—when I try to view a video on the Windows 7 boot, it bluescreens.  Doesn’t matter which monitor the video is on, doesn’t matter if any external monitors are even in use.  Investigation forthcoming.

How Flexible Should an Agile Team Be?

There are different tricks to balance skill sets on a team for long-term performance.  Relying on pure “generalists” isn’t the only option.  (Some folks think Scrum demands this, but it doesn’t.)

In a recent blog post my colleague Steven asks the question, “Do Teams of Cross Functional Individuals Hide Dysfunctions?”  This grows out of some conversations we’ve had around the office about the intended meaning of “cross-functional” and whether it’s a virtue or a vice.

When I joined Northwest Cadence, which as we’ve established was not so long ago, I found earlier training materials referring to the need for “generalists” in Scrum, and some diagrams showing how team members might shift to other types of tasks during a Sprint.  But since my formal training in Scrum has been more recently, I recalled that the Scrum Guide calls for the team to be “cross-functional, with all of the skills as a team necessary to create a product Increment” (emphasis mine).  As I read it, this means the Development Team should have all the skill sets represented that it needs to complete the work of the Sprint, but it doesn’t say a thing about every team member needing to possess every needed skill, or even multiple needed skills.  (What if what the Development Team really needs in a Sprint is a specialist?)

Anyway, around the office we’ve started making the semantic distinction between “cross-functional individuals” (generalists) and “cross-functional teams” (generalists or specialists or a combination of both who provide in aggregate the needed mix of skills).

In our Scrum vs. Kanban Smackdown on Friday, Steven and I dug into the issue a bit more, and he mentioned that while single cross-functional individuals are less productive than specialists, he found it curious that the opposite is true in teams: teams of cross-functional individuals are more productive than teams of specialists.  (Source: Capers Jones, Applied Software Measurement.)

Fantastic Four's Mr. Fantastic, a.k.a. Stretch

It seems to me that there’s a delicate balance to be achieved between focus (preventing context-switching) and flexibility.

Particularly in Scrum, it’s critical to have a cohesive team, and one of the strengths in Scrum is that the team learns to work together more efficiently over time.  A Scrum team’s membership should strive to stay stable.  But given that the Product Backlog and the Sprint Backlog’s contents are variable, how can the team maintain a stable membership while ensuring it has all necessary skill sets for any work that may be thrown at it?

In Kanban, of course there’s no prescribed process: the first step is to visualize the existing flow of work, identify bottlenecks, and then address bottlenecks to promote flow. Again the question is, how should the team address them, especially over time as a variety of development items enters the work stream?

I think there’s no simple answer, but I have a few ideas, and I think they’re potentially equally applicable to Scrum and Kanban.

  • Swap Out Team Members.  I think this is a non-solution for both Scrum and Kanban.  If we weren’t trying to build more effective teams, we wouldn’t be here, right?
  • Balance the Backlog.  Items in the backlog or queue should already be right-sized and should represent standalone stakeholder value.  If the team works from a consistent Definition of Done, then it should be possible to figure out what skills are needed to deliver a particular item – and to break down an item if any stage of its delivery is too big for the team’s capacity.  However, this won’t always be perfectly possible: for example, some features may lend themselves to more test automation, while others demand more manual test, and these call for different skill sets on the team.
  • Negotiate.  In Scrum, the Product Owner and the Development Team work together to select the Sprint Backlog and they don’t always have to select the stakeholders’ highest priority items.  If it makes sense, they can pull a different mix of items into the Sprint to keep the workload balanced to the team’s capacity. Similarly, a Kanban team can pull new work into the work stream for any reason at all, and can choose to pull items that balance better with work already underway. However, this must not be used to mask dysfunction, especially because it risks taking the team too far afield of the stakeholders’ priorities.
  • T-Skills.  Team members who have needed depth in a few areas, but breadth and willingness to help out in others (“T”), can give the team the flexibility it needs to accommodate shifting Work In Process loads.  I think this is what most people really mean when they say “generalists”.  This can be effective when role-based bottlenecks are occasional and temporary.  However, this must not be used to mask dysfunction; if team morale is affected or the team resists seemingly reasonable calls to “swarm”, that’s an indication that their willingness to flex is being overused or abused.
  • Expose the Pain.  If the team’s skill sets are out of whack due to external constraints, it may be to the team’s advantage not to solve or compensate for this problem.  Instead, making the effects of the imbalance transparent to decision-makers and stakeholders may be what’s necessary to get a real lasting fix.
The Incredibles

Elastigirl rocks, but she still values her team.

In all cases, the entire team needs to be involved in and accountable for the solution, and as you see from some of the ideas above, the solution may need to start well before the work hits the dev/test phases of the team’s process.

WWKD?

My Scrum knowledge was out-of-date.  The new Scrum guidance is streamlined to essentials and I like that.

Last Friday I was privileged to serve as a guinea pig for my colleague Martin‘s Professional Scrum Master course.  The afternoon prior, he asked me and my colleague/classmate James to read the Scrum Guide and take the Scrum Open Assessment, specifying that we should score at least 75% on the assessment to show our readiness for the level of the course.  James did exactly as asked, posted a fine passing score, and thoughtfully generated this blog post which instantly became the most-viewed in Northwest Cadence blogging history.  Meanwhile, I flunked the assessment and wrote a blog post about how my new USB adapter has googly eyes.

Not the best student, me.

On Friday it was time to double down, literally.  As a practice run, Martin condensed the two-day course into one long day.  With only the three of us, we had lots of opportunity for discussion and debate as we worked through the PSM material.  Martin’s insights, having used this stuff in the real world, are invaluable too.

Mid-morning, our new social media guru Laura asked us to live-Tweet or Facebook our thoughts about the course… a request she may swiftly have come to regret, as we were feeling feisty and immediately began Tweeting helpful suggestions such as marketing “WWKD?” beaded bracelets.  (Hmm… chicken & pig Bandz!  Calling patent office…)

At the end of the day, we took me up on my (frankly self-defensive) suggestion to use our prior scores as a baseline and take the Open Assessment again to see how Martin’s teaching had helped us to improve.  Both of us had higher scores, but if mine is to be believed, Martin’s definitely the best Scrum instructor out there:

My score on the assessment, after a great class

Didn't just ace it... did so in 4 minutes, 49 seconds

No, I didn’t cheat.  Yes, I’m kind of one of those annoying good-test-takers.  (Which, as with SAT and the like, should not be confused with “knows the subject matter any better than a non-test-taker”.)

But let’s get serious for a moment.  The questions that tripped me up the first time were, in fact, meaty and interesting.  Scrum has evolved and simplified in recent years.  Before joining Northwest Cadence, I spent nearly three years on a reasonably effective Scrum-but team (which I guess really does make me a Scrum-but Master), and as I spent the day learning new insights about the Product Owner role and its responsibilities, the Scrum Master role and its limitations, I recognized so many nifty little practices – some we used, some I wish we’d used – that either solved or might have solved real issues we faced in the wild.

My favorite part, by far, is the way in which well-defined roles in Scrum empower the development team.  Martin recently posted about the Rolled Up Newspaper Method of bringing developers around to Scrum.  I understand it makes me a filthy tree-hugging hippie, but I don’t believe in the rolled-up newspaper for dogs or developers.

As it happens, I train my dog at Ahimsa in Seattle, an amazing place with fantastic results, run by a rock star genius mathematician who left academia to train dogs and their owners to get great results using positive methods that empower the dog.  Hmm!

(Those who know how much I adore my dog, and how much I adore my former development team, won’t blink at the comparison of developers to dogs.  Also, Martin started it.)

My lovely little dog, peeing outside like he is supposed to

Dogs, like developers, can be trained to pee outside using exclusively positive methods.

For at least the last three years, I’ve said that if developers understood how much Agile, and specifically Scrum, helps them with problems they care about, they’d demand it. That’s exactly what I did, although I understand that as a “developer” I’m a bit of an odd duck.  (Odd pig?)

Anyway, here are a couple of specifics I find intriguing:

  • I like the way the Product Owner has absolute control over the Product Backlog and its sequencing.  I like how “prioritization” has been changed to “ordering” to emphasize that it isn’t just the stakeholders’ priority or preference that drives the sequence: any number of other criteria may be used, and the Development Team is free to negotiate with the Product Owner on this matter.  The Product Owner is accountable to the stakeholders for satisfactory results, let’s say for delivering value, but the stakeholders don’t control the details of how this is accomplished.  I like how this gives the Development Team opportunities, e.g., to propose knocking out valuable low-hanging fruit, or to request re-sequencing to smooth out architectural or infrastructure dependencies.  A strong, positive relationship between the Product Owner and the Development Team (and the stakeholders) will yield great results and a better quality of life for developers.
  • I like how the Scrum Master’s job is to get the hell out of the Development Team’s way.  I like the emphasis on Servant Leadership in this role.  Over and over again, Scrum training questions and scenarios beat this point into the student’s head: the Scrum Master doesn’t solve problems or make decisions.  The Scrum Master only preserves the Development Team’s autonomy and provides them with any structural assistance needed for them to solve the problems or make the decisions themselves.  This is exactly what we devs say we want – hire us to write great code, then leave us alone while we do it.

On my former team, I was simultaneously Scrum-but Master and Technical Lead.  This was ill-advised for at least two reasons: Dev Team members shouldn’t have titles, and my combo-role seems like a conflict of interest.  But looking back on it, I can see the beginnings of some really nice practices: as Lead, I had the opportunity to participate directly in Product Backlog grooming throughout each Sprint, giving the team’s technical feedback on complexity, dependencies, and quick wins.  Two successive Product Owners were great to work with and did a great job of synthesizing technical recommendations with our stakeholders’ priorities – no small feat, considering how stakeholders proliferate and conflict with each other in higher ed.  Even struggling with Scrum-but, we did some amazing things as a team and delivered some really cool software in the federal compliance space.

  • I like the way Scrum is a framework, within which the Scrum Team has total freedom to write PBIs, decompose requirements, and develop, test and deliver software in whatever way works for them.  It doesn’t prescribe the SDLC: it fosters an environment in which an SDLC can happen reliably, because they can adapt and grow one that works well for them.  In this sense I’m seeing similarities to Kanban but with a lot more structure.  I don’t mind structure and neither do developers generally, if it’s a good one!

I came to Northwest Cadence expecting to be a defender of Scrum-but, which might yet occur, but for the moment I’m really fascinated by the framework itself, straight up.  I’m excited to dig in and put my public-sector experience to work with a more diverse clientele. I have some cool things I can teach already, but test scores notwithstanding, I also have a lot to learn.

Look for me to test and grow these Scrummy ideas in our upcoming public events!  I haven’t heard back yet on my idea for a bracelet giveaway…

Vertigo-inducing new ALM initiatives!

I designed and am delivering a new free webcast series about Application Lifecycle Management specially for the public sector.

Let’s just say the pace of change at my previous employer… well…

Glacier in Greenland

... thanks to the economy, state projects are slow like this and also shrinking like this...

Learning the culture at a small business with 10 employees plus myself is breathtaking by comparison.

After just a couple of weeks ramping up on Visual Studio tools and ALM, Northwest Cadence is cheerfully throwing me into the deep end with my own series of free webcasts on Application Lifecycle Management, targeted at the public sector!

When I say “my own”, I mean they’ve left it to me to select the content, write the curriculum and deliver the presentations monthly.  Here’s what I’ve come up with so far:

Application Lifecycle Management in the Public Sector
Introduction to Agile
Testing and Quality Best Practices
Data Management, Security, and Risk Management

All of these are customized versions of content from our general-audience ALM and Coffee Talk serieses.  Or rather, they will be.  I haven’t exactly written them yet.  If you’re in the public sector (federal, state, local, K12, higher ed) and you’d like to see me cover specific topics or questions, now’s your chance to let me know and I’ll try to work them in!

Finally, the first sessions are scheduled for September 30 and October 28.  For section abstracts and to register, go here:

nwcadence.com/PublicSectorALMTraining

I’m not sure whether Northwest Cadence had an inkling of these public sector sessions before I started working here, or if they cooked them up during my first week — I’m learning that both are plausible — but that’s not even all.  Based on clever ideas or even witticisms I’ve thrown around since I arrived, I’ve got one new Coffee Talk session and a whole ‘nother major initiative in the works, announcements forthcoming.

Poster from the Hitchcock film

Like this.

This place gives me a head-spinning degree of responsiveness, acknowledgement, respect, and freedom-to-fail that I’m still trying to get used to.  To put it another way, every time I open my mouth about something I think is clever, I earn myself new responsibilities, and that’s so unexpected that I haven’t learned how to filter yet.  I’m kinda hoping I never do.  :)

It’s the little things. Little, tentacled things.

I have a new job, and this new blog.  I like both.

It’s the third week of my new position here at Northwest Cadence.  I’m an ALM Consultant, which means all the process- and tools-related nagging I did for years at my previous employer is what I get paid to do now.  On purpose.  Here’s hoping NWC will continue to think that was a good idea.

My colleague Martin has been exhorting me to blog since before I actually started.  See, here, blogging earned a prominent place on my personal office Kanban board…

"Blog" to-do item on my Kanban board

Behold, the power of a Big Visible Display.

… where, as with many Kanban boards in my acquaintance, it didn’t move for a while and didn’t bring about transformative change solely by being stuck there.  Disappointing.

Martin encouraged me to blog about my workday experiences.  He does this and manages to make it awesomely interesting and useful.  I think it’s a good approach.  He has the advantage that writing about his workday experiences (for clients) is part of his current job and he can adapt billable material for use in blogs (that’s what makes it interesting and useful).  Not true for me yet.  Writing is overhead.  (Me writing is like double secret overhead, because I still overthink it so much.)

So, until I have a chance to settle into an everyday voice, please enjoy this example of something that is certain to be another regular feature of my blog: whimsy.

I requested a cheap USB hub for my desktop and mentioned that the “squid” hubs are most convenient to use.  Amanda showed up today with this…

Octopus 4-port USB hub

"... I took you literally about the squid. I hope that's OK."

It has googly eyes and a red indicator light on the top of its adorable little head.  The instructions that came with it are even more awesome:

Instructions for use of the hub, written by someone whose first language is not English.

"... this time the Octopus of four USB connections have transmission data function."

I keep finding little reasons to love it here: a pile of brightly colored Post-Its and a sharp Sharpie; Diet Dr. Pepper from Costco in the fridge; a small-business DIY attitude about everything.  Bottom line, when someone who’s known me a short time understands that Octopus of Four USB Connections is exactly what I want, it seems clear I’ve found a great place to be.

Blog work item now in the In-Progress column on Kanban board

What, you can't tell that it's moved? Clearly "in progress" now!