Why Is Software Development So Hard?: Page 2

(Page 2 of 2)

And, even if developers can adopt this “newbie blindness,” other project members may stymie their best efforts. The number of non-developers in any project is nearly uncountable: Usability experts, designers, executives, salespeople, the CEO’s mistress – anyone might have input.

“You’ve got all these layers of people,” Rosenberg says. “But the more layers you’ve got, the more opportunity you’ve got for miscommunication between them.”

A related aspect of the programmer’s personality plays a role. The really great achievements in programming are achievements in abstraction, Rosenberg says. “Great programmers tend to be really good at taking huge piles of specific details and finding patterns in them, and creating new abstractions that make it easier to deal with these details.”

software development, programmers

"Dreaming in Code" by Scott Rosenberg

The downside: sometimes the person who is really good at that is a bit of a dreamer, someone whose head is in the clouds. “Someone who is not terribly focused on day-to-day, mundane matters like, ‘Oh, the product is due next week.’ Or, ‘Oh, I’m still trying to figure out the most elegant algorithm for sorting this stuff.’”

Making Software and Making War: Similar Concepts

“There’s an interesting parallel between warfare and creating software – and not just that every project is a battle,” Rosenberg says.

He points to the American experience in the Iraq war, in which Saddam Hussein was quickly toppled – yet that didn’t mean the U.S.’s true goal was achieved.

“The military people could justifiably say they won the war,” Rosenberg notes. “But if you look at the original, great theorist of war, Carl von Clausewitz, in the 19th century he said, ‘War is politics by other means.’ The only importance in a war is achieving your goal – you need to know what your goal is, and not get obsessed with details.”

“So if you conquer another country but you haven’t achieved your goal, what was your goal?”

In the same vein, a programmer could be capable of dashing off thousands of lines of pristine code in short order. “But if it doesn’t do what you were setting out to do, what good does it do?”

To keep his eye on the goal, a developer must often filter out unimportant noise. That noise might be excess detail by fellow programmers or a dose of management anxiety, but true success involves deciding what’s important and what’s not, and coding accordingly (if management allows that sane of an approach).

The Programmer in Society

The popular image of the software developer has seen an upheaval as dramatic as the change from mainframes to client-server.

Until the mid '90s, programmers were viewed as hopeless techno-nerds, equipped with pocket protectors and the social skills of a suave seventh-grader. They were Chess Club refugees, fiddling with computers as their red-blooded classmates chased girls and played football. Bill Gates hews to this original stereotype; he became rich and famous yet remains a software geek.

But the rise of the Internet changed things. “First, it had a huge impact on everyone’s lives. It was something that people could see,” Rosenberg notes.

Software and More
Who Killed the Software Engineer? (Hint: It Happened in College)

When Just Enough Is Enough To Be Fired

The 2008 IT Salary Guide

Understanding Your 'Idiot' Manager

FREE Tech Newsletters

People understood that techno-wizards not only created the Net – envisioning this brave new world – they kept pushing it forward with imaginative, cool software. While the ex-football jock now managed the local QuickMart, the dorky programmers were making good money (in some cases very good money). Programmers were hip, if still somewhat odd.

More recently, a small clique of programmers has pushed the public perception of developers still further ahead by blogging. It makes a difference, Rosenberg says, “The number of programmers who started writing about their work, sometimes just for technical reference, but beyond that, writing about their lives, their experience, what it’s like to be a programmer.”

In particular, software experts like Joel Spolsky and Paul Graham have become highly visible commentators about the development process.

Their Web-based writing has “given programmers a chance to see, ‘Oh, there’s other people who are like me and have similar experiences.'" And for people on the outside who want to understand, it’s cracked open the door to the mysterious process of building software.

Here’s an in-depth list of tech-related blogs.


Page 2 of 2

Previous Page
1 2
 





0 Comments (click to add your comment)
Comment and Contribute

 


(Maximum characters: 1200). You have characters left.