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 CEOs mistress anyone might have input.
Youve got all these layers of people, Rosenberg says. But the more layers youve got, the more opportunity youve got for miscommunication between them.
A related aspect of the programmers 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.
"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, Im still trying to figure out the most elegant algorithm for sorting this stuff.
Making Software and Making War: Similar Concepts
Theres 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 didnt 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 havent 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 doesnt 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 whats important and whats 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 everyones 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
|
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 its 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, theres other people who are like me and have similar experiences.'" And for people on the outside who want to understand, its cracked open the door to the mysterious process of building software.
Heres an in-depth list of tech-related blogs.