The supermodel of Victoria's Secret fame may be an unlikely source of software development wisdom; yet, design and project management issues scale from the runway to the IT department.
Consider Santino, the designer and BravoTV Project Runway contestant who looks like he stepped out of a Shakespearean festival. He has stayed in the running, challenge after challenge, ostensibly due to his natural talent. Yet, Heidi and the other judges admonish, "Santino, you over-design, over-think, and keep adding and adding..."
When challenged to design a costume for ice-skater Sasha Cohen, the designers were given very high-level requirements: it has to stretch, provide adequate coverage, and be lightweight, so it won’t interfere with jumps. Yet, Santino had visions of a Phoenix – a beautiful bird rising from the ashes – so his end-product was a contemporary rendition of Big Bird.
"I can’t skate in that," Sasha said, immediately dismissing his design.
"Santino didn't design for the client." Heidi shakes her head.
Sound familiar? How many times has a developer designed the application he or she wanted, instead of considering the needs of the target audience? While Santino spoils the clean lines of his original garment by pinning on flowers and feathers, developers add features (we like to call them "bells and whistles") in the tradition of "gold-plating."
Overdesigning can take other forms for software developers, especially those who are tempted to employ the most sophisticated coding tricks to demonstrate that they can, resulting in an application that is overly complex and difficult to support and maintain.
But Santino isn't the only designer who struggled on Project Runway. Several had trouble working within the constraints of a tight deadline. What good does it do to conceive a fabulous design if it's half-finished when it has to be presented to the client? Designers sewed dresses onto their models, advising them to move strategically so a sleeve wouldn't drop off in front of the judges. Developers demonstrate applications featuring pretty screens with little substance underneath (sometimes even hard-coding scripted demo-responses), hoping to buy some additional time. Under pressure, designers and developers alike show whether they can keep it together and make the best of a difficult situation, or fall into a state of panic, blaming coworkers, the ridiculous project assignment, the unrealistic deadline, the lack of adequate materials, or the faulty hardware (sewing machine/workstation).
Project Runway judges also chided participants for poor execution. Some contestants simply lacked fundamental skills to make a pattern or sew a straight seam. Garments hung askew, buckled, and gaped. How many software development projects begin with an elegant design but result in an end-product riddled with unhandled exceptions?
Yet some designers and developers are strong in almost every aspect...except when it comes to teamwork. The very qualities that demark individual talent often derail compromise and consensus. Egos or overbearing personalities can get in the way, driving other team members crazy, sidetracking focus, and threaten project outcome.
Perhaps the next craze will be reality television programming for geeks, where the world will watch in shock and awe as Edward Nilges struts his coding stuff against those brave enough to challenge him. (If my memory of his blog is correct, he'll be wearing something like tights and a blazer.) Until then, we can be reminded about the challenges of software development wherever we happen to look.