software development

Customization: The Software Tar-Baby

customization

Customization: The Software Tar-Baby

Vendors often pitch customization as a feature of their software: In the end, customizations and enhancements to a software solution are nearly always needed. This allows the software to be tailored to your needs, allowing for greater success, either with users or in business processes. They shouldn’t be considered

By Jeff Atwood ·
Comments
Growing up with the Microcomputer

history

Growing up with the Microcomputer

I read Robert X Cringley’s book Accidental Empires shortly after it was published in 1992. It’s a gripping worm’s eye view of Silicon Valley’s formative years. It’s also Doc Searls’ favorite book about the computer industry. Highly recommended. I didn’t realize that the book

By Jeff Atwood ·
Comments
The Build Server: Your Project’s Heart Monitor

software development

The Build Server: Your Project’s Heart Monitor

Although I’ve been dismissive of build servers in the past, I’ve increasingly come to believe that the build server is critical – it’s the heart monitor of your software project. It can tell you when your project is healthy, and it can give you advance warning when your

By Jeff Atwood ·
Comments
Swiss Army Knife or Generalizing Specialist

programming concepts

Swiss Army Knife or Generalizing Specialist

In Does Writing Code Matter?, I proposed that developers spend less time on the technical stuff, which they’re already quite good at, and more time cultivating other non-technical skills that developers tend to lack. One commenter took issue with this approach: I don’t agree with the premise of

By Jeff Atwood ·
Comments
The Iron Stool

software development

The Iron Stool

In classic project management parlance, every project is a combination of money, scope and time. 1. Here’s what we're going to do 2. Here’s how much time we have to do it 3. Here’s how much money we can spend doing it. These three factors

By Jeff Atwood ·
Comments
The Last Responsible Moment

software development

The Last Responsible Moment

In Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck describe a counter-intuitive technique for making better decisions: Concurrent software development means starting development when only partial requirements are known and developing in short iterations that provide the feedback that causes the system to emerge. Concurrent development makes it

By Jeff Atwood ·
Comments
Chickens, Pigs, and Really Inappropriate Terminology

scrum

Chickens, Pigs, and Really Inappropriate Terminology

Here’s a description of the daily Scrum meeting in the Scrum process: During the month-long sprints, the team holds daily meetings – the daily Scrum. Meetings are typically held in the same location and at the same time each day. Ideally the daily Scrums are held in the morning, as

By Jeff Atwood ·
Comments
Software Development: It’s a Religion

software development

Software Development: It’s a Religion

It’s Monday, and Steve Yegge still hates Agile software development. How much does he hate it? Approximately 11,000 words’ worth. I think I could start a cottage industry producing Cliff’s Notes versions of Steve Yegge posts. Here’s my condensed version of Steve’s latest: * Steve didn’

By Jeff Atwood ·
Comments

agile

Is Software Development Like Manufacturing?

We’ve adopted Scrum for all of our software development at Vertigo. Although I’m totally in favor of Anything But Waterfall, Scrum is an unfortunate name: 1. It’s two additional characters away from a term for male genitalia. 2. The term is derived from rugby, an extraordinarily violent

By Jeff Atwood ·
Comments
Making Developers Cry Since 1995

testing

Making Developers Cry Since 1995

Michael Hunter’s blog byline is unapologetically over-the-top: making developers cry since 1995. That’s probably why he’s such an awesome tester. Well, that, and the braids. Never before in the history of testing professionals have the top and bottom halves of a man’s head been so mismatched.

By Jeff Atwood ·
Comments
When Understanding means Rewriting

software development

When Understanding means Rewriting

If you ask a software developer what they spend their time doing, they’ll tell you that they spend most of their time writing code. However, if you actually observe what software developers spend their time doing, you’ll find that they spend most of their time trying to understand

By Jeff Atwood ·
Comments
On Unnecessary Namespacing

user experience

On Unnecessary Namespacing

Is it really necessary to qualify everything in Windows Vista with the “Windows” namespace? Hey, guess what operating system this is! At least the Vista start menu lets me do a containing search, so if I start typing ‘fax,’ the menu dynamically filters itself to show only items containing what

By Jeff Atwood ·
Comments