[arch-dev-public] Reactive development [was: Repository cleanup]
On 9/12/07, Simo Leone <simo@archlinux.org> wrote:
What I'm trying to get across here is that some parts of this dev team have adopted a reactive development model. By this I mean that the majority of your devel is driven by whatever issues come up, as they come up. Do you realize why that's bad?
Typically projects will go through some solid research and plannning to avoid this situation. I've heard that when the developer has a solid understanding of the problem, they often develop more generic tools that have more unforseen uses in the future than when they develop reactively. This is why, for instance, pacman is so versatile in that it alone can be used to solve all these problems (like phil said). Gee, what a great tool.
Sorry for the slight OT, it's kind of related.
Wow. Simo said exactly what I've been feeling for some time now, much more concisely that I even had formulated the thoughts. This is also a very CRITICAL point, and the root of every problem we've had recently. See, ok. Rant-ish time now. I know a lot of you don't do this for a living. You don't work in software. Me? I've been doing this for over 7 years now professionally. Companies large and small, new companies with new technology, old companies with giant 100MHz mainframes, writing code in over 10 different languages. I've written bugs that made people laugh, and bugs that cost a company thousands of dollars. I've been there and done every stupid bad thing you can imagine (update without a where clause on a production DB anyone?) I've been forced to learn how to go about the process here. That's our problem. We have a disparity here between people who don't know common software development practices, and those who do. Those who know these processes expect everyone to implicitly follow them, and those who don't know them think they're silly. Here's the long-and-short of it. When you have cost a company $10000 due to one bad line of code, you learn to appreciate what a one hour code review can do. You learn to appreciate proper communication channels when two people make "hotfixes" to a live DB that break each other. This is what we're lacking. And sadly, it's a word everyone hates. We're missing "process". It is a _fact_ that as groups grow, they need more control. A group of 5 of us could easily coordinate things, but we're well over 25 (Phil said 30? wow!) and at this point we CAN'T keep doing things without proper process. It's just silly. Communication channels must be kept in check. If you do anything that affects the rest of us, then we should know about it before the users do. This includes important module changes (oh crap guys, I broke your X!), changes to initscripts (isatty is missing, btw), new ISO releases (I burned 3 copies of "Don't Panic" 2 days before the new release, for the record), and just... well... anything. Seriously, communication isn't hard. Hell. I know english may be a barrier, but why don't you write in german or something with "Please Translate:" at the top just so we know something is happening. That said, we have always held that the mailing lists are our proper channel of communication. This is important. Hell, it's critical. Saying "hey guess what!" on IRC doesn't cut it. The mailing list not only informs everyone (not all devs are on IRC) but also has archival history. We need to communicate. We need to follow processes. If you find a bug or a user report, and you're unclear about it - **say something**. The great word being flung around these days is "unilateral" - we're not a group of 30 independent people doing their own things, we're a group of 30 people working together. We need to stop reacting and doing our own thing. If something seems questionable, say something. Say "hey guys what do you think about N?". Just bring it up. Not everyone will respond. That's expected. Sometimes you have no opinion, but at least we KNOW what's happening. Guys, seriously. We're floundering. Something needs to be done, and it's not up to one or two of us. It's up to all of us.
Wednesday 12 September 2007, Aaron Griffin wrote: | This is what we're lacking. And sadly, it's a word everyone hates. | We're missing "process". i agree. it was quite easy earlier with only 10 people... and i guess even before that, it was even easier to do minimal process without risking progress. :) | It's up to all of us. well spoken! - D
Still poking my head in here once in a while :) On Thu, September 13, 2007 03:38, Aaron Griffin wrote:
Wow. Simo said exactly what I've been feeling for some time now, much more concisely that I even had formulated the thoughts.
Likewise.
That's our problem. We have a disparity here between people who don't know common software development practices, and those who do. Those who know these processes expect everyone to implicitly follow them, and those who don't know them think they're silly.
I've got no experience in the industry... so I guess I can ask here: care to lay them or something down for the uninformed?
This is what we're lacking. And sadly, it's a word everyone hates. We're missing "process".
Last semester I did Organisational Behaviour as the first subject in my business degree. At the end of the course I was wishing I'd used Arch as a focus for my assignment - I could see a lot of issues. That's why I tried to start the goals discussion. We need process, but to formulate those processes, we need to know what we are working towards.
That said, we have always held that the mailing lists are our proper channel of communication. This is important. Hell, it's critical. Saying "hey guess what!" on IRC doesn't cut it. The mailing list not only informs everyone (not all devs are on IRC) but also has archival history.
Exactly. IRC is a secondary, convenience channel, just in case developer Y is online. It annoys me when people say "oh but we discussed it on irc" -- I'm timezone "handicapped" compared to some of you or often cannot make it online.
We need to communicate. We need to follow processes. If you find a bug or a user report, and you're unclear about it - **say something**. The great word being flung around these days is "unilateral" - we're not a group of 30 independent people doing their own things, we're a group of 30 people working together.
Guys, seriously. We're floundering. Something needs to be done, and it's not up to one or two of us. It's up to all of us.
Agreed. Seeing as many people will just "ok" this thread and let it lie... these are some ideas i've thought of in the past... Aaron's defined the problem, let's solve it. - Scheduled Monthly Meetings. Importantly, people need to prepare for the meeting, and be ready to make a decision on the topics listed on the agenda. No more "lets just leave it for the list". - Groups. Divide ourselves. We don't need everyone in a meeting to discuss a mkinitcpio/kernel change, only those interested/concerned/involved with it. Smaller groups will make decisions much easier. Impromptu meetings are easier to organise, and at the end you can say "Kernel group decided this: agree/disagree". - Goals. We need direction. Direction is needed to make decisions. Goals give a foundation for decisions. - Checks. Keep an eye on each other, keep each other in check. If someone's ignoring a bug, or not doing something, make it known, send a mail, point it out. If you don't have time to do something, send a mail to the list and ask someone else. This is where groups would help, making something more people's responsibility. - Stop waiting for arch-repos. It's still not here. We can do some stuff now. James
That said, we have always held that the mailing lists are our proper channel of communication. This is important. Hell, it's critical. Saying "hey guess what!" on IRC doesn't cut it. The mailing list not only informs everyone (not all devs are on IRC) but also has archival history.
Exactly. IRC is a secondary, convenience channel, just in case developer Y is online. It annoys me when people say "oh but we discussed it on irc" -- I'm timezone "handicapped" compared to some of you or often cannot make it online.
I think we just have to keep bringing up this point until people start to remember it.
We need to communicate. We need to follow processes. If you find a bug or a user report, and you're unclear about it - **say something**. The great word being flung around these days is "unilateral" - we're not a group of 30 independent people doing their own things, we're a group of 30 people working together.
Guys, seriously. We're floundering. Something needs to be done, and it's not up to one or two of us. It's up to all of us.
Agreed.
Seeing as many people will just "ok" this thread and let it lie... these are some ideas i've thought of in the past... Aaron's defined the problem, let's solve it.
- Scheduled Monthly Meetings. Importantly, people need to prepare for the meeting, and be ready to make a decision on the topics listed on the agenda. No more "lets just leave it for the list".
I think this is an excellent idea. Mixed with the point below, this will be killer.
- Groups. Divide ourselves. We don't need everyone in a meeting to discuss a mkinitcpio/kernel change, only those interested/concerned/involved with it. Smaller groups will make decisions much easier. Impromptu meetings are easier to organise, and at the end you can say "Kernel group decided this: agree/disagree".
I think this is just as good as the one above. This is what I was trying to do when we started the Divisions that are listed in the Arch Dev wiki. I think the missing component is the monthly meetings. From now on, for a division to exist it must have a regular meeting date and post the agenda and minutes from their meetings. For those who don't remember the current groups are: Foundation, Pacman, Documentation, Internationalization, and Community. I will be sending an email out shortly about the groups I am in. I'm going to be bringing up these meetings more and more often on the list.
- Goals. We need direction. Direction is needed to make decisions. Goals give a foundation for decisions.
- Checks. Keep an eye on each other, keep each other in check. If someone's ignoring a bug, or not doing something, make it known, send a mail, point it out. If you don't have time to do something, send a mail to the list and ask someone else. This is where groups would help, making something more people's responsibility.
This one is also one we should be doing more of. I think there's an underlying problem here that hasn't been addressed. On that note, Roman is really good at bugging people about bugs.
- Stop waiting for arch-repos. It's still not here. We can do some stuff now.
Oooo, ouch. That one is pretty much my fault. It sucks. What have we done lately that was waiting on arch-repos? Jason
Jason Chu schrieb:
Oooo, ouch. That one is pretty much my fault. It sucks. What have we done lately that was waiting on arch-repos?
Everything. Now that we want to move packages and repos around, we need it even more. And CVS is really not a solution anymore. Moving to others has been waiting on arch-repos.
participants (5)
-
Aaron Griffin
-
Damir Perisa
-
James Rayner
-
Jason Chu
-
Thomas Bächler