shpaass / yafc-ce

Powerful Factorio calculator/analyser that works with mods
GNU General Public License v3.0
64 stars 20 forks source link

Project direction & leadership #49

Closed shihan42 closed 8 months ago

shihan42 commented 8 months ago

Hi all,

the project "YAFC Community Edition" is now running for a couple of weeks. Time to review the state and direction of this project, I think.

The first and most important topic: Where is the project headed to? ShadowTheAge mentioned that they eventually come back to their original project after Factorio launched its expansion. So what do we want to achieve? A classic fork that takes a slightly different path? Just some bugfixes and little enhancements without loosing the roots?

2nd topic: Who is in charge? Is it @have-fun-was-taken's project? Is it a community-backed project? What community? Who decides on major things?

The reason why I'm asking these questions is mostly my limited time. I'd like to work on an open source project, but when the circumstances aren't suitable for me, I think it is better to move on before I commit to much more. So I'd like to have some clarification.

And for other newcomers, it also would be helpful to see where the project is going to decide if they want to join ;-)

shpaass commented 8 months ago

Where is the project headed to? for other newcomers, it also would be helpful to see where the project is going to decide if they want to join

The goal of YAFC-CE is to be useful for playing Pyanodons when being compatible with vanilla and other mods.

Just some bugfixes and little enhancements without losing the roots?

The changes can be whatever the contributors consider useful to the project. Bugfixes, new features, refactors, basically anything that improves the user- and developer-experience.

Is it a community-backed project? What community?

YAFC-CE is a developers-centered project. In other words, the more you contribute, the more weight you have. These contributions can be anything from pull requests and code reviews to issue discussions.
Regarding major things, the one who makes the final decisions is me, but your weight plays a big role in how much our opinions can differ when still following your approach.

shihan42 commented 8 months ago

Ok, thanks for the clarification. Seems reasonable, I think.

The goal of YAFC-CE is to be useful for playing Pyanodons when being compatible with vanilla and other mods.

So the goal stays the same as in the original project. Apart from that, the direction of this project is bugfixing, adding more functionality in reasonable places, and polishing the overall experience. Right?

Discussing general things and meta ideas in the issues seems a little bit out of place. Alternatives could be Discord, Github discussions,... Any preferences?

shpaass commented 8 months ago

So the goal stays the same as in the original project. Apart from that, the direction of this project is bugfixing, adding more functionality in reasonable places, and polishing the overall experience. Right?

Yes.

Discussing general things and meta ideas in the issues seems a little bit out of place. Alternatives could be Discord, Github discussions,... Any preferences?

I think a channel on the pY Discord would be most fitting because that puts the devs closest to the target audience of the app. I'll ask the mods if that's possible.

SWeini commented 8 months ago

Let me add my opinion on this topic. Might be interesting to you as I'm sometimes mentioned as one of the contributors.

  1. Direction

Thanks for asking that question openly, because I believe it's an important one. For me the main reason behind this fork is just that the original project died some time ago due to inactivity of its founder. There were a few bugs that made YAFC's calculation incorrect in a certain modpack (Py). And since it's not great to tell potential users to compile the code from some arbitrary PR/fork themselves, this CE was born. However, it's very unlikely that huge changes are made here, as the core idea of the program itself can't change that much. It's a calculator for Factorio, and it should support as many modpacks as possible. And with its first release YAFC-CE has already delivered on that promise - fixed a few bugs and made smaller improvements.

FYI: I had some discussions with @have-fun-was-taken in the very beginning, whether it makes sense to fork from the master branch vs. the latest stable release, and such, but that is the past, and it won't influence the future.

There are a few areas that could be improved by a huge margin or completely rewritten, but I believe anybody who dares to contribute that much rather creates a separate project. So YAFC-CE will likely be a collection of bugfixes and small-to-medium improvements to the original YAFC.

No one can anticipate what really happens when Factorio 2.0 and Space Age are released. The required adjustments will be non-trivial, just to name a few: removed expensive mode, trigger technologies, stacking, quality modules, new noise expressions, asteroid collectors, building limitations of space platforms. If ShadowTheAge retakes ownership of the project, then that's fine for me. But it could also be that the founder stays inactive, or that YAFC-CE stays a fork that has deviated too much by that time. Or YAFC dies altogether because the required changes are too large for any hobby dev. No one can tell at the moment, and it doesn't really matter, because there are players right now who need a perfectly working calculator for Factorio 1.1.

  1. Who is in charge?

Personally I'd rather have a single person be responsible as a benevolent dictator - basically the same as before, when the project was controlled by its founder. I just hate wasting time on non-coding topics such as code of conduct and making sure that no person gets hurt (and discussions about code style). It's open source after all, and anybody is free to fork it again. But so far have-fun-was-taken hasn't shown any signs of bad behavior. Just keep in mind, that everyone involved here is doing so as a hobby and without any obligations.

Taking control of such a project is time-consuming and I'm glad that there is someone who took that responsibility. But somehow I still expect @have-fun-was-taken to pass over ownership of the project to another contributor when/if retiring - something you couldn't expect from the original founder - that's what the "community edition" means to me. I don't know whether have-fun-was-taken agrees with me on that.

  1. My personal role

Sometimes I'm mentioned as one of the contributors to this project, but my only contribution to the codebase were two very small bugfixes. I mainly contributed in discussions and code reviews. I don't really want to invest even more time into it, even though I have an almost perfectly matching background. My factory hasn't grown for almost a month now :-( I'm a professional software developer since many years ago (95% C#). I've written large parts of the YAFC-integration code in Py (PyAL creature chamber recipes required for progression, smart farming logic, dig-o-saurus recipes, T.U.R.D. integration), which was later integrated into the official mod by !!melon. I have a strong background in math. I have played around with Factorio modding in general and have a rough understanding of its API. But: I don't want to enter into any commitment around this community project. If someone asks for my opinion I will likely give it, but I don't expect anyone to follow my advice, since I have no stakes in this project. Whenever I have some free time I'm more into experimenting with crazy ideas instead of delivering a stable product (have enough of that in my job), and if I ever invest more time into a Factorio calculator it will be a separate project with more radical changes.

  1. Your role

What is it that you are looking for? I can fully understand that you want to make best use of your free time, just like most other people. But if you want suitable circumstances you should share your preferences.

shpaass commented 8 months ago

I expect @have-fun-was-taken to pass over ownership of the project to another contributor when retiring

Agreed.

veger commented 8 months ago

I already had a fork for the original YAFC as I was missing some things to properly plan my Py factory. Besides I own changes I collected (interesting) code from other forks and open PRs. I mainly did this due to inactivity of the original owner/creator causing lots of interesting things to be unused.

Now that there is a new active version of YAFC, I am happy to contribute as it is the only tool that stands a chance against Py and I need some proper planning to take on the challenge :smile:

IRL I ~am~ was a professional software developer (mainly golang), but in my current role I am more designing the software/systems and (have to) let the developing to others. But I still have the itch, so I like to spend off-time in writing/debugging/etc code :sweat_smile:

I think that @have-fun-was-taken does a good job in managing the fork and listening to other, and be open to new ideas (check the issues). For all of us this is a pet project and we have limited time. So I am happy @have-fun-was-taken is willing to spend time on the organisation of the project.

(And when they turn into a non-benevolent dictator, it is easy enough to fork again :wink: )

shpaass commented 8 months ago

Discussing general things and meta ideas in the issues seems a little bit out of place. Alternatives could be Discord, Github discussions,... Any preferences?

I've made a thread YAFC: Community Edition in the Pyanodons Discord. The thread is in the channel #pymods-discussion. To join it, please join the server and then search the threads of the channel.

We got a channel! 🎉

shihan42 commented 8 months ago

Thank you for your comments. So I see we're generally going in the same direction. That's nice 👍

@SWeini

What is it that you are looking for? I can fully understand that you want to make best use of your free time, just like most other people. But if you want suitable circumstances you should share your preferences.

My preferences are more or less what @have-fun-was-taken has written in their comments. And I agree with you on the benevolent dictator. As long as I can choose the things I'll be working on and don't need to take only some sanctioned tickets, I'm fine. Being a software dev IRL myself, I'd like to work on something with a little less involvement of stakeholders or the like. And I think you all'll be fine if any additions and/or bugfixes are in line with the existing stuff.

shihan42 commented 8 months ago

I close this issue, since we got that nice and shiny channel thanks to @have-fun-was-taken ;-)