One morning I awoke to see that one of the lead developers on an open source product was leaving because of ‘creative differences.’ Those are my words. His were a little more angry and frustrated, because it was clear these differences were in the direction of the product. He felt stifled and restrained, saying that the grip the original developer had on the product was at odds with allowing the community to develop it going forward, and he was tired of the fight.
So he forked it and moved on.
Regardless of what product this is (and really it doesn’t matter), the decision on my end is whom should I follow?
On the one hand, this is the lead dev who has applied most (if not all) of the patches I’ve submitted. On the other, the original dev has been working on this for over a decade. Then again, the jump to making this a product I wanted to use happened when the new devs, including the forker, came on board. And the original dev is clearly facing a case of founderitis, where there’s his way or the highway, and not accepting the fact that open source products develop in their own life.
Taking a deep breath, I do not mean to trivialize the issues here. When angry-making things happen, they happen for more reasons than we can see, and we know that there are always, always, two sides to the issues. At the same time I am not a part of the angry and it’s not my business to delve deep into it, save to come to a place where I can make my educated, thoughtful decision.
I do have to worry about the stability of both products. How much was this one dev (or these few devs) the cornerstone of the product? Of the features added, whose do I use and like more? Of the ongoing philosophies, which do I more align with? How easy will it be to support the separate version? Do I think this guy is up for it?
None of this is easy! It’s a jump of who do I trust more, and much of it is a gut feeling. I review the code, I match the changes, and I base my choices on what makes me feel better. But … what about when I’m not a coder? It’s even harder. I have to wait and see which is better, which devs jump with, which users I respect join forks, and even then I know if I wait too long, it’ll be hard to move.
I moved my photo gallery from a home grown site to Gallery2 to ZenPhoto. I know the pain of hating the changes in a product. I know the pain of forking. But even so, I still can’t tell you how to make that call because even I don’t know.
All of it depends.
Comments
7 responses to “When the Fork Breaks”
As the founder of the Zenphoto project, I feel it’s necessary to respond and clear some things up. We’ve been trying to mostly keep it civil and quiet on the public front, but perhaps here it’s a better place to make some more specific comments. Of course you’re correct that there’s always two sides to a story. 🙂
Stephen, the developer who made the ‘fork’ and did indeed do the brunt of the feature work over the last 5 years, is to put it lightly a volatile character. He was extremely difficult to work with from the start, always imposed and desired a great level of control over the code and the project, and handled the community very rudely and inappropriately at times. I disagreed with the direction he wanted to take the project, but always civilly and with great diplomatic effort: it was he who was contentious, rigid, and angry. Over time, it became more and more difficult to work on my own project because of that, and eventually I gave up trying. There were other reasons, full-time jobs, and other projects, but working with Stephen was a huge detractor from my own community involvement. I’ve heard this from many members of the community—even though he was the main contributor, he did not truly lead and probably had a negative impact on the larger development of the project as a whole.
The reason for his leaving and forking the project was petty and immature as well: he took down the project’s entire web site one day because he disagreed with a content change that was done in his absence. He held it hostage until the change was reverted (and this was a relatively minor, temporary change mind you). To me, this was unacceptable—our home page is PR7 and we have supporters who purchase advertising and depend on the home page being up—so I correctly and proportionally exerted a warning to him to attempt to get him to back down. Again, he responded immaturely (even making personal political insults against me) and threatened to leave the project. The team (2 others other than myself) apologized profusely and tried to appease him to keep him on board, and over time things appeared to return to normal. When, as you know, he abruptly left the project without warning and started his fork.
I harbor no ill will against Stephen, but this is the truth: from the standpoint of an open-source project, development skill and productivity is but one facet. How one handles communication with the community, how one collaborates with fellow developers, and the ability to lead a project and delegate well all matter just as much if not more. In product development still as well, a multi-talented person is best: someone who understands UX, UI, and coding, as well as doing good support and understanding the needs of users, as well as when to take the product in a direction that will benefit the many and not overcomplicate based on the needs of the few. In all these respects, we are optimistic about the change of team membership.
As to the future, we expect to have some divergence from the fork, but we are not totally disconnected and will still collaborate some with our former developer. On our side, I will be back on board to lead the project development, and the changes I plan are all positive and based on a now 10-year career in software startup business, software development, and UX design. I plan to bring Zenphoto to a more modern and delightful user experience from both a design and developer standpoint.
And this philosophy of strong community, positive collaboration, and openness has already proven effective in just two weeks since the team change. Stephen’s leaving has already brought on an additional developer, who has recognized the improvement in the community and taken it upon himself to reach out and join in. We expect this trend to continue and our team to grow and prosper in the coming months.
I can’t tell you which side to choose either; these situations are complicated and there are many factors. But I can tell you that our project is in great shape, and that in a year’s time, the real zenphoto.org will be the only version worth considering.
Thanks for the article and the very well-informed and intelligent discussion of the situation, I truly appreciate it! Please let me know if you have any more questions or suggestions, either here, on the forum, or via e-mail. Thank you.
@Tristan Harward: Normally I wince at a wall of text, but to be honest, this is one of the better written and fair responses. I do imagine there’s a lot of argument and rough feelings going on, and I don’t envy you any more than I do me banging between the two trying to solve my personal issues with code 🙂
Thank you, though, for your reply.
@Ipstenu (Mika Epstein): Thank you — it was indeed more of a blog post than a comment, things that have been in my head a long time. But this isn’t the kind of thing we want to make a big deal of in public. 🙂 For the most part the argument is over and we’re getting on with positive work.
Please feel free to contact me in the future if you ever need more information on our roadmap, plans, or the status of the community. Thanks again.
@Tristan Harward: For me, I’m actually running both of you right now! 😀
I want to test and play with both to see what I see and which way I like better. Sometimes forks are super healthy and take things in different directions (like if one side dropped ZenPage and the other didn’t, that would be interesting).
@Ipstenu (Mika Epstein): The product manager in me has to ask — what do you want to see?
@Tristan Harward: I’d like to see dropping the blogging aspect and going into being a great gallery tool. There are a lot of little things I love about WP (which obviously I like) that I wish ZP had:
* A way to list only active plugins
* Update from inside the admin (so no download zips)
* Globally turn off comments for everything
* Only show the ‘upgrade’ screen if I’m logged in (so visitors don’t see it)
in the interests of humour, I am reminded of a great Star Wars parody… “use the fork Luke” 😉