software development concepts

user experience

On the Death of the Main Menu

One of the biggest highlights of PDC 2005 was the first day keynote, when the Office 12 UI was unveiled [http://www.microsoft.com/presspass/events/pdc/gallery.mspx]. I don't know if people realized the significance of what we saw at the time-- but we had just

By Jeff Atwood ·
Comments

software development concepts

In Defense of Verbosity

During the fantastic Monad [http://www.microsoft.com/downloads/details.aspx?FamilyID=2AC59B30-5A44-4782-B0B7-79FE2EFD1280&displaylang=en] session at PDC 2005*, Jeffrey Snover and Jim Truher illustrated the tradeoff between verbosity and conciseness: cp c:apples c:oranges -fo -r copy-item c:apples c:oranges -force -recurse Monad has a ton

By Jeff Atwood ·
Comments

software development concepts

The Positive Impact of Negative Thinking

In Waltzing with Bears: Managing Risk on Software Projects, DeMarco and Lister outline the dangers of penalizing negative thinking: Once you've identified and quantified these risks, they can be managed just like the others. But getting them out on the table can be a problem. The culture of

By Jeff Atwood ·
Comments

security

The Six Dumbest Ideas in Computer Security

Marcus Ranum, the inventor of the proxy firewall [http://www.ranum.com/stock_content/about.html], brilliantly condenses why many security efforts are doomed from the start: they fall prey to the The Six Dumbest Ideas in Computer Security [http://www.ranum.com/security/computer_security/editorials/dumb/] : 1. Default

By Jeff Atwood ·
Comments

software development concepts

The Spolsky-Babbitt Connection

I noticed something strange in a Windows ME screenshot embedded in a Joel Spolsky article I linked yesterday [http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html]: Notice the Qantas icons? Those are shortcuts to a now-defunct unix machine at Joel's company, Fog Creek Software. You can find evidence

By Jeff Atwood ·
Comments

software development concepts

Managed Code Analysis Tools

Navigating a new codebase can feel like like landing on an alien planet. That's where static code analysis [http://en.wikipedia.org/wiki/Static_code_analysis] tools come in handy; they're akin to software tricorders [http://en.wikipedia.org/wiki/Tricorder]. They provide a general snapshot

By Jeff Atwood ·
Comments

software development concepts

Head First Design Patterns

I'm beginning to wonder if the book Head First Design Patterns would be better titled Ass Backwards Design Patterns. Here are some quotes from pages 594 and 595 of this 629 page book: First of all, when you design, solve things in the simplest way possible. Your goal

By Jeff Atwood ·
Comments

user experience

The User Interface Is The Application

Shawn Burke's post Shippin' Ain't Easy (but somebody gotta do it) explains why you have to resist change at the end of a project, no matter how justifiable and rational the reasons may be. Even the smallest change has a real risk of introducing additional

By Jeff Atwood ·
Comments

.net

Clean Sources Plus

Omar Shahine's Clean Sources [http://wiki.shahine.com/default.aspx/MyWiki/CleanSources.html] is a nifty little right-click app for .NET developers: > This application does one thing. It adds an explorer shell menu to folders that when selected will recursively delete the contents of the bin, obj

By Jeff Atwood ·
Comments

programming languages

Are All Programming Languages The Same?

There's a chart in Code Complete that compares the productivity of working in different languages: Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, and

By Jeff Atwood ·
Comments