Having ideas, bringing them up and discussing them
is always a good thing.
But you always should be aware of having ideas and brainstorming is one thing.
Realization of ideas is something completely different.
That may be quickly overseen while brainstorming.
And what (software) developers may also quickly oversee when they are focused too much on their work of improvement, progress and realizing ideas is the whole purpose what it's all about: The User.
Without him all software would be no more than some kind of mental exercise, very interesting but in the end completely pointless at all.
This has to be be distinguished properly.
And that's why old farts like me (50 ? [There are people participating here over 70.]) are often misunderstood as boring poopers, because experience told us to stay on guard when ideas are brought up and we hold the horses.
This is not because of we don't like change or worried about ideas just because we are by principle against anything new just because only it's new (even if not seldom new ideas turn out being old ones brought up again every now and then.) That's silly narrow crap.
No, it's just because life and job experience simply teached us one thing or the other. ?
One of those things is that not every new idea has to be necassarily good.
Also not every good idea is worth the effort of it's realization -
if it's even possible to realize. One has to check the available resources, too. Or you may end up in having unfulfillable demands, only.
Besides all that, ideas and realizations are something quite different.
And way more important is the human factor:
Everybody is fired up by new ideas quickly, especially if the idea is good. In particular progressive people who want things to be improved become quickly euphoric about good ideas.
Euphoria is like fire, much power for things to be done, but also danger. Euphoria may allure people to destroy mindlessly existing things. Because they are decided to be old and obsolete and will soon be replaced by better things. "How soon?" "Very soon!" - yeah, right, sure.
Besides that someone else may still have good uses for the so called "obsolote, old" things, one risk to end up in having nothing. Because of if the new things are not be realized for whatever reason or they are not proven to be at least an equal replacement you'll risk to end up having only destroyed what you already had.
First create new, additonally to hwat already exists. Than let the people decide if they want to change. Otherwise it's getting hard to receive acceptation, doesn't matter if the replacement is better.
That means two things:
1. You may risk doing all the work for nothing because you cannot be sure, your new creation is accepted. Forcing people only lowers acceptation.
2. It means
additional work, because drawing energy from existing work for putting it into the new creation may risk the loss of the existing things. That's bad, if the new creation did not became the new standard yet or even does not exists.
That's not to worry about as long as anything stays in brainstorming, and people are aware of seeing the difference between brainstorming and realization. And most of all
no decisions are rushed.
The next catch is when realization itself starts.
The casual, free spiriting of brainstroming ends and an actual project starts: Careful planning, evaluations, assements, ...and above all tideous, weary workloads that needed to be actually worked off, reviewed, controlled,...and it needed to be brought to an end that is at least slightly better than the already existing things or all effort would have been wasted completely.
And that's what life experience also teaches:
Most people applaud loudly to new ideas of improvement. But when the real work actually starts for realization most participators of the brainstorming are fucked off quicker before you even realize you are left alone in the open desert.
And take my advice: You'll better came with your own car, because of course all the cars are gone with them and they didn't even left you a bottle of water! ?
You may start to work on your own. And if you made significant progress there are two kinds of people trying to join you:
Real friends who actual help you - the fewest. And many free-riders, who wants to sponge on your effort only, or even take your project over completely.
And you need to distinguish one kind of the other, which also is not always simple.
When I look at the FreeBSD project - its history, looking at the one or another presentation or document you may find on the internet such as for conventions, about what shall be done, what could be done and what needs to be done,...also looking at the list of names of all the people are currently and formerly involved and also being subscribed within one mailing list or the other, just to be curious about what's going on,... - to me it seems the lack of ideas is the least problem of the FreeBSD project.
To me it seems most of the effort is used to organize all the work that already is needed just to have the poject stay sufficiently on its high level and keep it up and running.
With every project you need a certain percentage of work to be done just to keep it alive. This is called maintenance and it already consists of a buttload of work, which is not only quite often hopelessly underestimated. But it's also hard to warm people for doing it - especially if the work is not payed.
Nobody wants to maintaine, particulary not creative people such as programmers, and especially not sombody else's work.
Everybody wants to create new things.
But those will also need maintenance.
And if you neglect maintenance the amount of errors automatically rise by themselves. As an engineer or a software developer you don't need to be told that the more errors there are the quicker new ones occur. Thus resulting in the demand of more maintaining until the number of errors is brought down below a critical level again. Otherwise it's just a question of time until your project dies.
So maintenance has to be your top priority because of error's nature of automatic reproduction.
And you better keep maintenance on a relative high level from the start to keep the amount of errors below a critical level, and so the amount of maintenance at the lowest minimum possible.
Otherwise all you may produce at most is a shooting star: Very cool, hot new and fancy stuff, but very short term only.
In many cases so short term you may not even get a prototype. A waste of all start energy before series production or profit get to be at hand.
That's just basics of project engineering.
Because, as I also already said, nobody wants to maintain, all are focused on doing new things only, maintenance is not seldom downplayed, leading to underestimation.
The amount of maintenance effort is not below 10% or whatever not few people - especially salesmen - may dream of.
Technical real world system's values for maintanence are more about in the area of 30...40% - if you are lucky and really have a system that needs few maintenance.
60...80% or even more are realistic values for bigger software projects such like an OS.
You see, there is not so much room for bringing up lots of fancy ideas by the start.
But of course new ideas are also needed to keep its sustainabilty.
If one take a look of how many
Linux distributions there are, one may ask "how it come?" and in particular "how it come, that there are so many, but only half a dozen are used by app. 90% of all users?". So finally one may come up with the question:
"So, what's the difference about the popular, commonly used - the big ones and the rest?"
You may be right with the answer about its size or popularity and advertising. But this would only be partially true.
If you peel it down to its very core you figure out, the difference is if the organization is successful or not.
Excluding the ones that only ment to be an experiment for a special single purpose only, most of the "dead-end-distries" had more potential of ideas as they can handle.
Many of them started by ideas of how to make things better as the others and ended before they are even really started because of there is more work to be done as it can be done by the people participated - and maybe other organization issues.
The popular turnkey distries - it doesn't matter if they are done right, wrong, well or worse - reached at least properly a level of completion that for a user is satisfactionary usable.
For that two things are mandatory:
1. Project planning, management - organization. Defining targets and distributing work.
2. Enough resources to do so in time - including the maintenance of what exists already, which is also growing over your project grows.
One may discuss and decide about the different possibilities of how this has to be done. But without any or even a sufficient amount of it a project is doomed by its start.
Inharent of any kind of project management/organization always is limitations, the restriction of liberties. One may discuss what to do, and how to do it. But then you have to decide, focus and stick to the target which means: there are no other targets or at least they are not followed, until something else is reached first.
If no target is defined, there is nothing that can be reached at all.
And if not enough focus is put to a target it will also not be reached.
That's a law of nature, quickly overseen, because it's not so much fun.
Especially creative people having more fun of casual, free spiriting brainstorming of ideas.
That's no problem. But you need to be aware of where you are and distinguish one thing from the other - not mixing it up.
And of course not coming up with demanding ideas somebody else shall deliver. Especially not if you are not paying for it.
Of course I'm aware here this was not the issue at all. But I wanted to get this thought completely to its final point.
So bottom line:
Of course if free capacities and resources are available for doing more than maintenance one may discuss what to do with it.
But besides I believe there a way more ideas the FreeBSD project is capable to handle, and of course one may discuss priorities,
you have to ensure anyway:
- maintenance is still sufficiently done for the already existing things with highest priority
- the effort of the new idea needs to be worth to be done
- there are no there ideas needed to be done by higher priority first
- you have enough resources to bring it to an satifactionary end
- and you have enough resources to do the additional maintenance until you can skip something else, if you can skip something instead
Until then you need to be aware of you are staying in brainstorming and just collecting (good) ideas.