Problems With the Firefox Development Process 563
An anonymous reader writes "Mike
Connor, one of the core Firefox
developers, is raising a flag concerning the Mozilla Firefox
methodology of development. From his blog: "In nearly three years, we haven't built up a community of hackers around Firefox, for a myriad of reasons, and now I think were in
trouble. Of the six people who can actually review in Firefox, four are AWOL, and one doesn't do a lot of reviews." In an earlier
entry, he raised concrete concerns about the community involvement. Asa Dotzler
recently elaborated
on the process, as previously covered on Slashdot."
Firefox is mostly a cute interface (Score:2, Insightful)
Mike Connor has a point, but we aren't talking imminent disaster. Yet.
Re:Bah, what's the big deal? (Score:5, Insightful)
Don't set your standards low just because the competition does. Set 'em high because you can and should.
(I've just been in the mood to slap someone lately. Nothing personal.)
Engineering documents? (Score:5, Insightful)
If it is a problem of documentation, then those two remaining programmers had better work on documenting it... and quickly. If they want the architecture to be preserved when new programmers who don't understand it come along.
Why can Microsoft et. al get good people... (Score:4, Insightful)
I think some things need to be funded, and if Mofo needs the cash, then Cashdot should be able to help out (maybe do a sidebar-fundraiser or something)... I'd pitch in a couple of bits for my fave browser! Hell make it a contest so people can win firefox/mozilla SWAG [mozilla.org]!
Same ol', same ol' (Score:4, Insightful)
Mozilla has for years made a constant and ongoing argument that they're open to all comers and want all the help they can get, only to turn people away without consideration. I don't know what it's all about, and I'm not sure I care anymore.
It's a shame, because while (for example) Ben Goodger is obviously a talented programmer, his belief that he is the only person capable of doing what he does is just crippling the effort. Allowing a few people to prove they're as good as he is (hmmm... maybe he's afraid to find that out) could move things along tremendously.
Re:Engineering documents? (Score:4, Insightful)
Lack of community involvement (Score:3, Insightful)
Re:That's strange... (Score:5, Insightful)
Community, Induviduals and Fun (Score:4, Insightful)
Mmm... "Just for Fun !!"
If you look at very successful FOSS projects, you'll see a comitted 3-5 member team which does pretty much everything for that project (projects like KDE or gnome don't classify as projects, they are meta-projects).
A project needs lots of users and around 3-4 x times the core team contributing bits and peices to keep it alive. Once that is reached, the project is pretty much self sustaining.
I feel that firefox has got a bit of elitism in their top level. Maybe those developers should take a look back into where THEY came from.
Reading code... (Score:5, Insightful)
Brian Kernighan is widely quoted as saying: "Debugging is twice as hard as writing code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
When you're debugging, it involves rereading code you're already familiar with, so I suggest a corollary: reviewing someone else's code can be harder than writing it in the first place too.
That said, don't let it stop you from trying! Pick a patch from your favourite project and review it. Try to understand it. Look for places where it could be wrong.
Reviewing is a related but distinct skill from developing, and it can be improved with practice. A good reviewer is worth their weight in gold but it's often a thankless task (so let me take this chance to say a big thank you to markus and djm for putting up with my diffs :-).
Case in point: vcards (Score:5, Insightful)
I downloaded the code, posted up onto the relevant bugzilla entry, and waited for a response.
And waited.
And waited.
Still no response.
Seven months later, the bug flickers into life again and people start asking why this isn't here. Again, I post up reminding people that I offered to write the code, and still would. Again, utter silence. Tumbleweed drifts across the face of the bugzilla page...
Have a look, entry 79709 if you're interested (Mozilla's bugzilla set-up disallows direct linking from Slashdot). My main motivation for writing this has now gone, as I bought an OS X-based desktop too and can synchronise contacts fine now. I might still have a crack at it just for interest's sake though, but I wouldn't count on getting any contact from Mozilla people.
Cheers,
Ian
this is what happens when v hype anything too much (Score:4, Insightful)
Re:That's strange... (Score:5, Insightful)
Re:It's the Branding (Score:5, Insightful)
Mozilla is trying to establish a trustworthy brand and identity, as you say; however, having an identity excludes potential participants, who are being identified as not part of the project. And their fear that other people's versions would reflect badly on them excludes those other people from feeling welcome.
One of the key strengths of the Linux brand is that people you trust for other reasons have a stake in it. Sure, there are people out there who release terrible versions of Linux, but you don't get it from them. There are also people out there who release versions of Linux with special features for just your problem, and that's part of what Linux is about (e.g., Intrinsyc ships a Linux version with special support for the hardware on their embedded devices; the Linux Audio Development project has a version which avoids skips when recording audio; these projects couldn't call themselves Linux if Linus managed the trademark the way Mozilla manages theirs, and it would reduce the recognition of Linux as something that can solve any problem you happen to have).
The point of which is (Score:2, Insightful)
naaaaaahh
Re:Case in point: vcards (Score:5, Insightful)
As I read the comments in the bug, you were looking for technical information (ie, "do I have to create a stream, or is it provided to me by the dialog?" (not a direct quote)), not design. The design should be kept close to the problem, and definitely in the bug. The technical implementation details, and especially minor questions about how you do this or that, don't need to be logged in the bug. Again, as I read it, what you really needed was a comprehensive architecture document of Thunderbird, or failing that at least someone familiar with similar code that could point you in the right direction. That's a task for IRC channels (because the discussion is ephemeral, and doesn't need to be logged for anything but your development purposes) or mailing lists.
Consider it from the approver's point of view. You offered to help, ran into a technical snag, asked a question in an inappropriate forum, and disappeared for 7 months. I get that it's open source, and work is done by individuals in their spare time, but that doesn't sound to me like you were really committed to fixing the bug. If you were, you would've tracked down the information you needed (it wasn't a design question requiring a committee vote), and continued with the work. That's how I define "genuine".
That wasn't aggression, and I'm not affiliated with Firefox in any way (in fact, aside from having it installed but never using it, I have no association with the project at all). To turn it around on you, perhaps Mozilla is failing to build a community because people don't follow through on commitments? Of course, it's more likely that they're failing to build a community because they've failed to build a community. (no, really -- the fact that your technical question went unanswered can be seen as a sign of a lack of community, and short of some group of people stepping up and actively trying to build that community, the community will continue to not grow ...)
No so strange (Score:3, Insightful)
Which sounds funny, but isn't. The only objective definition of bloat is trivial features whose maintenance cost far outweighs their benefit to the user community. I've worked on projects that had really nasty feature bloat, because individual developers were given too much independence, and wasted time working on features that appealed to them. Meanwhile, less sexy but more important features (and worse, fixes for showstopping bugs), went neglected. So yeah, you can have bloat and missing features at the same time.
Re:They often act out their anger. (Score:5, Insightful)
This is NOT a problem with Open Source development but with programmers as a whole, myself included but I try and suppress it. You have to 'give up' code that you have too much ownership in.
The Firefox people are great compared to Microsoft (Score:5, Insightful)
An additional remark:
The problems with reporting bugs in Firefox are trivial compared to reporting bugs to Microsoft, in my experience.
A top-level Microsoft support technician got interested in a very well-documented bug in Windows XP that I reported. He decided, partly as an experiment to teach himself about Microsoft, to work with several Microsoft groups. Result: An entire waste of time of many, many hours, over a period of months.
I've been reporting several bugs in Windows XP for literally years, and they haven't been fixed. If you work with both Linux and Windows XP, do you notice that Linux has a powerful, bug-free Command Line Interface, and the CLI in Windows XP is weak and buggy? (Yes, I know they are working on replacing it.)
Re:Firefox is mostly a cute interface (Score:2, Insightful)
Firefox's Exclusive Developer Policy. (Score:5, Insightful)
It was elaborated on slashdot [slashdot.org] once before.
Re:They often act out their anger. (Score:5, Insightful)
Like any development model, OSS has its good points and its bad points, and that is certainly a bad one.
Re:That's strange... (Score:3, Insightful)
Typical? (Score:5, Insightful)
[dons flame retardant suit]
Re:They often act out their anger. (Score:4, Insightful)
There are probably not many and personally I think this is what drives some of the negativity.
A couple times I have posted a bug to the FireFox Bugzilla, both times they have been duplicates. Both times I have been critisized by the person managing the bug to look before submitting. Both times the title of the bug has been totally different than anything I would have thought of.
Most of the problems come from the lack of dealing with other people. Many of these developers shouldn't be doing the customer interaction. That is why even in small companies 1st level tech support is not the developer who created/developed the project.
Re:Agreed (Score:3, Insightful)
FWIW this will type of thing will gradually wear Microsoft down - I no longer need to pay for MS Office, Open Office is more than good enough (and getting better all the time), eventually the only bit of MS software I'll be running on a windows box will be the OS itself.
Microsoft will shrink or they will have to adapt and start writing more quality software for less cost to the consumer - I fail to see how this is a bad thing unless you hate Microsoft for the sake of it? (I dislike them very much, not for the sake of it but because of their hideous business practices)
Re:They often act out their anger. (Score:4, Insightful)
This happens in every profession at every employer from anyone who has to do work. Its human nature to take the gravy from the plate and give others the left over bones. Of course, this doesn't help when there are no other people to enjoy the left over scraps so they get discarded.
Next time you have a problem, bring lots of gravy. The dogs might attack the problem next time without going after YOU!
More proof that the difference between us and other animals in the kingdom is that we have opposable thumbs. The advantage is we get to meet a lot of monkeys. And an infinite number of them are proficient at typing on a typewriter typing the Complete Works of William Shakespeare while ignoring your very simple question.
Re:They often act out their anger. (Score:5, Insightful)
One thing the FOSS paradigm has done is made it possible that people with no experience in the social aspects of software development to write code that is potentially used by millions of people. It can open up a "cowboy culture" where everyone is at odds with everyone else and where, if I may borrow a line from a certain movie, "we're all our own countries with temporary allies and enemies".
I say this with the benefit of hindsight, to be sure: I was a once a pimply, antisocial code-contributor and inlooking back on my own exchanges I see that I was as bad as it gets: if someone found a bug in what I did, instead of fixing it I would spend all my energy in combating the person who reported it because surely this person was out to get me. It wasn't until a few years later when I got a "professional" job that my boss pulled me asside one day and gave me a half-hour verbal bitch-slap that I realized that a bug report is usually someone who _wants_to_help_me_. Basically, I was too arrogant to see that, and now that I'm "old and wise" I see that same thing on others.
Of course, I'm not saying you should let them off the hook because thay don't know any better.. in fact, I'd hazard the sentement that more bitch-slapping needs to be done in the open-source world!
I don't know were I'm going with this, but that's my two cents.
Re:They often act out their anger. (Score:2, Insightful)
And mods, same applies to you - the whole reason you exist is to sort out the weat from the chaff - a comment like this with a bug number is wheat, a comment like this without a bug number is chaff.
Re:Firefox is mostly a cute interface (Score:5, Insightful)
RSS? PNG support? Popup blocker without a service pack? Proper CSS support? Integrated Sherlock? Tabbed browsing?
Oh wait, those are all features Firefox has that IE doesn't. About the only thing IE has that Firefox doesn't is ActiveX support, and the only good thing that has come from that is keeping me in business (people pay me to clean their computers of spyware/malware).
Re:That's strange... (Score:1, Insightful)
Re:That's strange... (Score:1, Insightful)
Opera's clearly the superior browser, but you still need to find a theme to make it fit in natively.
misconceptions (Score:5, Insightful)
- Most of Firefox's changes come from Gecko, which is done by Mozilla coders (I guess you could call them Gecko coders, although I've never heard anyone say that). There are currently about 70 reviewers, and 20 super-reviewers for mozilla. There's about 84 coders a month (down from the 150+ haydays of the Netscape area)
Re:Mod Parent +5 (and keep it there) (Score:2, Insightful)
Please, if you have mod points, use them. If you don't, either post on topic or shut up and stop polluting the board.
Konqueror too (Score:2, Insightful)
Konqueror isn't as featurefull, of course, but it's really not too far off these days, and it's very lightweight in comparison. Which probably has a lot to do with why Apple choose its rendering engine instead of Mozilla's.
Re:Case in point: vcards (Score:2, Insightful)
I would guess that to be because it was a technical question that needed answered to get him started, and limited the number of people that could respond and it didn't get responded to.
But I can't imagine some duplication of code to get a working prototype presented to be just rejected out of hand as duplicative. I mean it's an iterative process and getting something in front of them is a start. Asa's blog said they had contributions from a thousand developers.
On the other hand you would need a reviewer for it, and I think the point of this thread was that not only Ian's offer was ignored but his patch prototype may have been too.
rd
Re:Typical? (Score:2, Insightful)
They will all gladly download and install your codebase.
A large percentage who come across problems will go back to how they did it before.
A much smaller (but still large quantity) percentage will actually report bugs and problems in running it.
Most people won't download the source at all.
Cost/Benefit ratio - a small bug/UI niggle problem is not worth me getting the source and scratching my head for a few hours just to locate the source of the problem, and then however long to fix it.
Theres a small team of bug blasters who TRY to force bugs in the software, usually to the irk of the main dev - they have a special knack for breaking code. Most security issues wouldn't come to light without their help.
So, yes, many eyes will see the code.
Many eyes will tell you about the problems.
Few or one will fix the code.
Perhaps we should find a way to send stimulants to them
Re:Agreed (Score:2, Insightful)
There are other ways of looking at this. For one, and this is probably not the case and you are not likely to agree, maybe they are donating their time and effort to the cause of making the average computer user's experience better, and sine the average computer user is going to be on windows, they are working where the most good would be done.
Or there is the classic "they'll see how good Firefox is and switch to an open source OS" argument. Not bloody likely, unless you are looking SERIOUSLY long term. Firefox IS proving that an open source app can be user friendly, polished, and do the job better than commercial software, and thus showing the promise of a future open source OS. But as of right now, there is no open source OS that is as easy for the average user to get going and use as Firefox is. So nobody is going to be converting just yet. But again, looking long term, it IS a start.
Lastly, maybe developing primarly for Windows, but also making sure it runs on linux and mac is their way of targeting the largest user base, but making sure that said users can have the same experience across platforms. Telling them they should fish only in the open source pond makes you sound just as bad as Bill Gates, who generally wants developers to fish only in the Windows pond. By developing most apps with only linux in mind, and leaving windows users with ports that generally come off as clunky and unpolished, you are making open source look bad to Windows users, and generally reducing the chance of them ditching Windows. By developing directly towards Windows, and doing it well, they are making open source look good. If more apps were developed in this way, eventually the only thing anybody would be using of Microsoft's would be the OS.
That's not good enough for you? Well guess what, THAT is step one towards shrinking their desktop market share. Because once you ensure that the only thing a user is using from Microsoft is Windows, and by offering all their other apps on Mac/Linux, you are making it MUCH more likely that a user will switch. Until you do that, a majority of users *never will*.
Solve the Open Source problem, not avoid it. (Score:3, Insightful)
[Grin]
Whatever the answer is, it is definitely not in commercial software. See my comment just above: The Firefox people are great compared to Microsoft [slashdot.org]. With Microsoft, you pay to be disrespected.
Re:Agreed (Score:5, Insightful)
Maybe they aren't doing the project "for free and open source software" but for users who want a decent browser on any platform? Mozilla aren't fighting any war for the desktop, because they make browsers, not desktops.
That seems to be their goal, so quite obviously windows is included, and the Mac. I notice you don't comment on the Mac, but that is also a closed source OS, even if it has Darwin underneath.
Your right that offering FireFox for Windows isn't going to get people to move off Windows. I've seen some people make the argument, but never seen it as being listed as a goal of the Moz and FF people. You can't call it failure if it wasn't their goal.
In fact, you seem to be against cross platform development altogether. It is hardly the only OSS software to do this (Open Office anyone?), and it is usually touted
Open source isn't some huge, unified movement dedicated to destroying Microsoft (although some individuals are). There isn't a "true open source" community, maybe you mean the free software community, which is based on the ideals of free software, rather than the more pragmatic open source community? (not that the two are mutually exclusive). Even then I'd think the point of open source is freedom, and that includes the freedom to delevop in MS Windows. The GPL and other licenses don't say you can't develop on a closed source OS.
Like freedom of speech lets people say things you don't like, including ideas that are against freedom of speech. Freedom to code lets you code for closed source systems, even if the people that came up with the idea don't like what you are coding for.
It isn't any half way measure, they are doing exactly what they want to do (and other major OSS projects do), and they are doing very well. It just isn't what you want, but you are free to go make a *nix only fork if you think it will get more support by loosing all the Windows people.
Re:ok (Score:1, Insightful)
what i saw in the first link was 2 pages of folders where the code for mozilla1.7 is burried.
what is the api between ui and gecko? what is the datastructure and related code for tabbed browsing? how do i add a new html tag to be recognized? etc.. the answer to those questions should not be 'RTF code'. I don't want to browse through KLOC to find the answer.
I've read the linux kernel code commentary (black book) where they describe VM subsystem, IO subsystem, kernel module interface, thread control architecture (with spin locks and all) - THAT was helpful when i started reading the code. the other way around is not helpful (timewise) - reading the code to get the mental picture.
Yes documentation becomes outdated, but having something cuts learning curve way down, and making patches to documentation is easier than writing it from scratch.
Process (part 2) (Score:3, Insightful)
I really don't think fancy new features should (can) be a top priority right now anymore but instead the core problem of getting new developers needs to be solved not just for now but also for the future. While I agree that changing things like the versioning system won't change much I believe splitting up the codebase into more handy chunks and giving "outsiders" more power (eg regular contributers should need no code review) should be the goal. I think it's this sharp devision between core (Foundation) and outside (everybody else) developers that is the main problem here.
Managers (Score:2, Insightful)
Documentation (Score:3, Insightful)
Documentation would also help in the review process.
Re:It's the Branding (Score:2, Insightful)
Re:It's the Branding (Score:5, Insightful)
A lot of spyware vendors for example would be tempted to ship their own special 'enhanced' version of Firefox with the same branding and call it Firefox+ or something, with built in weather, clock, terrorist headcount, free desktop pictures, plus of course key logging, pop-ups and god knows what else. Just enough fluff to make it seem useful to a non-expert user, and just enough spyware to keep them happy. Then when it all comes out that it is spyware, Firefox will be tarred with the same brush.
That kind of thing is one good reason not to allow just anyone to use the brand.
Re:Back on topic: (Score:2, Insightful)
Huh? Its not a java model, its an XML based one (XUL). Unfortunately there doesn't seem to be anything in the way of an IDE (or an IDE plugin) to create those files, which would make creating one a lot easier.
But 99% of the extensions I've seen are nothing more than a window or two with one or two options. So doing the XUL coding by hand isn't that insurmountable, even for a PhD
Re:Back on topic: (Score:3, Insightful)
Wow, big deal. You can research stuff that no one has ever researched before. How does that qualify anything you can't do as mind-blowingly difficult?
As for a weekend device driver, I'm gald that the dominant software supplier in my shop spends more than 48 hours writing code that is going to be doing the brunt of the I/O work on my hardware....
Re:It's the Branding (Score:3, Insightful)
A bad app, or one that crashes a lot wastes time.
Time has a monetary value when applied to a person (one hour work == so much money).
Even stuff that's free to download then has a cost associated to use it.
This is why OSS didn't steamroller MS right out of the enterprise. People are still evaluating the cost of using it.
And cost comes right back to being economically viable.
Re:Firefox is mostly a cute interface (Score:1, Insightful)
I mean, if it is a Firefox developer - he is probably going to be quite biased towards how "awesome" Firefox is and say anything necessary to believe him.
I mean, if you contribute a lot of time to a project and someone says something not particularly positive - which stance are you going to take? Offensive, or defensive?
Re:Bah, what's the big deal? (Score:3, Insightful)
The fact of the matter is that developers - open-source or closed-source - would largely prefer to work on writing new code rather than maintaining old code (especially bug fixes). New code is trailblazing and ego-stroking and cool, while bug fixes don't have nearly the same sexiness. Once a project is deployed, enthusiasm for it tends to fall away.
Now, with closed-source commercial projects you're paying people to maintain the code throughout its whole life cycle, so you can ensure that the software is enhanced and fixed as is appropriate for your business needs. People will grumble and try to squirm out of it, but if their paychecks rely on getting bug fixes and small enhancements done they can be forced to finish the work. But if you're volunteering your time to a project freely you have far more flexibility to pick and choose what you work on. I think the enthusiasm for getting 1.0.1 out the door is far thinner and weaker than the excitement generated on the march towards 1.0. This is what I perceive to be the Achilles heel of most large-scale open-source projects that don't at least have some sort of corporate interest (and therefore backing) to ensure forward progress will be continued.
This isn't an open-source bash, by the way - I have great respect for people who donate their time freely to these sorts of efforts, and open-source has done some pretty amazing things for software development.
Re:Firefox is mostly a cute interface (Score:4, Insightful)
Re:That's strange... (Score:5, Insightful)
Conversely, FF's main aim was to develop a leaner browser than the Moz suite whilst still maintaining a Moz/Opera-like level of functionality. Now that the browser is more-or-less set in stone, expect to see alot of work being done in the smaller/faster areas. Especially with the up-and-coming Gecko-powered embedded browser that's being worked on.
Re:Firefox is mostly a cute interface (Score:3, Insightful)
It comes pre-installed on every Windows box. Don't underestimate availability.
Re:That's strange... (Score:2, Insightful)
Re:How else to topple IE? Re:It's the Branding (Score:3, Insightful)
In this very same group of people on desktops with only a FF icon, I've heard questions like "where's internet?" not realizing FF is a web browser. I even know people who don't know what a web browser is, or even that IE's name contains the word "explorer" as well. They only want "internet".
Putting "internet" in IE's name was a superb marketing decision in terms of brainwashing.
I tried (Score:4, Insightful)
Re:Firefox is mostly a cute interface (Score:2, Insightful)
I mean, if it is a Firefox developer - he is probably going to be quite biased towards how "awesome" Firefox is and say anything necessary to believe him.
If the argument were about how awesome Firefox is, I'd agree. In this case, it's an argument of exactly what Firefox is and how it is constructed, and how it differs from Mozilla. It's just plain silly to argue with one of the developers who knows exactly what the differences are.
Re:Firefox is mostly a cute interface (Score:2, Insightful)
all versions of firefox also consume 150+ megs of resident memory
Sigh. Shall we get into that issue again? Here's the explanation, for the umpteenth time: it's irrelevant how much memory you see allocated for Firefox in your Task Manager. Firefox uses as much FREE memory as it can grab, because RAM is faster than pulling stuff from disk. What the hell good is having free RAM? You should never have free RAM, IMO, all available RAM should be used by smart applications that will use it to access data faster. Firefox is such an application. As long as it allows other newly starting applications to get their fair share of the RAM and doesn't hog it all for itself or makes it unavailable by leeking, it's all GOOD NEWS that Firefox uses lots of RAM. It damn well should.
Re:Firefox is mostly a cute interface (Score:2, Insightful)
Re:Firefox is mostly a cute interface (Score:2, Insightful)
Re:Firefox's Exclusive Developer Policy. (Score:3, Insightful)
Well, perhaps inviting some more people if only to help digest the volume of issues in the bug tracker would be helpful. Sometimes secretaries really are essential. (It sucks, BTW, that secretaries are falling out of fashion because the engineers can do their own flight reservations on some crappy website. That's a waste of time, dammit, when someone else can do it much more efficiently.)