[Numpy-discussion] What is consensus anyway
Wed Apr 25 11:39:32 CDT 2012
> I don't agree here. People work on open source to scratch an itch, so the process of making a contribution needs to be easy. Widespread veto makes it more difficult and instead of opening up the process, closes it down. There is less freedom, not more. That is one of the reasons that the smaller scikits attract people, they have more freedom to do what they want and fewer people to answer to. Scipy also has some of that advantage because there are a number of packages to choose from. The more strict the process and the more people to please, the less appealing the environment becomes. This can be observed in practice and the voluntary nature of FOSS amplifies the effect.
It is true that it is easier to get developers to contribute to small projects where they can control exactly what happens and not have to appeal to a wider audience to get code changed and committed. This effect is well-illustrated by the emergence of scikits in the presence of SciPy.
However, the idea that "people work on open source to scratch an itch" is incomplete. This is certainly one of the reasons volunteers work on open source. There are many people, however, that work on open source as part of their job. In the particular instance of the missing data support, Mark did much of the work as part of his job. It wasn't just to scratch an itch. So, we should not make assumptions on the basis of this incomplete model.
NumPy is far-beyond the mode of a few people scratching an itch. It is in wide-spread use. It is a large project with a great deal of history and a diverse user-community. It needs people full-time to help maintain it. It needs maintainers who listen actively to anyone who will express their concerns cogently. It needs maintainers who recognize that any concern that somebody expresses is typically not a unique view. We cannot expect to find people like that who are just interested in "scratching an itch" and always working for free.
Most projects suffer from lack of feedback. We should be worried about how to get more feedback and input from *just users* and be very sensitive to anyone feeling like their legitimate concerns are not being heard. Most people, rather than express their concerns, will just work-around the problem, write their own stuff, or move on to other languages and approaches.
Your point about somebody writing the code is absolutely true, I would just suggest that the view that FOSS is always just volunteer labor needs to expand. People do work full time on FOSS as part of their job. We need to bring that to NumPy. I know of at least 2 other people besides me who are actively trying to make this possible.
At Continuum we offer the opportunity to work on NumPy. We plan to continue this. We are hiring. In this context, I'm especially interested in making sure that it's not just the developers who get to decide what happens to NumPy. Nathaniel has clarified very well what "veto-power" really means. It's not absolute, it just means that users who write clear arguments get "listened to" actively. It doesn't replace the need for developers with wisdom and understanding of user-experiences, but "active listening" is a useful skill that we could all improve on: http://en.wikipedia.org/wiki/Active_listening A list full of bright, interested, active listeners is the kind of culture we need on this list. It's the kind of attitude we need from maintainers of NumPy.
> But in the end, someone has to write the code. Steve McConnell (Code Complete) estimates that even in carefully planned projects code construction will take up 60-80 percent of the time and effort. And if the code isn't written, nothing else matters much. That is why people who write code are essential to a project, no amount of structure will take their place. And here again the voluntary nature of FOSS comes into play, folks can't be ordered to do the work. It can be suggested that certain things be done, and the desire to work with the group will lead people to do work they wouldn't consider doing for themselves, but unless they are interested in a particular feature they won't generally be motivated to sit down and devote the effort needed to get it done just because someone else wants it. And they will rightly be offended if anyone demands that they volunteer their work to implement some feature in a particular way. They have to be led there, not pushed.
> NumPy-Discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion