Getting the Ball Rolling

CyanWorlds.com Engine Project Management
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Getting the Ball Rolling

Post by JWPlatt »

Mac_Fife wrote:...JW will no doubt respond more fully on your post once he gets some time later.
There really is no hope of my posting of anything in comparison with the excellent discussion between rarified and Branan. I like what I'm seeing and we will probably defer to what they work out together.

I like the idea of lowering the barriers for users of Bitbucket - a site I already encourage - with the entry level they need to get going with something familiar. That said, no one can guarantee everyone will use Bitbucket. I'd love a view of the entire tree of repos out there, but there appears to be no good way to achieve it and have the freedom to choose. That brings us back to making sure to maintain as much history as possible on Foundry. That seems to be where there is agreement so far. There is great strength in being able to track things from issue to fix to review to build from the beginning, but from the discussion it looks like there is a compromise on history and tracking. How do other large open source projects using Atlassian tools handle it? It's worth a look.

Keep in mind the choice of tools, Atlassian in particular, is not only because they are for the enterprise, or what Cyan uses, making their participation a little easier should they want to, but also to offer an attractive level of development support to professional projects wishing to work with us if they see value in that. We need to be very mindful of supporting the current fan community while also allowing for growth.
Perfect speed is being there.
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Getting the Ball Rolling

Post by a'moaca' »

In my professional life I have worked with quite a few developers. Here's a fact: smart, experienced, effective developers write bugs. I, personally, will have trouble accepting that if these developers, who have spent whole careers on their craft, write bugs, people who come along with contributions won't.

Code review is not about "babysitting". I'm sorry, but if you think it is, you need to rethink. Code review is not about any given individual: It's about preventing bugs. Someone else thinking about your code can see new things. I have been in projects both with and without code review processes, and I sure do hate spending days on a bug that would have been found had we done code reviews.

But for code review to work, the reviewers have to believe they are doing something important. If they don't think so it's a waste of time. Me, I find real bugs doing code reviews all the time. Should my company be shipping that code unreviewed because it's somewhat inconvenient and could be misconstrued as "babysitting"?

- a'moaca'
User avatar
branan
Member
Posts: 84
Joined: Wed Apr 06, 2011 11:35 pm

Re: Getting the Ball Rolling

Post by branan »

JWPlatt wrote:Keep in mind the choice of tools, Atlassian in particular, is not only because they are for the enterprise, or what Cyan uses, making their participation a little easier should they want to, but also to offer an attractive level of development support to professional projects wishing to work with us if they see value in that. We need to be very mindful of supporting the current fan community while also allowing for growth.
Keeping in mind the possibility of professional investment in a project is always good, but focusing on it at the expense of ease-of-entry for casual developers is a very poor decision, IMO.

a'moaca: I'm not saying code review is bad. But in my experience with smaller open-source projects, a more informal review system is more effective than an enterprisy set of policies. If you or someone else is willing to be a dedicated manager instead of a developer, than the sort of setup you guys seem to be in favor of can certainly work. I'm willing to review code as developers ask for it, and as large patches come through. I'm not willing to be a manager and watch over developers. I want to work with them as a peer to review their code as they ask for it and when I see its necessary. And for a small group of developers, I've seen in several other open-source projects that more work gets done if the process is less intrusive.
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Getting the Ball Rolling

Post by a'moaca' »

Then why did you say developers don't need to be babysat? That's a pretty dismissive term.

Anyway, I am on record, in this very forum, saying I don't much like Crucible, and that I don't care how the review is carried out so long as it gets done. You still seem to argue that we should not require reviews. I don't think voluntary code review gets you there, precisely because it is somewhat inconvenient.

But perhaps our problem is that I don't think CWE is a "smaller project". I think it is a large, complex project. Unless you think Cyan has all those bugs because they are dumber than their fans? Whether it has a "small group of developers" is as yet totally unclear. I do, however, think it's quite clear that you can't assume it will be ONE small group of developers. My opinion is that OpenUru.org has to care about the process of the final, main repository. And that means it has to, somehow, be able to meld contributions from multiple sources into something that works. I don't care how branches and groups manage their code, but someone who delivers code users expect to work (as opposed to expect to have trouble with) should expect review. In my book. I don't think "open source" has any bearing on that.

- a'moaca'
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Getting the Ball Rolling

Post by JWPlatt »

I urge anyone to search on the Myst Online Open Source release news and then say whether or not one gains a larger sense of scope and responsibility for this project.
Perfect speed is being there.
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Getting the Ball Rolling

Post by JWPlatt »

Firefox 5 has been in the news a lot lately with their change in release frequency. So just for giggles, I looked up their development process.

http://mozilla.github.com/process-relea ... _overview/ (Process)
https://developer.mozilla.org/En/Develo ... it_a_Patch (Patches)
https://developer.mozilla.org/devnews/i ... -releases/ (Walkthough)

Reviews play a significant role.

I don't know how much it applies to us; I need to review it further. But we do need to begin focusing on some conclusions to this discussion so that we can produce a solid development architecture. We could do things on a less formal fast track at first to get things moving and refine the process. People really want to see something soon when a project starts to be reassured it has not stalled. But we need to document a process as soon as possible so everyone knows what to expect. Maybe even with pretty graphs and charts and "27 8×10 color glossy pictures with circles and arrows and a paragraph on the back of each one explaining what each one was to be used as evidence against us."
Perfect speed is being there.
User avatar
branan
Member
Posts: 84
Joined: Wed Apr 06, 2011 11:35 pm

Re: Getting the Ball Rolling

Post by branan »

Firefox has many more developers than CWE will have, at least initially. I still think a complex process is more viable with a larger developer pool, and that CWE simply won't have that sort of manpower for several months - basically until it's brought a bit more up-to-date.

Let's take a step back, though, and answer a couple basic questions.
  1. What will OU's role actually be? Will it be hosting some sort of cwe-nextgen, or does it see its role more in maintaining a MOULagain-compatible branch of the code? I think maintaining the code will in the end result in less outside developer intrerest, but will also require much more careful code stewardship and testing before anything is merged.
  2. How much developer communication will there be? If all (or most) of the developers will regularly be in IRC, then in my experience informal code review will happen anyway, and a large process becomes redundant at best and irritating at worse. If several core devs aren't regularly in IRC or some other real-time communication, the review tools would be much more helpful.
The answers to those two questions will certainly shape the rest of the conversation on code process.
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Getting the Ball Rolling

Post by a'moaca' »

While I have not been paying quite as close attention as some, it seems to me this thread has sort of reached an impasse.

I can't quite figure out why, though. Please forgive me if I skitter past something handled (or vehemently disagreed on) already in the thread; I just want to throw out my impressions.

On the subject of whether there need to be reviews: there are, loosely, two classes of changes. There are random drive-by patches, and there are larger, serious changes such as for a new feature. Let's avoid picking nits about whatever might be in between.

I have contributed a few drive-by patches (and even a new feature) to various open source projects. At no time, as a drive-by-patcher, did I expect the team to incorporate my change without reviewing it at least some. I don't think anyone reasonable would expect otherwise. So I'm going to guess an OU policy for reviewing changes is not really a meaningful obstacle for this class of changes.

The other class seems so far to be assumed to handled by a branch merging in. I, personally, don't care how code is managed on a branch, and aside from various technical points from rarified about how certain processes would make it easier or better in some way, I didn't get the sense anyone else here has much to say about others' process either. At the time of the branch merge... is it so painful for the contributors to expect someone to review it? The review could be anything from cursory (yep, no conflicts) to totally thorough, depending on what is known about the content, people, process, whatever... That's up to the person stuck with the review.

So, I don't understand why, even if OU adopted a 100% review rule, this is a serious problem. Unless the issue is that people want to be able to check into the "main" branch unfettered. I don't see why, though. Generally with a mostly-working product it's understood that keeping it working in the main branch is important. So why the urgency to put little changes there? Also, part of the reason for the choice of Mercurial is that it's designed to facilitate an individual or group doing the little pieces in a branch/repo/whatever you call it first, then pulling all the changes at once when done. In which case, that work falls into the same class as "branch merging in".

So what am I missing on this issue? Also, I saw nobody but my opining say that OU already has a non-negotiable 100% review rule. But truthfully, in light of my own understanding of the classes of changes, I have not seen anything that will change the opinion of those of us who have actually been doing this for a living for some time.

...

I did not see any actual disagreement on branch development proposals. I saw rarified say it would really nice if they were done in a particular way, and explain how it is nice... but if you don't use the OU tools, I don't think OU is going to tell you to go away, your code is no good. That's ridiculous.

On developer communication: I will reiterate that we cannot assume there is one group of developers. If you are assuming that, we have found a fundamental incompatibility here. There will always be drive-by patchers. Out there, I guarantee you, there are people who have or will pick it up for the first time. They could be quite productive. You may not agree with what I have done, but you can't argue I wasn't productive -- and I started out one of those random people. I joined the fray kind of late. I just started working on my own. Almlys took my contributions without comment (though perhaps a comment would have been nice ;)). He reviewed them, too, BTW, in the beginning at least.

Again, I think OU is concerned with providing tools, and a main repository for the whole developer community. We don't know yet who they all are. We can't assume they will all use your IRC. Even if they wanted to, we can't assume they can use it usefully. What if I am doing my real job when I need to be on IRC to plan anything? Organization needs to happen in some medium that sticks around so people anywhere anytime can participate. OU tries to provide ways to do that. People have to use it for it to work, though.

Personally, I am not a fan of super corporate behaviors. But I *am* willing to use the tools here in the interest of being open to others. If you want something in-between, I think it can happen. Ask if needed, otherwise, do. I did not see value in making a huge list of "bugs" in JIRA for MOSS so I tossed my to-do list up on the wiki. The wiki is filled with my development odds&ends for anyone to pick up. If someone wants to look there, good. If they want to look at the bug tracker, good. If they look at the forum, good. If they want to add to the wiki, good. If others showed up with MOSS ideas and we found it best to work through some means other than the Atlassian ones, hey, whatever.

But I don't think a departure from the tools provided (or others that might be provided if requested) is in the best interest of the *entire* CWE developer community if the departure is to something not easily accessed by the *entire* community. OU is trying to provide as best as possible for the entire community.

It would be nice to agree on one bug tracking instance, though. Many bugs tend to apply across branches...

- a'moaca'
User avatar
JWPlatt
Member
Posts: 1137
Joined: Sun Dec 07, 2008 7:32 pm
Location: Everywhere, all at once

Re: Getting the Ball Rolling

Post by JWPlatt »

Obviously, intimate groups of developers have their own process and work well together with it. The big reason we chose Mercurial is the same as any project in a development community like this - because it is distributed. Clones, branches and merges are easy to accommodate. Groups can work as they like "out there" and then get back to the main branch when they are ready. Reviews are important. They get more important as you get closer to the main branch. As far as anything has been described here on OU, we'll have a repo for developers to push their changesets prior to review. And we'll automate builds of that work for testing. The changesets will be reviewed at some point before they get to the main branch. Where that actually happens looks to be mostly an aspect of cooperation or workflow of the particular group, or person. We have the tools to track and manage development, either remotely from Foundry or locally there. Local is better. But OU has no say, and asks no say about how cloned repos manage their project. They could use Bitbucket, or serve from their own desktops. They could do reviews, or chat on IRC. We will have suggestions. We will have preferences that we find help development as a whole. It would benefit the wider development community by tracking issues, etc. as much as possible. Finally, rarified and I intend to explore the Bitbucket mirror sometime in the next week to see how the process would best work, something that I've been wanting to do and something Branan also requested.
Perfect speed is being there.
User avatar
branan
Member
Posts: 84
Joined: Wed Apr 06, 2011 11:35 pm

Re: Getting the Ball Rolling

Post by branan »

Obviously we have some disagreements on process, and probably some of it is miscommunication. But all in all, I think this is something you guys should have had ready at day one. The single most important part of running an open source project is having a clear path for contributions, and the fact that you didn't have such a plan at launch is honestly worrysome to me.

I've put as much energy into OU as I'm willing to, for now. I wish you all the best of luck, and I'll work on trying to get code to you when you're ready for it. Until then I feel my efforts are best put towards actually working on the codebase.

--Branan
Post Reply

Return to “Management”