PrestaShop / open-source

Sources for www.prestashop-project.org
https://www.prestashop-project.org/
Other
32 stars 37 forks source link

[Request to become a PrestaShop maintainer] kpodemski #44

Closed kpodemski closed 4 years ago

kpodemski commented 4 years ago

Ok, I was scared to be the first one πŸ™ˆ let's be a second one πŸ’ͺ

I'm Krystian, I'm 29 y/o web dev from Poland

working with PrestaShop since I was 18, in industry since 2006 (yes, I started doing commercial projects in school)

How can I help?

I want, and I think I can, help with both, transition to Symfony (in v8), and to keep PrestaShop features as stable as possible with future work related to multi-store (in v1.7), I want to help with finishing this first transition period (back office refacto) - by discussing, reviewing and last but not least, coding.

Why?

I'm with PrestaShop for a long, long time, some of you may recognize me from the forum, from Github, Gitter and maybe recently from Slack. My journey with PS started somewhere around v0.8b, SVN, fancy rounded design and all of that ;)

From around 2008 PrestaShop has been main tool for me, my team and my company, thanks to this I feel confident that I can provide additional value, not only related to coding, but decision making, analyzing community and merchant needs etc.

I'm an author of some popular modules in PrestaShop eco-system (both world-wide, and here in Poland), I sold my themes and modules to over 10.000 stores based on PS, thanks to this I know what module developer needs are, what we need to keep and improve when it comes to themes, I know where we should keep PrestaShop as backward compatible as possible.

What else?

I'm programmer with a lot of experience, but because of PrestaShop and working daily with legacy code, doing hybrid solutions for PrestaShop from 1.5 to 1.7, I don't feel confident enough (yet!) with DDD, tests were not always been there, and there's still learning curve for me in some aspects, but I treat this "issue" as a motivation to move forward, along with PS 😎

Last but not least, I wasn't the most active member in past months, but there were some reasons for that, aside from just operating on a fairly large scale commercially with PrestaShop and less time, I was the one who was skeptical about version 1.7 and the fact that the migration to Symfony would not happen within the one long gap between releases. I was scared about many things, lack of final architecture design and concepts (because of this Product and Module pages have to be reworked now), backward compatibility (some multi-store issues are still there) etc.

The fact that the core team of PrestaShop has changed quite a lot in recent years was also not encouraging, I had great contact with many people who are no longer in the company, but there are also many with whom I see a lot of knowledge, motivation for PrestaShop to be a better software and the kind of people you just want to work with. This is why I'm creating this issue.

Oh, and it's no secret that I am an introvert, I'm not at many events, so there is nothing to brag about in this aspect πŸ€·πŸ»β€β™‚οΈ

Fun fact: I'm an author of first (and wrong πŸ™ˆ) PrestaShop PR on GitHub https://github.com/PrestaShop/PrestaShop/pull/1

Salutations à tous ✌🏻

matks commented 4 years ago

Hi @kpodemski and thank you for your application πŸ˜„

Following our rules, now can start discussions with current maintainers on this issue about, among other things, your motivation and skills about the project.

Some maintainers are on holidays right now so we will need them to come back so they can have the chance to chat with you before moving on to the voting phase πŸ˜‰ please be patient.

PierreRambaud commented 4 years ago

Hey @kpodemski , thanks for wanting to be a maintainer :) Everyone knows in the team that I'm clearly not the best one for communication and I may be a little too cash but there is only one thing that triggers me in your message.

I'm programmer with a lot of experience, but because of PrestaShop and working daily with legacy code, doing hybrid solutions for PrestaShop from 1.5 to 1.7, I don't feel confident enough (yet!) with DDD, tests were not always been there, and there's still learning curve for me in some aspects, but I treat this "issue" as a motivation to move forward, along with PS :sunglasses:

How do you think you can improve your programming skill, I mean with tests (Unit tests, Integration tests, etc) or everything around best practices?

(With :heart: )

kpodemski commented 4 years ago

Hey @PierreRambaud

thanks :)

to be clear, those are not topics completely alien to me but it's hard to have it in daily work I do (and it's business decision, no that I don't believe in tests etc.), I actively follow the project to understand the needs of new architecture and the requirements it entails, I think that thanks to very thorough process of PR approval I'll be better with every next contribution, we have entire documentation about migration, about using CQRS in project etc. It's easy for me to follow the rules and if something is not clear, to ask, and document it more for others.

jolelievre commented 4 years ago

Hi @kpodemski

thank you for your application as well πŸ˜‰

I have a similar question as @PierreRambaud, I know you've been working on PrestaShop for years (many much more than me to say the least ^^), and that you are used to all the legacy code. So I'm wondering how you feel with the new Symfony architecture, and the migration of new pages. Although some are more complicated than others, how would define yourself in terms of knowledge and in terms of "appetence" / "desire" / "things you like" (can't find the right word ^^) So I'll throw a bunch of question, don't feel obliged to answer them all but it's just to grasp a better idea of what you would hope your role to be as a maintainer.

Sorry for the mountain of questions, I hope it's not scary or intimidating πŸ˜… It's just miscellaneous questions to have a better vision of your aspiration. And I think it can probably also guide you into defining more what you look for in this maintainer role.

Thanks for (the long) reading, and for your answer.

kpodemski commented 4 years ago

Hey @jolelievre

wow, thanks, very nice and interesting questions!

Do you feel confident in migrating/reviewing some Grid pages?

Yes, Grid is clear to me in general, as I was working with it recently with one of my modules and checking changes to Logs page etc. tho I think that for some time I'll try to leave a review part for others, I feel that I can give some advices here and there but I need more practice, but you know what they say: "Teaching others is best way to learn"

Do you feel confident in migrating/reviewing some Form pages?

I wasn't working much with forms yet (but it's Symfony so it makes everything easier), but it is something on my "roadmap" as I want to help with 1.7.8 and multi-store EPIC, this is my main focus for now :)

Would you see yourself more like a "bearer of knowledge" of the legacy code?

I don't want to be that guy who only point to others that "this shouldn't be X, that shouldn't be Y", I want to help project by using my experience with PrestaShop when it comes to legacy code, and by using new architecture possibilities to make it better

Would you prefer to review/contribute fixes on legacy code instead of migration? Would like to be some kind of "guardian" that the migrated pages still answer to some legacy needs? Like the hooks for example, but it may be other requirements that could be forgotten.

I feel like those two questions are related, I really hope that this would be part of my contribution where I can be really helpful, everyone knows that business side of PrestaShop, module and theme authors, those are things very important to PS ecosystem, it's important to not loose track of their needs. It's funny but I think that "guardian" sounds cool and quite on point :+1:

Do you want to be a maintainer that makes mostly contributions, mostly reviews or a bit of both?

Bit of both, because when it comes to bigger changes in architecture, I can check if everything is working (pre-QA), if as a module/theme developer I can do this, or that, but I'm treating this position, chance, as a motivation for me to become better programmer, there's no better way to become better than practicing.

Would you like to improve the documentation on missing parts? Or at least point out the missing parts when you can't explain them all?

Yes, this is yet another plan for me, like I said before: "Teaching others is best way to learn".

Do you prefer reviewing/contributing on the Core or on modules?

Both, but if that's not possible, I can start with modules, modules have been always part of the PrestaShop where PRs are validated very slow, and it's taking months, or years to have sometimes really good contribution released.

And finally do you think having a mentor or a designated contact in the core team would help you in becoming a maintainer?

Wow, if that's possible... then yes, of course. I never had one :)

Once again, thank you very much for your time and questions @jolelievre

eternoendless commented 4 years ago

Hey @kpodemski, I'm happy that you're applying to become a maintainer :)

Regardless of the motivation boost that comes with the maintainer role, what do you think becoming a maintainer would help you do that you cannot do right now?

kpodemski commented 4 years ago

Hey @eternoendless

I'd have more green buttons on github and possibility to get assigned to an issue ;)

seriously tho, @jolelievre suggested dedicated contact which would be great, I guess such a person is more active in some discussions about the future of PrestaShop?

there are no informations about what you get from this except motivation, pretty big responsibility etc. so for me it was all about motivation and a chance to discuss about future with core team

matks commented 4 years ago

Hi @kpodemski,

Thank you for the answers you provided for other topics πŸ˜‰

I have a "tough question" now πŸ˜… . One that is worrying me so I think it's important to discuss it.

The question is: are you ready to accept and deal with the frustration that can come with the maintainer position ?

Please let me explain what I mean by this. As a open source maintainer, you are very likely to experience many times frustration and bitterness.

Frustration because being maintainer is being part of a group

By becoming a maintainer you will be granted the capability of approving Pull Requests with a validation asset. Anybody can approve PRs but only maintainers can unlock the "merge" button using their approvals. Right now the Core repository PRs need 2 approvals to be validated and other repositories can use only one.

But becoming a maintainer does not mean you can approve and merge whatever you want. When a PR is validated by maintainer, it enters the QA stage. Also sometimes PRs need to be validated by UX team and/or Product team if it is related to their scope. So a PR can only be merged when all the people in charge have agreed to merge it. 3 teams work on this project πŸ˜‰ : maintainers, QA team and Product team. We have to work together and we look for consensus.

Becoming a maintainer does not mean you unlock the ability to decide on the project. It means you unlock the ability to actively participate, by joining a group. Just like every citizen of a democracy can vote, but only one candidate is chosen at the end of the election (which means the citizens who voted for someone else are disappointed) there will be discussions, changes, PRs, where they will disagreements within the maintainer group.

Some people will approve a PR, other will block it. Most of the times both sides have a good reason πŸ˜„ but it's still frustrating . Then a discussion will start and hopefully find a way that pleases everyone... but sometimes it wont end this way and you might get frustrated by the end result.

Becoming a maintainer is really joining a group 😁 it means you have to work with multiple other opinions and people, this can sometimes be quite annoying. Most of the time if we cant get a consensus on something we just dont do it. Obviously we are very open for discussion, but we cannot promise we'll always agree together.

There are multiple other situations that I can think of where a maintainer might be frustrated :

Some real-life examples about that:

This does not happen every day (πŸ˜„) but these are real-life scenarios. And because as a maintainer you'll be part of a group, you'll need to comply to the final group decision even if it is against your own opinion. This is sometimes hard to do but this will be required from you to do - just like all of us - because it's in our rules.

Frustration because being maintainer is dealing with people

As a maintainer we work everyday with the prestashop community. Some of them are very nice people and some other ... speak with quite harsh words πŸ˜… (I remember having been called "an idiot", "a fake developer", "a genius" (irony) ...) . Some of them are very skilled and submit PRs without issues and some of them need to be mentored / educated about how an open source project works.

This means that sometimes you'll have discussions that might ignite anger and bitterness.

We have tools to deal with that: we have a CoC, we can lock issues and ban users, but we usually use them as a last resort. Most of the time we'll try first to understand and help the person even though on the other side, the contributor is not as nice as we are...

This article is a very nice insight about this aspect of the role: https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/

Frustration because you become a public figure

By becoming a maintainer you'll become an (even more) public figure. Maintainers are the representatives of the PrestaShop project. I dont know if our CoC applies to other media like Twitter or Facebook but basically if the next day you tweet "I really think people who drive red cars are idiots" you might later find people retweeting "PrestaShop project is against people who like red cars" πŸ˜… . So basically you'll have to watch what you say and write when in public because suddenly the PrestaShop brand will be associated to you. You cannot go around and say "PS 1.6 was better" :trollface:

Sometimes we get some very nasty attacks on social media (I'm thinking obviously about Twitter) but we must refrain ourselves from answering because we have to maintain a composure.

Conclusion

I hope that I did not kill your motivation πŸ˜… but it's something you'll encounter if you become a maintainer and it's better to know beforehand.

But though it has its downsides, being an open source maintainer has also amazing benefits. It's a rewarding role, you learn a lot, you contribute to something that helps hundred of people and businesses ...

So, back to my question ... are you ready to handle this frustration and bitterness when it comes ? And by "handling" I mean: stay calm, focus on the facts, not the feelings and keep following our CoC:

If tomorrow you and I we disagree on a Pull Request or an issue, will you be able to "agree to disagree" and let the matter cool off ? What if it happens multiple times on a week, on topics that are dear to you ?

Don't be mad at me πŸ˜… but I remember us having an heavy discussion on this topic linked to this PR. At this time through your writing I believe you were quite unhappy with our view of the topic (although later we changed our mind πŸ™ so the topic started badly but it ended well). This situation might happen again but this time, if you're a maintainer, you'll have more constraints. Is that OK for you ? πŸ˜‰

kpodemski commented 4 years ago

It's ok for me and I understand this. As I mentioned on Slack:

I didn't think about "being a public figure part" but... as an ambassador and one of the most active people in Poland I think I'm trying to keep my social media and my online image clean :)

jf-viguier commented 4 years ago

@kpodemski this part is for me I guess "Don't be mad at me πŸ˜… but I remember us having an heavy discussion on this topic linked to this PR. At this time through your writing I believe you were quite unhappy with our view of the topic "

matks commented 4 years ago

@kpodemski this part is for me I guess "Don't be mad at me πŸ˜… but I remember us having an heavy discussion on this topic linked to this PR. At this time through your writing I believe you were quite unhappy with our view of the topic "

Both you and @kpodemski voiced your disagreement in this issue (which is good: it proves you have somehow the same mindset of thinking about the users πŸ’ͺ ) πŸ˜‰ and no harsh words were written so the tone was not an issue.

matks commented 4 years ago

Hi @kpodemski,

We are so happy to tell you that you have been accepted as a maintainer for PrestaShop project!

As you know you will be the very first maintainer of this project to not be an employee, so the process is still not 100% clear even for us πŸ˜… but we believe that taking this role is quite an important leap of faith for both you and us.

That is why we thought that it might be relevant to have a 90-day trial period for you to start this role.

At the end of this 90-day trial we will be able, you and us, all together, to see if things are satisfying for both parties and we can continue, or maybe we'll find out after all that it was not the best moment πŸ˜‰ .

Software development is known for being an obscure field where only trials and experiments can find out whether a choice is a good one or a bad one (hence the popularity of agile processes) ; this is why we think this trial is a good way to challenge this very new phase of the PrestaShop Open Source project.

Are you OK with this 90-day trial period ?

Funny side-note: if you accept, you'll be able to vote for the 2 other maintainer applications: PululuK and zuk3975 πŸ˜› since it's all maintainers that do vote

kpodemski commented 4 years ago

Hello everyone and thank you, this is great news for me and huge motivation boost!

Of course I'm ok with 90-day trial period πŸ’ͺ I hope that we can discuss some goals to achieve, and that I can help with entire process and people interested in being maintainer!

I'm looking forward to start working with entire team even closer than before! πŸ”₯

jf-viguier commented 4 years ago

Bravo @kpodemski