98 Million Bugs Strong -- RelEng Class 2: Linus' Law

This post continues Adventures in Release Engineering and the Sebastian's student-course on Release Engineering at Olin.

We talked about core Open Source concepts: transparency, release early release often, work upstream, scratch your own itch, and Linus' law. My take on Linus' Law is success. Eric Raymond wanted Emacs to move to the bazaar model, and they did. Open source projects now face different issues -- such as "who supports OpenOffice?"

Linus' Law in 1999
Some background. In 1997, when Eric Raymond first presented the Cathedral and the Bazaar, the source for GNU Emacs was locked down to core developers until a scheduled release date came along. This "cathedral model" was the reality of many open source projects. Raymond had the insight to state

"given enough eyeballs, all bugs are shallow"
 -The Cathedral and the Baazar (1999)

and this became Raymond's blazing sword against the cathedral. If you the core developer kept your source to yourself, you got to spend endless hours fixing bugs. Bug fixing is inglorious work, and the promise of offloading bug fixes, tantalizing.

Currently open source runs into a different wall. Raymond calls it "treating your users as co-developers." I call it "who supports OpenOffice." I am sad to announce that no mater how much I treat my grandmother as a co-developer, she will not be able to diagnose OpenOffice redraw issues.

Excuse me for a second. My apologies OpenOffice community. Even cut to the barebones, building an office suite is a complex undertaking. Though you are the target of this blog post, we really do appreciate all the work that has gone into the project.

Right. According to their site, OpenOffice has been downloaded 98 million times. I'd wager that doesn't include distribution through linux distros. So why after 98 million downloads is OpenOffice so antiquated and buggy? Co-developers. When your sister's, boyfriend's, best friend does an OpenOffice mail-merge and it wigs out, he doesn't have the skills to fix the issue. When your IT guy does a mail-merge with snazzy unix-like command line scripts, he can address almost any issue he runs into. The eyeballs that peruse GNU Emacs make all Emacs bugs shallow. The eyeballs that peruse OpenOffice do not... and there are over 98 million of them! Instead of treating your users as co-developers, Raymond would have been more accurate to say "treat your developers-- who may happen to be users -- as co-developers."

Of course, there are other factors to OSS project success than technical experience. Community management, release engineering, commercial support, ownership, altruistic targets, etc. Scratch off the right combination of OSS community characteristics and you win the lottery. Scratch the wrong ones and win OpenOffice. Here are a few of my contributing factor breakdowns:

What it has going for it
* Enticing advanced CS problems (nerd crack)
* Nerd cred. (you have a patch in the kernel?)
* Self-serving altruism (give the gift of playing with linux)
* Intense commercial support (many paid kernel hackers)
* Users are developers

* Organization of ownership (components split out to owners, IE the installer)
* Nerd cred.
* Self-servering altruism (support of web standards)
* Commerical / academic support
* Users are developers

* Scratches own itch
* Simplifying, limited scope
* Strong personal ownership

What's not so hot:
* Iron-fisted organization
* Endless feature mentality
* Bystander effect
* Non-essential for most developers
* Little commercial interest to anyone except Sun/Oracle

Some day I'll have a complete taxonomy for open source projects, but today is not that day.

Edit 11:59, 26 Sep 2011: Forgot a paragraph =[.
Linus' Law and Release Engineering
The funny thing is that release engineers don't exactly fall under Linus's law. Perhaps this is my UX bias, but in my opinion, it is the role of the release engineer to support stable, usable software. We are the ones out there saying "whoa, let’s not update all Ubuntu users to Python 3 just because it came out yesterday" (hey there Arch linux). We help projects meet usability goals, create installers, package, and determine when a project is ready to increment the version number. Thought I feel strong allegiance to the bazaar model, I would help an OSS project maintain a cathedral model (as has been suggested for Diaspora) if it greatly helped releases.
</edit>

- Colin
Asciitar

Resources
http://www.kalzumeus.com/2010/09/22/security-lessons-learned-from-the-diaspora-launch/  (particularly "Take Care With Releasing Software to End Users")

Adventures in Release Engineering

My dear college (Olin) is feeling small... really small... three-person-class small. But not only small, also student led. This semester I'm lucky enough to be learning release engineering from a war-torn Red Hat release engineering expert (2 year my younger, curses!): Sebastian Dziallas. And I've only got two peers to compete with for attention.

It looks something like this:

Release Engineering 
OSS project + student + actual release eng work + mentorship = learning (and fun)

Though I've organized a few hackathons, and heard from OSS community leaders like Jeff Mitchell, but I think this experience will be unique: an In Vivo learning experience. Education with context -- real world context.

So what to engineer? We'll see. I'm looking at NB, a very neat collaborative document annotation tool. Wow, marking up documents, what kind of a paper-pushing bureaucrat am I, you're wondering. No, but it really is a neat tool. Designed for academic reading settings, NB lets students mark up readings with questions and comments. Confusion can be cleared during the reading process. But I'll save you the sales pitch; NB is just a idea at this point.

So how does one start a course on release engineering? Talking about different scales of software production. We outlined our thoughts on startups, large software companies. We came up with the standard fare, startups just run. The code is ugly but it doesn't matter, its all about users. Large corporations are process heavy and move in developed areas. They take shelter in enormous manpower, though sometimes inefficient, can spring to action at the sign of a threat.

Through the semester I imagine we'll have to tailor our understanding to OSS projects, and within that, volunteer projects (as opposed to people who hack on the kernel for their benevolent corporation). I expect to learn a lot about volunteer projects, and the function and passion of their contributors.

Here's to a good semester!

 

Etherpad Post FAD (That was sooo last week)

One week ago this time the Etherpad FAD at Olin College ended. I think its about time for a recap.

More Pictures

After some dramatic shots of day 1, we have dramatic shots of day 2:

(download)
Kevin explains the mysteries of the Operational Transformation algorithm to Andy.

Imgp9756

Strikeout! Another library bites the dust. I think Sebastian might be trying to take credit for Spots handywork.

Imgp9758

Dramatic sunlight over the penguin clan.

Food_blog

So I didn't actually take pictures at lunch (hackers, did you? I want to see), but those foodie bloggers say my Masala Art
Murgh Tikka Masala looked like this. It sure tasted at least that good.

 

Masala_bar

And then a few round of shots on Red Hats ta... I mean... per stories of the original FudCon, thought we'd pass on drinks this time. 


Imgp9767

Back for more hacking. Evidently, something etherpad was less appealing than the Murgh Tikka Masala.

Kde_4

We heard from Jeff Mitchell about open source communities.
His talk ("Give a Cat a Scratching Post and Watch It Claw your Sofa -- or Building and Managing Communities") was fantastic and I hope it will be available in due time when he feels the slides are finalized. (Jeff is cool enough to be in the Wikimedia Commons. Note to self to upload my cat one of these days).

Imgp9766

And of course, we got some work done. Licensing research. I think these board notes are courtesy of DJ who was one of many people to do battle with the many codebases used by Etherpad.

 

 

There's a First Time for Everything

I have a confession to make. I have never been to a FAD, in fact, not long ago I was lamenting the plethora of acronyms floating around the world of Fedora--including FAD. But there is nothing quite as exhilarating as blindly diving head first into the shark infested waters.

Nah, the FAD went well. Meeting new people, chatting about OSS software and the new Gap logo, running in coding mode (which even counters the temptations of delicious Indian food), and barreling thorough tasks, we had a good mix.

Having not done a FAD, I took a rather hands off role. I suspect we would have well to have some more structure, but I think people also appreciated being able to work their own style. We were also hampered by traffic. Rush hour + beginning of Labor Day weekend -- not good. It would have been easier to have a kickoff meeting if the average drive time wasn't something like 2 hours.

It was interesting to see how certain issues I worried about pre-FAD didn't matter at all during the event. Being available on IRC was a total non-issue. We had someone on #etherpad while we were hacking, but it was used for nothing more than link sharing. I wouldn't have minded more remote engagement, but given the benefits of being physically present. I think its a lot easier to get remote engagement during FudCon. You know, Fedora hackers the globe over perk their ears and tune into Arizona with the thought of contributing.

Pictures, pictures, we needed more. I want to show you how good our lunch was, or Jeff presenting this slide. Next time I'll get one of these and capture everything. (Okay, point and shoot trigger happiness would be a little easier).

 

Highlights

20 or so Olin Students were enlightened with the good word of Git by Kevin Mehall.

Etherpad upstream running with on OpenJDK with non-free libraries replaced!

7+ libraries packaged at the FAD (kudos Jon, Spot, Sebastian)

Dozens of licences evaluated for FOSS-ness (kudos DJ, Jon, Spot)

JSON.org "for good not evil" libraries removed and replaced by libJson (by Sam who jumped right into unfamiliar territory of Scala)

95% update of a Java database library (lib c3p0) to be compatible with Java 1.6 (awesome stuff Crawford)

 

At which I should admit that we aren't done. There are still a few loose strings to tie up on packaging. c3p0 needs some Ant love. Spec file needs updating. But we're so close, give it a week or two and Etherpad will be in your repo.

 

Heard some great stories of Red Hat in the good old days from Spot (I'm hoping the Fedora/Red Hat fedora hats come back).

Learned a great deal about Operational Transformation, content editable, and some of the technologies behind real-time collaborative editors (Kevin).

Discovered some of the nastier trade offs of Java projects (lack of api stability, tendency to bundle libraries, etc). Really great insight into the world of Java, enterprise applications, and advantages of verbose languages/markup (unlike our web-startup friends who tend to find xml a fashion taboo). Thanks there Crawf, DJ, Sam, Spot, and Jon.

Thanks greatly to Jeff Mitchell for talking into an extended discussion of communities. Including the extended consideration of the term "fork" and the GitHub's "fork me" advertising. Hope that discussion continues around a possible Fedora Community Board.

I was totally blown away by the dedication of the hackers. John Stanley comes to mind apologizing to taking a few glances at his Facebook page. We wouldn't have been able to accomplish anything if not for the dedication. Thanks everyone for that.

And there were a lot of ideas tossed around for other uses of Etherpad. Modularize the software into an engine component. Use etherpad for collaborative tex documents (maybe Ray would love to do this)? How about wikis based on real time editing? Embeddable etherpad documents? The sky is the limit. 

 

Thanks again to everyone who helped out. Believe me, this isn't the last you've seen of me (and hopefully not the last you've seen of Olin).

 

Cheers,
Colin
https://fedoraproject.org/wiki/User:Computercolin

 

------------------------------------------------------------------------

Edit 17 Oct 2010 21:38 Eastern

Just found some more whiteboard images DJ send me earlier. Here ya go:

(download)

Etherpad FAD Day 1 -- Greetings from Olin

Hello and greetings from the Etherpad FAD.

Olin-hack

Spot, Sebastian, and Jon discuss the "fascinating" web of Java found in etherpad.

Olin-hack

Sam and Kevin float through code

Olin-hack

DJ and Crawford look into c3p0 issues with Java 1.6

Our furthest travelers come from hail from New York. And while we hack away here in Massachusetts, Etherpad hackers are converging on Bradford, UK. Our goals are somewhat different, they are working on features and tickets in the codebase. We're looking at packaging etherpad for fedora, and all the legal, dependencies.

We've made some exciting discoveries. 4 copies of JQuery, at 3 different version. At least 2 different copies of Rhino, when you include deps.

Large dependencies whose purpose in life are things like:

Creates a blob of image data in a format readable by a web browser that consists of a solid, opaque color and has the given width and height.

Progress with the dependencies is steady. Most recent news is that the upstream version of the Sanselan library doesn't turn Etherpad inside out. We have stellar builders/packagers in SDZ, Jon Stanley, and Spot. I'm picking up rpm packaging and hope to be a full master by the time the weekend is out. Kevin is presently teaching Andy how the Operational Transformation algorithm works. People are heading out as they finish up their tasks. Day 2 only looks to be better.

Let there be FAD! Oct 8th - Etherpad FAD at Olin College! (Outside Boston, MA)

New boundaries will be crossed, AndySebastian, and I are holding a FAD at Olin College! It comes from our love of Etherpad, an excellent collaborative web-app that has been open sourced. We can't think of a better subject. Etherpad is great for project, planning, education... the lists goes on!

What is this Etherpad thing? I should probably let you take a peak:

Etherpad is fascinating from a practical perspective, it lets people collaborate instantly and effortlessly. The learning curve is just about 0. From a technical perspective, it uses an absolute disgusting mix of languages, methods (MySQL likes JSON, yes, yes it does), and optimizations. And from an open source perspective, its interesting to see what we can expect from startup software gone open. Hardcore hacker and OSS newbie alike, we have the FAD project for you!


  
Ep_fad_poster_x500

Oct 8th starting 5pm - Oct 9th
We're holding a Hackathon / Fedora Activity Day at Olin College in Needham, MA!

Etherpad is open source software for teams to type together on the same document. 
Join a team of students, alumni, and Fedora Linux hackers as we improve Etherpad for ourselves and the world!

== When? ==
** Friday, October 8th - Saturday, October 9th **

(and maybe early Sunday if we get some of the no-sleep crowd).
Dinner on Friday. Dinner and lunch Saturday.

Can't attend in person? Remotely join us! See the wiki.


Check us out on the wiki and twitter:
https://fedoraproject.org/wiki/Etherpad_FAD
http://twitter.com/olinetherpadfad

Its going to be a wild ride and we're stoked. There has been tons of organization, emailing, room reservation, code wading, weighing of audiences, budgeting, etc... but its totally worth it. The FADs going to be a blast and we hope that you'll join us!

We just have to figure out what boundaries we'll cross next time. FudCon? We shall see.

P.S. You've probably never heard of Olin College, but you should
totally look at the crazy higher-ed experiment we're running:

Arrival in Spain

Ahora, estoy en Madrid. Llegué ayer. I missed significant amounts of volcanic ash and decided to start my Dublin layover fresh with Irish Cider and a scone. Some hours later, a brief reunion with my brother, who I haven’t seen in person for nearly a year, and we’re off to check out Fiesta de San Isidro, the patron saint of Madrid. I am dead and so is my camera, no pictures.

 

Its Saturday, and that means nightlife. My brother, a friend of his, and I decide to screw tradition and have 1) Chinese for dinner and 2) mojitos at a Mexican themed bar.

 

Image002
 

Coral and Aaron after a few mojitos

 

At this point it was Sunday, but still not early enough to hit the discoteca (remember, I arrived Saturday). Spain is a late city. Typically dinner happens around 8pm. At 2am, the discotecas get started and the metro stops running. When the clubs close at the break of dawn, it’s common for hard core partygoers to go out for breakfast and relax until the trains start up again.

 

Instead of fighting our way down the bustling sidewalks of Gran Vía, we found the way paved in blue velvet.

Image006

All buildings standing the way of Gran Vía were removed one hundred years ago to make way for the traffic relieving (uprising preventing) street. It’s the largest thoroughfare in Madrid, and on its 100 birthday, the Madreleños decided to throw a big party and cover it in blue velvet. Well, mostly. The birthday was actually a few months back and the fiesta got pushed back as to align with the Fiesta de San Isirdio.

 

We hit up Ohm (a dance club) for the night, we got in free before 2am (yes 2am, Spain is a late place =P). Danced with a friendly guy. He tried to show me how to move my hips properly so we he could do the little walk and twirls of the salsa. I fail. Whatever, we had fun.

 

Image007

Some drunks make a nice bed of blue velvet from the celebration and trash.

 

Beat, we returned home to Aaron’s host family. Bad news, mother had an “aborted take-off” (appropriate for a midwife?) and got stuck in Atlanta for another 24 hours. The show would have to go on without her.

A Simplified Approach to Blogging in Primary Education: Paper

Today Mel Chua told me one of the most interesting techniques I've heard for teaching blogging / contemporary communication to young people.
Here is the issue, I'm a 4th grader, I'm born in a world where I need to know modern communication tools, and I'm trying to learn blogging. Miracles beyond miracles, I've setup Wordpress and I'm realy to write my first post, and I see this:
Wordpress_all
I'm scared.
Well maybe not, maybe our hypothetical 4th grader acts as I did the first time I saw the linux kernel menuconfig: not building bus support? What a fun experiment!!
Regardless, whether frozen, or intrigued, this is too much for blogging un-initiated 4th grader. I mean, whats a tag? Do I want one? What happens if I don't enter one? And Categories, will I only be able to see my post under certain categories? Am I even allowed to think about posting before I create categories? And for the love of God, what is a trackback?
A teacher Mel worked with (Mel's Aunt?) gives her students a print-out like the following:
Wordpress_blog_only

 

Much simpler. Go write you blog-post, kids! When they're done with the post, they get on a computer, go to WordPress, and post for real. Suddenly, the Add Post page isn't so daunting, it looks just like the paper--with some extras.
Cool, eh?

Colin
https://fedoraproject.org/wiki/User:Computercolin 

Note to self: proofread! :P

Its Free, its Transparent, but not visual -- OSS Design needs an upgrade

Are you inspired to develop open source software? Wait don't answer. On a scale of 1 to 10, how inspired are you to develop open source software?

Now, look at this screenshot draft for Ubuntu's upcoming GTK theme:
Brand?action=AttachFile&do=get&target=darktheme.png

On that same scale, how inspired are you to develop now?

How about Nautilus (the Gnome file manager)? 1 to 10, how inspired?

Take a look at this:
new-nautilus_zeitgeist.png
Development looking a little peppier?

I think this is an issue with the Open Source community. We're open, transparent, but not visual. Just try finding screen mockups in Gnome's roadmap

Why share screenshots, mockups, and mock interaction videos?
  • It gets developer excited about the project their working on
  • Design problems become apparent before heavy investment in development
  • Show off OSS and our goals to all net denizens
  • Draw in non-OSS integrated developers (like me!)

What is the situation right now?

How do designers get developers excited about their ideas? Truth be told, I can't really tell. Some case studies.

Project Hamster -- Designer and Developer in one

interactive-graphs.png?w=720
If you haven't heard, Hamster is an epic time tracking tool being considered for inclusion in the next release of Gnome. As far as I can tell, all design and the majority of development are done by one man: Toms Bauģis. Project Hamster is fantastic, and Toms is clearly an awesome developer. But where would Project Hamster be if Toms was a designer leading development? What kind of cool screenshots does he have cooking?

MadsRH -- Blog Idea Seeding
Got beef with the Gnome Background selection dialog? Who doesn't? MadsRH came ups with a solution mockup to the lack of a way to add slideshow backgrounds:
background-Screenshot.jpg

And he linked his idea from Ubuntu Brainstorm.

Ian Cylkowski does the same with his redesign of Nautilus

As does Seif Lofty

In fact, this seems to be the main form of design communication in the OSS world: blog posts.

David Siegel -- Papercuts
David, the lead on Gnome DO and now Canonical employee does more design leadership. His big shtick is papercuts, hundreds of small improvements that are simple for developers to fix and have a large benefit to users when they are set right.

His latest set of papercuts for Lucid:
Papercuts
https://bugs.edge.launchpad.net/hundredpapercuts/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status:list=NEW&field.status:list=CONFIRMED&field.status:list=TRIAGED&field.status:list=INPROGRESS&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.milestone:list=22293&field.milestone:list=22302&field.milestone:list=22294&field.milestone:list=22295&field.milestone:list=22296&field.milestone:list=22297&field.milestone:list=22298&field.milestone:list=22299&field.milestone:list=22300&field.milestone:list=22301&field.tag=&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on

A need for tools
The situation here is not ideal. There is no reason as an OSS developer I should have to slog through wiki pages or personal blogs to find design insights. A beautiful screen mockup can be development a joy, or can make development occur where it might not otherwise.

Other OSSers are look/dreaming of design tools. Mairin Duffy is frustrated that design collaboration occurs much less outside of GNOME London UX Hackfest. She dubs designer <-> developer interaction "challenge B" . She suggests a a webapp that allows sharing screen mockups, automatically links IRC discussion of the image, and shows the evolution of the mockup. 

Prognosis -- OSS: a plethora of developer tools, a lack of designer tools. I think this should change.

What do you think? Comment or shoot me a message: colin { at } zonion { dot } org