Today's Question:  What weekend projects have you created?        GIVE A SHOUT

  WRITE ARTICLE

 SOFTWARE DESIGN


  Creativity requires isolation

How many times have you tried to get something done that needed some touch of originality and creativity and yet got that annoying mind block which is manifested by blank stares, scratching and biting on anything in reach? “all the damn time” I hear? As preconditions to be creative, one should know something well while having the utmost focus on it. Someone who knows little about aerodynamics can’t come up with the idea for next concord. And focus has two aspects: knowing a specif...

1,583 0          CREATIVITY ISOLATION QUIET PAPER PEN


  Software philosophy: Release early, release often vs polished releases

Release early, release often is a philosophy where you release the product as soon as possible and rapidly iterate it to perfection by listening to your customers. A polished release, on the other hand is where your product, in its initial version is solid, lacks obvious bugs and has just enough features to satisfy a majority of your consumers. Most software companies adopt either one of this and that choice is not superficial. In fact, it roots down to the heart of the company’s ideolo...

1,711 0          DESIGN PHILOSOPHY RELEASE EARLY RELEASE OFTEN POLISHED RELAESE


  Why Software Projects are Terrible and How Not To Fix Them

If you are a good developer and you’ve worked in bad organizations, you often have ideas to improve the process.  The famous Joel Test is a collection of 12 such ideas.  Some of these ideas have universal acceptance within the software industry (say, using source control), while others might be slightly more controversial (TDD).  But for any particular methodology, whether it is universally accepted or only “mostly” accepted, there are a multitude of organizations ...

2,072 0          DESIGN SOFTWARE DEVELOPMENT DEBUG


  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,275 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,805 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,903 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,772 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, ...

6,028 0          DESIGN FACEBOOK TWITTER USER ORIENTED