Dylan Schiemann

Alex Russell

Dojo Developer Day

Jan 12th, 2007

You Made 2006 Rock

  • We Shipped
    • 0.2.2 - Jan
    • 0.3.0 - March
    • 0.3.1 - June (> 100k dl)
    • 0.4.0 - Oct (~ 150k dl)
    • 0.4.1 - Dec (~ 200k dl)
  • 870 Bugs Fixed
  • Summer Of Code
  • Important Features
    • dojo.gfx
    • Editor2 + plugins
    • x-domain loader
    • dojo.lfx
    • dojo.data
    • Doc system
  • 3K dojo-interest subscribers
  • > 30 conference talks presented
  • InfoWorld award
  • Polish and Refine
  • Development Processes
  • 1.0

Coherent Experience

"Simplicity is prerequisite for reliability."

— Edsger Dijkstra

"Simplicity does not precede complexity, but follows it."

— Alan Perlis

Many of Dojo's most inventive and fundamental features (e.g., gfx & dnd) are still brittle. Solidifying these so that Dojo can be counted on is as important as adding new features. Simplifying them, reducing complexity in APIs, and reducing exposed surface area isn't just an nice goal, it's the only way we'll ever create a system that we can know well enough to test, document, and evangalize.

  • Package system
  • gfx, storage
  • io, events, rpc, html, style
  • Widgets
  • etc.

Users Think They Want Features

They Want Features They Can Master

Recent research is showing that, while users intially value features at the time of purchase, what makes them fanatic about a product is ease-of-use. How hard to they need to work to get at the "good stuff" is what separates a great tool from a promising one.

The real-world implications of this for Dojo are stark and clear-cut. In order to build upon our current momentum, it must become dramatically easier for new users to build things with Dojo that they could not have otherwise. And that means constraining choices in order to spot developers a statistical advantage.

Put another way, every time a user digs through extraneous features to get to what to them is a straightforward goal, we lose their trust. Combined with the expense of sending code down the wire for the web, this means that features that are rarely used aren't just collecting dust, they're actively hurting us.

Unusable Capability Is Worse Than Nothing

"Anyone who has never made a mistake has never tried anything new."

— Albert Einstein

There's a lot of stuff in Dojo today that's not worth of developer attention. The core infrastructure is rock-solid and just does what you tell it it, but around the edges, things don't feel as solid. And getting at those bits can sometimes be an infuriating experience.

We've got 2 days here to discuss and decide how we're going to handle the competing pressures on our time, our interest, and our attention. Make no mistake about it, priorities will need to be set in the next two days, and things will not always go your way. At the end of the day, doing right by the user means seeing outside our personal boxes of pre-conception and coming to grips with the brutal realities of the situation.

That we've all poured a lot of work into the current toolkit is worthy of recognition, but one success does not a sacred cow make.

Our Job Is To Make Devs Look Good With Less Frustration

Development of useful UI is more than just some hard engineering work. It's about bending the system to meeting the user and not the other way around. Remember that.

"How Does This Affect The User Experience?"

"Dealing with failure is easy: Work hard to improve.
Success is also easy to handle: You've solved the wrong problem. Work hard to improve."

— Alan Perlis

Dojo 2007:

Experience and Polish