software engineering

software development concepts

The Rule of Three

Every programmer ever born thinks whatever idea just popped out of their head into their editor is the most generalized, most flexible, most one-size-fits all solution that has ever been conceived. We think we've built software that is a general purpose solution to some set of problems, but

By Jeff Atwood ·
Comments

programming languages

So You Don't Want to be a Programmer After All

I get a surprising number of emails from career programmers who have spent some time in the profession and eventually decided it just isn't for them. Most recently this: I finished a computer science degree last year, worked about a year in the Java EE stack. I liked

By Jeff Atwood ·
Comments

software engineering

Software Engineering: Dead?

I was utterly floored when I read this new IEEE article by Tom DeMarco (pdf). See if you can tell why. My early metrics book, Controlling Software Projects: Management, Measurement, and Estimates [1986], played a role in the way many budding software engineers quantified work and planned their projects. In

By Jeff Atwood ·
Comments

bug tracking

That's Not a Bug, It's a Feature Request

For as long as I've been a software developer and used bug tracking systems, we have struggled with the same fundamental problem in every single project we've worked on: how do you tell bugs from feature requests? Sure, there are some obvious crashes that are clearly

By Jeff Atwood ·
Comments

marketing

The One Thing Every Software Engineer Should Know

I'm a huge Steve Yegge fan, so It was a great honor to have Steve Yegge on a recent Stack Overflow podcast. One thing I couldn't have predicted, however, was one particular theme of Steve's experience at Google and Amazon that kept coming up

By Jeff Atwood ·
Comments

software development

Quantity Always Trumps Quality

Nathan Bowers pointed me to this five year old Cool Tools entry on the book Art & Fear. Although I am not at all ready to call software development "art" -- perhaps "craft" would be more appropriate, or "engineering" if you're feeling

By Jeff Atwood ·
Comments

software development concepts

Revisiting The Facts and Fallacies of Software Engineering

I like to re-read my favorite books every few years, so I brought Robert Glass' seminal Facts and Fallacies of Software Engineering with me on my most recent trip. I thought it was a decent, but imperfect read when I originally bought it in 2004. As I scanned through

By Jeff Atwood ·
Comments

microsoft

See You at MIX08!

Well, you won't technically see me at MIX08 [http://visitmix.com/2008/] this year. But you will see some very cool top-secret stuff Vertigo created [http://www.vertigo.com/mix] in the keynote. [http://visitmix.com/2008/] MIX is by far my favorite Microsoft conference after attending the

By Jeff Atwood ·
Comments

assembly language

There Ain't No Such Thing as the Fastest Code

I was tickled to see that James Hague chose The Zen of Assembly Language Programming as one of five memorable books about programming. I wholeheartedly agree. Even if you never plan to touch a lick of assembly code in your entire professional career, this book is a fantastic and thoroughly

By Jeff Atwood ·
Comments

conference

See You at CUSEC 2008

I have the distinct honor of speaking at this year's CUSEC, which runs from today until Saturday. [http://2008.cusec.net/en/index.php] So what, exactly, is CUSEC? [http://2008.cusec.net/en/cusecFAQ.php] > CUSEC is the Canadian University Software Engineering Conference, an annual conference

By Jeff Atwood ·
Comments

software development concepts

How Should We Teach Computer Science?

Greg Wilson recently emailed me the following question: I'm teaching a software engineering class to third-year students at the University of Toronto starting in January, and would like to include at least one hour on deployment --- [deployment] never came up in any of my classes, and it&

By Jeff Atwood ·
Comments

software development concepts

Who Wrote This Crap?

Does this sound familiar? > your program (n): a maze of non-sequiturs littered with clever-clever tricks and irrelevant comments. Compare MY PROGRAM.my program (n): a gem of algorithmic precision, offering the most sublime balance between compact, efficient coding on the one hand, and fully commented legibility for posterity on

By Jeff Atwood ·
Comments