Posts

Showing posts with the label Leadership

Overcoming Team Dysfunctions: From Storming to Awesome

Image
Forming, storming, norming, performing, mourning -- the stages lof team formation .  I’ve experienced this natural progression a few times, transitioning from a group of strangers to a well-oiled machine – to friends. One team I worked on figured out a way to collect data and measure our journey from new to awesome.  We didn’t know about this standard team lifecycle when we started, but that didn’t mean we could avoid it.  In fact, as you’ll see in this essay, embracing the steps of team formation helped us move through the phases and become a highly efficient team that much faster.

Postmodern Software Architecture

"Postmodern Project Management," an article released in Defense AT&L in May of 2008, makes a convincing argument for why modern project management philosophy fails to help projects reach success [ 1 ]. As software architecture is largely a tool to facilitate communication and provide guidance for a project, it is not difficult to see parallels between current and emerging trends in software architecture with the idea of modernism vs. postmodernism project management practices. Tell me if these sentiments don't ring true for the upfront vs. emergent design approaches. Modernism is indeed an effective approach for a rational, static world where surprises are rare, measurements are precise, humans are tools, and our understanding of the system dynamics is very nearly complete. If the PM's world was linear and predictable, then Modernism would work just fine. But the reality is, reality is messier than that. Things change unexpectedly, surprises surprise us, people ...

Lessons from a Software Engineering Dojo

Image
[Here's a recap of the first talk I gave at XP2010 . Since it was a Lightning Talk, rather than posting slides I've summarized my talk and added references directly in this post. I welcome comments and discussion.] Craftsmanship is an interesting model for thinking about how to teach someone to become a great software engineer. Industry hasn't always done the best job taking advantage of this metaphor for enabling training and instruction. Sure, there's agile coaches and conferences like XP2010 where peers can collaborate, but rarely does an organization, a business, deliberately encourage and enable engineering growth for the software engineers they hire. As we learn how to build software we go through the three stages of craftsmanship .  For most of us, we are apprentices in university, taking courses and learning the basics of computer science and software development by imitating our professors and the books we read.  We are journeymen the first few years on...

2010: The Year I Make Contact

Late in the afternoon on December 25, during one of the loudest, howling winter storms I’ve ever experienced we lost power. Normally this wouldn’t be a big deal except I was in a vacation house with 20 other people, basically my wife’s entire extended family. After the power went out, the heat did not fire up. The tree went dark. So did the TV, DVD player, and Wii. Using a pair of LED headlamps my wife and I received for Christmas the 20 of us took turns rolling and stuffing homemade ravioli dough for dinner. Christmas ravioli making is extremely serious business and I had finally been promoted to “unmonitored ravioli stuffer” this year. Luckily we had manual pasta rollers to flatten the dough. There’s always talk of “upgrading” from the hand cranked system but this year, tradition trumped technology. Once ravioli are stuffed, they have to dry for a few hours before cooking. In the years past this was the time to play with new games or watch a new movie. Of course, withou...

Groupthink Kills Big Ideas

Image
It’s easy to convince a group of people to follow you when you’ve got a great idea that you’re passionate about. Passion is like a highly communicable virus, easily spreading from one host to another. Something funny happens, though once enough people are on board with an idea: new ideas become less infectious over time as if the group has built up antibodies against risk. It’s always unfortunate to see this happen since most organizations are initially brought together by an idea that was so risky and so contagious that everyone wanted to be a part of it. Eventually, if an organization is not careful, it becomes a place where Big Ideas go to die, a sort of idea graveyard. Kathy Sierra explains it best : Any time a new idea is brought to the table, especially a Big Idea, the group acts like white blood cells, attacking the Big Idea as if it were a foreign invader, reducing the idea to a benign and much less exciting version of itself. The end result is something that no o...

Relationships Matter

Building a great software product is only half the battle. The relationship the user builds with your software has the single greatest influence on how awesome that software is. Sorry. It’s not the language the software is written in. It’s not the algorithms. It’s not all the processes you used behind the scenes to create it. If the relationship sucks, your software sucks. Period. To prove this I’m going to use a tangentially-related personal experience that has absolutely nothing to do with software. In this case, it’s ok, because realistically, this bit of reflection actually has nothing to do with software – remember it’s about relationships. Let’s talk about two concerts I've seen this summer. Coldplay: “You’re Awesome!” I’ve heard Coldplay’s radio hits but I was never really a huge fan of the band. Had it not been for a friend’s invitation I would never have gone to this concert and I would have missed out on one of the best live shows I’ve seen. Acceptable radio hits be...

Applying Leadership Styles

The setting is a small library filled with various books on software engineering. Five people are sitting around a single, small table, the room overcrowded with the group. The Square Root team is reviewing the mid-semester presentation I threw together last night before we were to show it to our mentors in a few hours. I was showing the team the last slide. Up to that point everyone had pretty much agreed with the content in the presentation. "Does anyone have any other risks they’d like to bring up?" I asked, confident that, as the team leader, I had a firm grasp on how the team was doing and where our current problems lay. I waited a few seconds. "OK, if nobody’s got anything I’ll go ahead and email this out..." "Communication," the quietest member of the team chimed in. "We have problems with our team communication." I was in shock. Surely this must just be an isolated problem. "Do you mean team communication or do you m...