I thought that's a bit too long and unstructured, so I have drafted a summary Q&A of how I would describe the how and why of the project structure.

Maybe the long-term users can comment, we can refine and then post it is sticky in the forum to have something to point to in case of questions?

How is the Flightgear project structured?

Loosely speaking, there are three layers (with certainly blurry boundaries): Developers, contributors and involved users. Developers work with the code and in general with the interdependent parts of the project where changes are likely to affect many different areas and need to be discussed and co-ordinated. Contributors work on more easily separatable issues like creating aircraft, textures or scenery models. Involved users do not contribute to the project software and data directly, but may participate in discussions, file bug reports, contribute to the Wiki or provide help in forum disucssions.

Part of the relevant development also happens outside the Flightgear community, the most prominent example is probably the JSBSim flight dynamical model which has its own development community, with some people being active in both.

How does one become a developer (contributor,...)?

By starting to work on the Flightgear code, to discuss it with other developers and by requesting to merge the changes into the central repository.

But is there no formal structure?

In a sense there is - there are people who have control over the project infrastructure and hence represent Flightgear in these areas. For instance, only a limited number of core developers has commit rights for the Flightgear and Simgear GIT repositories, a few people have access to the scenery and object database, contributors usually have access to their own aircraft development, but a limited number of people has rights on whole FGData repository, then there are Wiki admins and forum moderators and a handfull of people who have access to the Flightgear project webpages.

How are these people selected

Usually the person who originally created the piece of infrastructure or the people who currently maintain it and have access rights decide who else should have access.

Is there no project management, project leader or development plan?

No, there isn't. Basically each developer works on what he thinks is the most important issue at the moment. Any larger-scale changes are discussed on the development mailing list which is used to co-ordinate the efforts of different people. There are some agreed-upon structures like the timescales of the release plan which arise by being proposed by interested people, being discussed and modified in response and then being published.

Isn't this a very unprofessional project management model?

For a business, it probably would be. For a collection of volunteers, it isn't. It has a close analogue in the way scientific collaborations work for instance, and it has already worked for a decade.

Any more centrally managed project would require a leader with the authority to assign developers to certain tasks. In a company, this can be done because developers are paid, and so they may accept to do a task even if they don't like it in exchange for money. For a volunteer project, there is no way of getting people to submit to any central authority if they don't want to. Several developers have expressed that they wouldn't want a central project management structure with the power to assign tasks. Just imagine, you would be asked to first place 100 models into the scenery database before your forum question is answered - how would you feel about being requested to do a task you didn't volunteer for?

That's not very user-friendly, is it?

Admittedly not if compared to a business model which is centered on what the customer likes. But then, you get the product for free.

The primary motivation of most developers is probably that they're interested in solving a particular problem and that they like creating a very realistic flight simulation just as they prefer it. Pleasing a large number of users is a factor, but probably in most cases not the highest item on the priority list. Having motivated developers is better than having satisfied users at the expense of frustrated developers leaving the project.

But Flightgear needs feature XXX, how can it get it done?

In the current project structure, there are two ways to implement a new feature: 1) you do it yourself 2) you convince people of the merit of your argument.

Manpower and time are scarce resources in the Flightgear project, and to get them assigned to your needs is not an easy task. Every week, projects are proposed which could easily tie a few people for a month while tasks like bug tracking and fixing or documenting new code also need to be done. It is necessary from a developer's perspective to sort through feature requests and priorize, and it is quite normal that your own request may not receive high attention.

Unless you start working yourself on a feature, you have to live with someone else's decision that you rather than Flightgear needs feature XXX and that it will not be implemented.

But how can I start working on something, the documentation is so lousy?

Unfortunately, the combination of no central project managament and lack of time means that developers are primarily focused on creating running code, then bug-free code, then efficient code, and then technical documentation. While there is user-friendly documentation for the simulator as such (The Manual), guides on how to get started with contributions and development are often not optimal.

However, if you are serious about something, there are people in the forum and in the mailinglist who can help, explain things, point to the right documentation and get you along a contributor or developer path. Admittedly this is difficult in the beginning,

I don't like this project structure!

The Flightgear source code is GPL, you can take it and any like-minded people and start your own BetterFlightGear project in any way you like.

Alternatively, influence within the Flightgear community roughly scales with your contribution to the project - if you are a long-term, well recognized contributor, people will tend to listen to your suggestions and accomodate your requests much easier than if you are a newcomer. In other words, you have to earn your respect in the development community, but once you have done that, you can also change the way the project is going to some degree.

The key is talking to people and exchanging arguments. Complaints simply do not help if the majority of developers has decided the project runs the way they like it to run.

But it could be so much better if there were proper user support (documentation,...)!

Prove it!

Experience suggests that the number of people who say they would do something if ony X were realized is far larger than the number of people who actually do something when X is realized.

There are many areas where the barrier for contributions is very low (Wiki documentation, texturing, populating the scenery with stock models,...),so if the difficulty of getting started with C++ coding, Nasal or scenery creation is keeping people from contributing, then why are there so few contributors where such barriers do not exist?

In other words, while focusing attention towards user support (documentation,...) is a good thing in itself, it is not obvious that it is still good for the project in the long run if that attention must be taken away from coding new features or bug fixing, so this is not something you can simply claim as being true.

Actually, like I told you, I was just about to copy/paste stuff to the wiki - I don't have the time go over it, rephrase and structure the whole thing at the moment.

So that's why it got so long meanwhile. The funny thing is: 90% of the added text is taken from responses that you've written here, and I didn't even copy EVERYTHING

Seriously, I was just going to get started - so I appreciate any help, I don't mind removing the page again if you manage to come up with something better. I just didn't have the time to write something from scratch. And many of the points that you raised in your responses here are fairly good. Another advantage is your writing style: general, readable, targeted and also pretty eloquent - it must have taken you hours to formulate all those thoughts, so I thought it'd be fair to honor the time you put into it and recycle some of the stuff.

I am using flightgear for about 1 year now and flying on flightgear became my new hobby. I am really thankful to all people, developers, contributors.... who make this projekt work. And I feel that I want to give something back and contribute in any way. Unfortunately I don't have any programming/developing/building scenery/... skills that might be useful for flightgear. Is there a list of things to be done where I can find out if there is something I could do that matches my skills?

If you enjoy writing, I'd suggest to get involved in the wiki / docsIf you enjoy graphics, I'd suggest to start with creating texturesIf you enjoy 3D modeling, you could take a look at blender.

Otherwise, one simple way for "giving back" is to use the forum and contribute here by helping others.Likewise, it is also a good idea to do release candidate testing, and to make bug reports and feature requests.

Basically, you only have to find something that you're sufficiently interested in doing - depending on your background/interests or skills/expertise, we may be able to provide some ideas.But ultimately, it is up to you to find your own way of being useful.

Is there a list of things to be done where I can find out if there is something I could do that matches my skills?

to answer that, you would need to provide a list of your skills, instead of a list of skills you don't possess - so maybe you should start by telling us what you enjoy doing, so that we can come up with ideas to get involved.

Otherwise, one simple way for getting involved is helping with the wiki - and to get started, you could help write the newsletter (see my signature), which usually involves monitoring the forum/devel list/git logs and adding recent developments/news to the newsletter - possibly including screen shots or youtube videos. Usually, it will even suffice to look for postings made in the last 3-4 weeks and send a message to each poster inviting them to contribute to the newsletter by adding a paragraph, or two, about their own efforts to the newsletter.Whenever I've done that, the newsletter would have at least 8-9 paragraphs about developments by ~5-10 different contributors.

these powerfull contributors bring developpers to the linux kernel developpement, do you think this kind of contribution can be realistic for a project like flightgear ?

imagine if airbus/EADS, boeing, Nasa want to contribute by giving money, developpers, documentation, it would probably give a huge boost to the developpement of flightgear,

flightgear is the only open source multi-platform flight simulator, I think many companies, universities, research centers would like to have an open source tool like flightgear for their own researches, I think it's better for them to have an open source flight simultor than a commercial flight simulator ( closed source, they can't customize the flight simulator ),

perhaps we need to attract/seduce some companies in order to have their financial help, or create a foundation in order to collect some human ressources ( developpers ), money like wikipedia ? :

It depends a bit on what excites you. If you'd like to improve scenery, you can just pick a nice airport and populate it with buildings (you can submit such work to the scenery database via a web interface). If you'd like to work on cockpit / aircraft models, it's best to get in touch with the aircraft maintainers.

(On behalf of the Space Shuttle team, you're very welcome to participate in our spacecraft's 3d work if that excites you - there's really plenty of work, starting from bringing the launch gantry into FG via payloads to ISS).

paulcarroll wrote:Hi everyone, I have been using Flightgear for a while now and I would be really interested in doing something for the community. My background is coding in C, Java and PHP and 3D rendering using Maya and Autodesk. I would be interested in doing some 3D modeling but I am a bit stumped on where to start, if any of you have the time, could you point me in the right direction as I would love to become involved in the project.

A person gains influence with a small group of 'core' developers (as they wish to be called) through their merit being raised, this is primarily done by siding with the opinions of this 'core' group of people against anyone who voices a counter opinion to them. The direction of the project is debated on a mailing list, but mainly in private and the decision is then passed onto the main group of content developers here on this forum... at which point acceptance of the descision made and showing active support against any counter opinions gains you more merit, allowing you to have more influence on the mailing list.

It's a virtuous merit system and really very simple

"If anyone ever tells you anything about an aeroplane which is so bloody complicated you can't understand it, take it from me - it's all balls" - R J Mitchel

Curt Olson is one of the original founders of the project, he currently works at the Aerospace Engineering department of the University of Minnesota. Bomber is more recent to the project. He is an "fgmember" and there is a long tradition of key fgmembers people thinking they are promoting themselves and recruiting other people by trying to involve themselves in acidic and endless arguments here on this forum. If you look at their own forum, you can see that bomber and others get a lot of support over there in their actions of coming over here and provoking arguments. Often they use 'passive aggressive' tactics so they can say 'what us?' we aren't the problem. If you enjoy that sort of thing, and if you enjoy hearing a constant drumbeat about how terrible other people are, then fgmembers has a place for you!

For the casual reader of this forum, there are currently 2 names you can add to your "ignore" list and suddenly this forum becomes a very calm and positive and helpful place.

curt wrote in Tue Sep 06, 2016 11:45 am:For the casual reader of this forum, there are currently 2 names you can add to your "ignore" list and suddenly this forum becomes a very calm and positive and helpful place.