Today's Question:  What are you most afraid of as a programmer?        GIVE A SHOUT

  WRITE ARTICLE

 SOFTWARE DESIGN


  STOP WRITING GOOD CODE; START WRITING GOOD SOFTWARE

Good software trumps elaborate code. And unfortunately, you can’t usually have both. The real world has deadlines and ship dates. It’s a game of pick two:Ship on timeShip with elaborate codeShip with a fantastic productAlmost always, you should pick the first and the last when you’re building software applications for users (if you’re building API’s or open source libraries for other developers, then it’s a different story). Too often I have seen developers, when struck with a b...

1,006 0 0          GOOD CODE DEADLINE GOOD SOFTWARE STANDARD TRADEOFF


  Optimization Tricks used by the Lockless Memory Allocator

With the releasing of the Lockless Memory Allocator under the GPL version 3.0 license, we can now discuss more of the optimization tricks used inside it. Many of these are things you wouldn't want to use in normal code. However, when speed is the ultimate goal, sometimes we need to break a few rules and use code that is a little sneaky.The SlabA slab is a well-known technique for allocating fixed size objects. For a given object size, a chunk of memory is divided up into smaller regions of that ...

3,509 0 0          OPTIMIZATION MEMORY ALLOCATION


  The Death Of The Spec

Earlier today, my colleague Matt Burns wrote a post noting that most tablet makers may be largely failing because they’ve sold their soul to Android and are now just in the middle of a spec war, which no one can win. I’m gonna go one step further in that line of thinking: the spec is dead.There have been a few key stories from the past couple of weeks that highlight this new reality. Barnes & Noble unveiled the new Nook Tablet. Consumer Reports looked at the iPhone 4S...

1,609 0 0          ANDROID SOFTWARE DESIGN PLATFORM SPECIFICATION


  The Balanced Developer

In preparation for a recent team offsite, I spent some time thinking about what I hold dear as a software developer. One idea I kept coming back to is the notion of balance. I see balance manifesting itself several ways in the work of a successful developer, some of which follow.Speed Versus QualityThe most obvious example is the balance of development speed and quality. When building software, it’s never a good idea to write code as fast as possible without any attention toward maintainabilit...

1,335 0 0          SOFTWARE QUALITY DEVELOPMENT BALANCE SPEED


  Don't Give Your Users Shit Work

The problem with shit work is that no one likes doing it, but an awful lot of people say they do.Shit workTake a look at Twitter Lists. The idea behind Twitter Lists was that users would carefully cultivate lists on Twitter of different accounts they’re following (or not following). These could be divided into lists like Family, Friends, Coworkers, People I Find Mildly Attractive, People To Murder, People I Find Mildly Attractive And Want To Murder, and so on.The problem is that, anecdotally, ...

5,641 0 0          DESIGN FACEBOOK TWITTER USER ORIENTED


  The business of software

Inspired by a talk I gave yesterday at the BOS conference. This is long, feel free to skip!My first real job was leading a team that created five massive computer games for the Commodore 64. The games were so big they needed four floppy disks each, and the project was so complex (and the hardware systems so sketchy) that on more than one occasion, smoke started coming out of the drives.Success was a product that didn't crash, start a fire or lead to a nervous breakdown.Writing software...

1,086 0 0          DESIGN SOFTWARE BUSINESS SOFTWARE DESIGN


  DESIGNERS NEED ENGINEERS

Like so many of you, I’ve been indulging in the amateur analyses all over the web about why Steve Jobs, p.b.o.h., was so great. The recurring message is pithily summarized by Mathew Ingram: “Technology is the least important thing about Apple products”.Bullshit. The reason why Apple manages to build such magnificent products is because design and usability drive the engineering, yet the technology behind their products is by no means trivial. Apple cares a lot about eng...

1,496 0 0          DESIGNER ENGINEER RELATIONSHIP


  I hate cut-and-paste

Me, I blame the IDE's.Coding used to be hard. Not because programming itself was overly hard, but mostly because editors absolutely sucked. How much the typical development environment in the 70's and 80's sucked is hard to convey (except for a very lucky few, and those would have likely been using DEC and WANG gear). I got in on the tail end of the punch card era. Punching your own program is lots of fun. Once. And if you drop a deck you get to play with the sorter, which is also lots of fun (o...

1,284 0 0          SHORTCUT IDE EDITOR CUT AND PASTE BLAME