Software Totemism
250bpm.com
250bpm.com
I did get a lot of that done, but this spirit of chummy familiarity was pervasive. Every problem of getting people to cooperate and collaborate more was approached as a problem of not enough socializing. But I don’t want to socialize with lots of random people. I want to make Debian more awesome, not shoot the breeze with random people with wine and cheese (yes, DebConf has a Wine and Cheese event in addition to the large social outing). Beyond having a title and summary for talks (and some rather narrowly scoped BoF sessions), there were no concerted efforts to get people in the same field of interest to get to speaking about common topics and solving common problems. I voiced a complaint to someone about this, that in order to find anyone who was interested in the topics I wanted to discuss I would have had to basically randomly wander around and ask every person I met about what they did, which would have taken a lot of time and energy. But the person I talked to saw it as a good thing to essentially force me to socialize with people even though pure socializing was not my goal.
Optimizing groups to be more social to the detriment of all else is not what you want to do if your group has any other overriding reason to exist beyond being a pure social club, since you exclude people who would rather work towards the group’s proclaimed goal than being social and chatting with friends.
http://ridiculouslyefficient.com/boost-employee-productivity...
I think the precious little time at Debconf is good for socialising. It seems ok if that's the main purpose. There is already plenty technical discussion in Debian mailing lists.
2. I was at Debconf for two weeks. I hardly consider that to be “precious little time”.
Emphatically not wanting to socialise sounds exactly like you think socialising is not important. A less emphatic "no" might still make it sound like you think it has some importance.
And two weeks a year is precious little time, if you compare it with having lunch with your coworkers every day.
I hate the conference socializing, too.
Important work conversations happen at work. Not on the break.
1) Give a talk about the technical problem you are interested in. People who also care will attend, and later meet with you to discuss the topic (and related ones) in person. Giving a talk yourself is probably the best way to find people interested in your subject.
2) At Pycon you can book open spaces (e.g. https://us.pycon.org/2015/community/openspaces/). There are basically a bunch of small rooms, and you can book some time slots to assign the room a certain topic, and see whether like-minded people will show up. (You could also do something non-technical like board games...)
3) After Pycon proper, there are usually a couple of days of code sprints (e.g. https://us.pycon.org/2015/community/sprints/). This gives people the chance to advance an open source project together. Some people use that as a way to meet in person with other developers, or it's possible to recruit new developers for a project.
As such, I'm not surprised that there was significantly more interest in self-preservation and socializing than in any technical work. I don't recall Debian ever pushing boundaries.
I never said anything to the contrary, but rather that those are all secondary to the primary political goals. A distribution having a detailed technical policy does not refute any of this.
I don't support Red Hat, either. dpkg's original conception was a tarball-based package management Perl script with rudimentary substring match dependency processing. It evolved as time went on.
GNU is the same. Politics first, technology second. They've generally been much better at both, however.
Everyone has their reasons. Some people are motivated by producing beautiful functional code. Others are motivated by the ideals of Free Software. Still others want to use the community to sell hardware. At the end of the day, as long as they're all moving in a similar direction, the movement is successful.
Whether or not the movement is a good thing depends on your values and motives.
And that may well be what is wrong with the Linux ecosystem today. I keep seeing formerly technical "projects" go social over and over and over, with the inevitable result that it turns political and gets derailed from its technical efforts.
This in large part because going social attracts people that end up using the name and reputation of the project to ride political hobby horses (potentially for social ladder climbing outside the project).
When I network, I want to know that this group, here, at this time or in this room or at this table, is actually interested in a specific topic which I wish to discuss. I can’t do that with a conference of hundreds of people most of which are not interested in the topics I want to discuss.
A conference should not be simply an opportunity to socialize. If that’s how you do conferences, then you’re doing them wrong.
Networking is about meeting people you can get along with who maybe, one day, some day, if things work nicely, might have a mutual benefit. You don't begin it with a pretense about what they can do for you now. That sort of opportunism is phony and can be smelled from a mile away. Networking works best when you just meet people to become friends with them, then hope to figure out ways you can help them, as friends do. My experience is that people pay it back in spades.
If it were just about merits, resumes would be a thing that actually worked and were important. Conferences are about networking and networking is about socialization.
Yeah, it could be years before the networking you do today pays off. That's just the way it is. You're dealing with people, not machines. It's like dating, you can't magic up a spell to make someone like you. People have their own agency, but they tend to congregate around and like to help out other people who are friendly and helpful without expecting anything in return, too.
You think its selfish when some knows how we wants to help, and wants to find the people he wants to help?
I feel like I am taking crazy pills, where technical content gets zero attention in a technical project. It sounds to me like the conference are getting taken over by vacationers who want to have a party week (possibly soft-embezzled by expensing an employer) pushing out people who care about the project.
It reminds of when the college resume padders took over the high school math club, and instituted a substantial membership fee to finance a trip to a math competition where they didn't actually compete, and I had to create a new club to gather people for math activities.
Every technical project--and I think you'll find few people within Debian who'd claim it to be primarily one, it's a social movement with a technical component--is fundamentally an interpersonal enterprise, and face-to-face interaction is exactly that. Positive interactions are the underpinning, in functional communities, of the assumption of good faith and the ability to work with people who do not necessarily agree with you; it is the difference between "ugh, Bob is such a prick and he's wrong" and "I like Bob, we disagree, let's hash this out." You may (think that you do) not need this. Most people do. And most people recognize that they're better off working within a culture of positivity, rather than the bizarre flat "professionalism" you've described in this thread.
Everything, always, is about people. Assuming otherwise leads inevitably to disastrous ends. I think Debian, among others, has done well to harness that truth. We aren't a bunch of meat robots, no matter how hard you assert it.
What is necessary is a topic to narrow the scope down to be few enough people for me to actually have time to talk to most of them. I can’t (and I feel I shouldn’t be made to) talk to hundreds of people merely to find them. Also, I could be of more help to people who need help in a field I know something about.
> Conferences are about networking and networking is about socialization.
Why do you assert this, when my point was that it is not so?
If the programme really never mattered then the organisers wouldn't put as much trouble into it that they do.
https://web.archive.org/web/20130808111450/http://ryanfunduk...
(Previously discussed here: https://news.ycombinator.com/item?id=6373983)
I wish this kind of "limited projects" engineering skill would be easier to learn.
The window manager inherently requires a lot of configuration because everyone wants window managers to work differently, and even the same person will want to change how they use their window manager. So I've written about a dozen implementations of this; the most popular one one just wraps system calls as Lua functions, but it's also the most difficult to maintain because of the complexity of wrapping system callbacks with Lua callbacks and tracking them and allowing live code reloading etc.
The fuzzy matcher was written in one day, and I use it every single week day. It just uses stdin and stdout, and takes very few options. I haven't compiled it since I wrote it, and it's working beautifully.
So all in all I'd say the UNIX philosophy is a win.
I find it makes finding professionalism a lot harder. Most companies expect you to be friends with your coworkers/boss/etc. and then leverage that to exploit their workforce.
I like the artist alternative he proposes. With github you can now take ownership of your work/contributions. You can go into an open source project and make a contribution and then never touch that software again - yet your accomplishment is something that's tracked and stays with you
I don't get the wanting to be anti-social bit, but I do get the part about projects that are sometimes too much about the social bit. Or rather, the stress that can create. I felt some of this at times, namely the idea of a project became that it must absorb all contributions, and trying to not offend people while trying to mediate that.
This is exactly what a project shouldn't do, and in many cases, it's a giant challenge.
OTOH, much of what spawned good OSS was people working together across company boundaries, and that means letting up a bit to let other people get their ideas in, even if those ideas aren't the ideas you neccessarily feel are the most important.
It's a hard balance.
I do like socializing with people I meet through OSS projects, but it can be hard to close the door and say "this code isn't good enough" and "I'm not interested in this" without being percieved as anti-social, or greatly overcommunicating to avoid percieved slights.
I do agree with one thing I did read about 0mq though, which was it wants to merge things first, and break things. I prefer more to see software that is designed and strictly looked after. The social element is definitely not first, but it sound be fun.
The problem is, with a lot of people in the game and not monetarily invested (this is free, etc), people can get their feelings hitched to the project more than they ordinarily should, if it was a business transaction -- they feel their price for spreading things or contributing should be that the big social element takes over and everybody gets their code in... which is anti-quality in the long run.
Again, balance -- and really only you get to feel this when things start getting really busy.
I do believe software can be finished though. If you're just continuing it to keep the community around, I think that's when you don't have a purpose. But that doesn't really happen unless you're doing it for fun (like a game) - and if so, great!
But yeah, the first goal of OSS isn't just to collaborate for the sake thereof. It should be for the purpose, and you can still enjoy the heck out of the collaboration part.
Let's look at the data. nanomsg ("the technical endeavor") is, objectively, a project with declining activity, and little of any import has happened in 2015. [0] libzmq (the "social club") merges some 20 patches/week. [1]
Now, maybe this is because nanomsg is "done", and has simply already achieved its status as a "small component that does one thing and does it well" where nothing else needs to be added, while libzmq faces "strong pressure to add one more option, one more feature".
Except that nanomsg is now in its fourth year of unstable beta, and even its own mailing list is riddled with statements that things are so bad don't even bother to file bugs [2], features are "horribly broken" [3], and you should use a different project instead [4]. From my own experience deploying nanomsg in large environments, this criticism (from core developers!) is absolutely true.
One cannot look at these projects and fairly conclude that there is any tradeoff at all between "software as a social club" and "software as a technical endeavor". In reality libzmq is both, while nanomsg cannot even succeed at one. libzmq may be a social club, but it's a social club that ships.
Don't get me wrong, libzmq has plenty of problems, technical and otherwise. I am no champion of it. And it was totally plausible, in 2012, that the philosophy enshrined in nanomsg would produce a better library. I believed that.
What is wrong is now – now that we have the data – to ignore it and pretend that doubling down on a failing strategy is a good idea. What is wrong is to gloss the serious technical inferiorities of nanomsg as a "personality difference", or that the reason it is in a perpetually unusable state is because "we focus on the code".
For nanomsg to be healthy, it needs to do a real postmortem. Admit things aren't working. Think about why. Change the philosophy to something that isn't proven to be broken. Kill some of the sacred cows.
Instead, puff pieces like this are written, that tell stories that "feel true" to developers instead of addressing the real facts at any point. The software can never get healthy when this is the approach.
[0] https://github.com/nanomsg/nanomsg/graphs/contributors
[1] https://github.com/zeromq/libzmq/graphs/contributors
[2] http://www.freelists.org/post/nanomsg/inproc-bugs,1
[3] http://www.freelists.org/post/nanomsg/v07beta-released
[4] http://www.freelists.org/post/nanomsg/release-of-nanomsg06be...
Something i get the feeling started with the web going commercial, and people that was more interested in presentation and bullshitting than technical aspects smelled money and potential fame.
And it has been going down hill ever since...
It is disingenous to pretend that writing software is a pure robotic activity that can be separated from its humanity.
The modern approach to contrast is a semantically versioned registry like npm. The next step is to do something similar with web assembly that can handle many programming languages.