I got a good night's sleep last night so I'd be fresh and ready for the Smackdown today.
Matthew Porter, Scott Delap and I visited Jive
Software's offices last night and had a great time sipping suds in their
beautiful downtown office.
My AppFuse tutorial yesterday was well-received by a packed room of developers. Rather than writing code the whole time and doing a measly 30-slides, I added a bit more meat about Spring, Hibernate and testing. Most of audience was unfamiliar with Spring, so this seemed like the right thing to do.
Of course, this led to more talking and less coding, but most of the folks I talked to were nevertheless very happy with the tutorial. If you'd like, you can download my presentation from the event.
Thanks to Rob Harrop and Thomas Risberg for both letting me know about the lack of Spring experience, as well as sitting in on my session. It was pretty cool having these guys in the room, as well as SiteMesh/jMock inventor Joe Walnes. Without these guys, many of the cool features in AppFuse would not be possible.
Now I'm sitting in the beginning Keynote session at OSCON, where they've announced
they have a record 2000 attendees this year. In addition, it looks like OSCON
is in Portland for the long run - this is the 3rd year it's been in Portland.
Rather than moving to a new city like they used to, they've decided to stay
b/c conference attendees like it so much.
The "unofficial" tagline of the conference is fun. Open
source is fun and exciting - both to develop and use. This is in stark contrast
to closed source software that tries to stay stable and boring, with no surprises.
When O'Reilly's CodeZoo launched, it only
listed Java open source projects. As of today, they've added
python.codezoo.com and ruby.codezoo.com, in addition to java.codezoo.com.
Tim O'Reilly
O'Reilly is not just book publisher or conference producer - but also a company
that looks to the future and tries to figure out what's next. To highlight
this vision, they've created O'Reilly
Radar.
We're currently going through "The Open Source Paradigm Shift". Integration
of commodity components has led to a new model where value gets captured.
Rather than being at the software level, it's at the services level.
Key Questions for Open Source Advocates
- Will "web 2.0" be an open system? What do "open services" look like?
- Data as the "Intel Inside" - will we end up needing a Free Data Foundation
in 2010?
- How does the paradigm shift change our business models and development
practices?
- Who shoujld we be watching and learning from?
Things on O'Reilly's Radar
- Ruby on Rails: new platform and new language. May well be the Perl of
Web 2.0.
- GreaseMonkey: a Firefox extension that alters websites to fit your
view. A website is traditionally closed. GreaseMonkey "opens up" a website
and rewrites it for the user.
- HousingMaps.com: leveraging Google Maps and existing data from a
bunch of different webservices to build a better website.
- Ajax: html, javascript and css. The "css" tag on del.icio.us has gone
down as the "ajax" tag has gone up.
- Findory: Uses the articles you like in blogs and news, and finds similar
articles. Similar to Amazon's recommendation system.
- Internet Telephony: Asterisk in particular. Skype and Broadvoice. Broadvoice
is pushing BYOD (Bring Your Own Device).
- HomeBrew: similar to Tivo.
- Firefox
- Opening up hardware, not just software - i.e. Car PC Hacks, Smart Home
Hacks.
For more, go to the Visualizing Technology Trends on Thursday afternoon.
For the first time, the computer book market has stabilized. This is
a good sign that the computer industry is about to start rebounding.
As far as the book market goes, it's market share and growth - Java still
leads the pack by a pretty wide margin. A large reason of this is due
to Open Source Java. SimplyHired.com spiders
7.9M jobs on 755 different job boards. General books on Linux are up,
especially non-RedHat distros. Books on RedHat have decreased significantly.
This is an interesting conference to be at when you're a Java developer.
For the most part, everyone seems to be Perl fans, followed by Python,
and a few Ruby guys. Most of these developers are very vocal about
the fact that they don't like Java. Then again, Java is the leader in many
areas - and it's the open source way to hate the guy on
top.
Kim Polese, SpikeSource
Building on the Architecture of Participation. A transformation from Do It
Yourself (DIY) to Do It Together (DIT). Thanks to the architecture of participation,
open source has achieved World Domination - as evident by governments mandating
it and IBM pouring billions into it.
The architecture is characterized by:
- Commoditization of software
- Network-enabled
collaboration
- Software customizability
In Phase I, we built and we built with. Open source had DIY origins. Now we're
in Phase II, where increasingly the action is out in the long tail.
Countless new building materials are piling up on the long tail. Now it's
possible to build just about anything with anything. IT shops are building
a phenomenal set of DIY "packages" that combine components from both ends
of the curve.
The two problems with this:
- Velocity mismatch: all components are on different release schedules.
Linux, Apache, MySQL - all on a different release schedule. In addition,
the ones on the other side (Lucene, Struts, Mambo) are on a different
cycle.
- Dependencies: When one version of one product changes
- what happens to all the dependencies?
To solve these problems, companies are developing formalized proceses like
review boards, support centers, OSS incubation centers, testing groups and
they're certifiying / defining stacks internally. Most of
this work is laborius and not related to the core competency of the business.
What's next? Phase III - IT becomes core. They do this by offloading critical
but non-strategic work to independent service companies. DIY evolves into
DIT with the help of independent service companies. Of course, this is all
leading up to the fact that SpikeSource provides these services. It's funny
that as soon as Kim said "SpikeSource" - all the presentation screens in
the room quit working (not on purpose). A minute later they're back. This
goes to show that marketing is not liked by the Open Source Gods.
"Testing is the single biggest refactoring shift in sofware." - J.P. Rangaswami,
CIO, DrKW.
We need testing on a massive skale. For this reason, Murugan Pal
and Ray Lane started SpikeSource. They saw the next phase is testing
open source software so we can scale testing, together. Solve velocity mismatch
and dependency problems with rapid per-defect patch management and dynamic
stack configuration.
Testing has always been the software's ugly stepchild.
We need to scale open source testing the way we scaled open source development.
Some perspective: Microsoft has a 1:1 ratio of developers to QA Engineers.
There's no Microsoft for open source software, nor should there be. To solve
testing on a massive scale, you need participation plus automation.
For models of how both scale, think eBay, Google and Amazon. Their best assets
were their customers that supplied data that made their services more
useful.
Testing is just one service among many. The Linux distros and middleware core
building blocks have been there for awhile. Now we have applications and
service companies as well. Who benefits when we have abundant integrated,
tested, validated automatically patched stacks? IT and ISVs shift high-value
development resources to customer-faces - differentiating features and services.
In addition, many other groups benefit and higher quality software gets developed.
Testing will do for open source what it did for chip design a generation earlier.
Testing is what catapulted the chip industry forward in the 80s. The new
testing tools moved VLSI foward. Countless new IC-powered products were made
possible and at much faster development speeds. Solving the testing problem
can't be done by one company alone. "Come Test with Us..."
After Kim, another speaker (Andrew from OSDL)
began his talk. He talked in a monotone and lacked a presentation. The room
quickly began to leak people, me being one of them.
Creating Passionate Users
Presented by Kathy Sierra, OSCON 2005
How do you create passionate users? People will do anything and be
enthusiastic about it if they're passionate about it. For example,
Nikon.com teaches you how to be a better photographer. In their tutorials,
they happen to mention that you might need a better camera to take better
pictures. If you're going for passion, you have to provide a continuous path
for becoming more knowledgeable about a product - and eventually becoming
an expert in
something. The beauty is the path or thing you provide doesn't even
have to be related to the product. It simply has to provide users with enthusiasm
about something you provide, which in turn supplies them with the path
for that passionate experience.
"Things that look better actually work better." In other words,
aesthetics matter.
When writing a book or documentation - you have to make what you're writing
about matters to the user. It has to be so important to them that it gives
them a queasy feeling. Naturally, the person won't be interested in what
you're talking about - you need to be able to communicate the real core of
why a person would have an emotional reaction and why it matters to them.
"Well, why didn't you say that?" is the reaction you're looking for. If you're
can answer that question w/o answering all the questions leading up to id
- you're golden. You're supposed to try and scare them to the point that
they're never going to have sex again, and then step back one level. What's
the compelling meaningful benefit of the product?
You need to seduce your users and keep them interested and passionate by challenging
them to learn more. Flow is the feeling when you have no sense of
time - and you need to somehow figure out how to get your users into the
flow. As long as you believe you're only one compile away from fixing
it - you'll spend hours working on something. This is the flow state
and comes from the perfect balance between a challenge and the skill+knowledge
to solve that challenge.
One of the challenges to creating passionate users is to establish some sort
of next level that your users can get to. First of all, you have
to figure out what the next level is, followed by what "new powers" and abilities
you can give to your users once they get to that level.
Tips for engaging users
When writing, use a conversational tone. The brain
has a conversation with text when you read it and you'll have a 40% better
retention rate by reading writing with a conversational tone. Also, use
pictures whenever possible since they often make things easier to understand.
Don't reveal everything - make your users curious.
What do film makers and novelists do? They tell stories.
Where there is community, there is legend, myth, passion and stories.
Where there is passion, there are people. How can you propagate the stories
and people from the project?
People don't care about you - all they care about is how they feel about themselves
after interacting with your product or service.
This was a great session by Kathy and I was very impressed how she presented
it. No laptop, just an overhead projector. Lots of group activities and lots
of group discussions. I could easily see Kathy and Bert writing a book on
Creating Passionate Users.