Skip to content

Instantly share code, notes, and snippets.

@nikclayton
Last active September 17, 2023 14:23
Show Gist options
  • Save nikclayton/ac2f724baf7b009cfa8bf17c35a4fdbe to your computer and use it in GitHub Desktop.
Save nikclayton/ac2f724baf7b009cfa8bf17c35a4fdbe to your computer and use it in GitHub Desktop.

Mon, Aug 21 2023

Nik

Who is "Mike Haynes", and why are they submitting OpenCollective expenses for work that appears not to be done?

And then being paid for those expenses (!)

E.g., https://opencollective.com/tusky/expenses/125597, mentions issues 2368, 3013, and 3297.

All three of those issues are still open, and have no activity except for the issue originally being opened.

There are no PRs associated with any of those issues,

This person has also submitted other expenses, which have been paid, without the expenses describing any work that's actually been done (https://opencollective.com/tusky/expenses/123650 and https://opencollective.com/tusky/expenses/120964)

Charles

there was a discussion about payment policy but I can't find anything about this case

Nik

Yeah, I can see the policy documents in CryptDrive. Nothing about any individual expenses. At minimum I would expect an expense to include verifiable proof that the work being paid for was actually done.

Charles

we said that the results must be traceable (unless agreed upon otherwise)

Nik

That's definitely not the case with any of the three expenses links I sent. The most recent of which is from Feb this year. If anything, it shows that work was not done.

Charles

yeah totally

Maloki

It's soma, and we had an agreement that he'd be paid for the first 3 months on an hourly basis with a max ceiling.

Part of their work was also offloading me, and was supposed to be working on the FAQ, but you submitted your update of it while they were working on it.

Tue, Aug 22 2023

Nik

My PR that updated the FAQ (also my first project contribution) was submitted on Dec 17 2022, and merged on Dec 22 2022. There was no public indication before then that anyone else was working on it.

The three Mike Haynes invoices on OpenCollective have the following dates and descriptions (Mike Haynes - Open Collective):

  • January 31, 2023 ("First invoice submission to Tusky"), 120964
  • February 16, 2023 ("Invoice for first half of February"), 123650
  • March 1, 2023 ("Work on 'bookmark tab' feature (#2368); Work on 'copy hashtags into reply' (#3013); Work on 'positional substitution format' (#3297)"), 125597

For the first two, what work was actually done? I can't find any PRs or issues (either open or closed) in the tuskyapp/tusky or tuskyapp/faq repositories that would match, and somarasu (Mike Haynes) · GitHub shows no apparent contributions.

I assume there is a straightforward explanation for this, I'd just like to know what it is.

But as and when there's a legal structure backing Tusky this will not fly. Invoice 3, in particular, looks fraudulent.

To be super clear -- I'm 100% not saying it is fraudulent. This could be as simple as "Some work was intended to be done, it wasn't, other work was done instead, and the expense description was not updated".

But we should be able to explain what that work was, and we should have processes in place so that this does not happen again.

Maloki

Can You stop? Because let it be clear, this attitude would mean that all my contribution also isn't valid and shouldn't have been paid for because there wasn't any proof.This is an admin issue. The admins had agreements in place with people involved.

Charles

mal with you I think it was quite different. I don't know anything about this (which is probably my fault) and to me it also looks very odd.

if in your case it's a regular payment in this case it does really look like payment for work that wasn't done. I think big point of OC is transparency and this does not look good for us. should it have been labelled differently? as in, "project management work" or similar (I assume you mean that by offloading). I really don't think anyone is trying to put your contributions or payment into question but I agree that we should be transparent and should have a record of agreements

Maloki

Okay, but then why is no one listening when I'm explaining?

Charles

that's fair (and unfair to you that the explanation was ignored). I think we should just formalize it a bit in the future.

Maloki

When I'm trying to explain I really don't appreciate a fucking wall of text about how I'm clearly wrong. Like whatx the Fuck. And it's part of why we've worked on improving the process. But all these conversations aren't going to be for and open to the contributors.
And for a long while it was mostly me and Conny that had a quick chat about stuff and agreed to things. And then course corrected as needed.

Mike

I just want to say: this was work that was intended to be done, but unfortunately I couldn't get done, primarily due to my inability to wrap my head around getting a PR submitted. I did have code written for these issues, but I'm not sure if I still have them stashed or not.
I'm really sorry for any confusion I caused and for how I approached the OC invoice system. Conny had told me going forward if I were to submit any invoices that a PR(s) needed to be provided

Nik

@maloki: Your explanation didn't (and still hasn't) addressed the "Why has an invoice been paid that describes work on three specific GitHub issues, when all available evidence shows that no work was done on those issues?".

The explanation could be as simple as "Admin mistake, they worked on X, Y, and Z instead, we forgot to update the description in OC".

@mike: Thanks for the info. If you do still have the code, let me know, I can work with you on the PR process and getting them submitted.

Maloki

Nik. Please. You can work on an issue and be paid hourly for it, without having finished anything to submit. If that's part of the agreement. The agreement, again, was for hourly paid work. Not on completed PRs. Can the notes on open collective be updated and changed, maybe. Does it matter? Maybe.
But the way you've gone about this today is not okay.

Nik

Which bit? Because from where I'm sitting:

  • I've noticed something that seems concerning
  • Brought it, transparently, to the contributor group
  • Identified the places I've looked to try and understand what's going on
  • Flagged that this will be an issue soon if there's a legal entity behind the project
  • Described clear expectations of project financial governance

And did so dispassionately, and was very clear to explain that I wasn't accusing anyone of misappropriating funds.

My perception of your response is that it is hostile and evasive, ignored some of the questions I asked, and attempted to derail the conversation by bringing your expense claims in to the discussion.

We're dealing with other people's money here. We have a duty to them to transparently, honestly, and accurately account for how it is spent.

We may not have got it 100% right in the past, but that is an opportunity to learn and do better in the future. Not berate the messenger.

Since a more specific expense and grant policy might be useful, I've thrown these together for discussion:

As you'll see, plenty of open questions on both.

Maloki

I told you they were: otherwise agreed upon (not those words) as per the payment policy we've since added and the agreement we'd made.
I told you they were being paid for working hourly not result. I wasn't derailing I was comparing, using myself ad an example. You on the other hand decided to not listen to anything I told you and keep just wall of texting with your proof to discredit us? Instead of meetinh us with curiosity and grace. And on top of that making Mike feel like shit for stuff we've already talked with him about and handled.

Wed, Aug 23 2023

Nik

If you think that raising reasonable questions about errors in recorded expense payments (in violation of the OpenCollective agreement) that were approximately 10% of the project's available funds is an attempt to discredit you then you should, frankly, not have any responsibility for the project's finances.

Charles

nik this is not about raising this questions, raising them was a good thing (IMO), it is how the communication after the explanation was

the way you handle it really makes me feel uncomfortable, I did not have any energy to mediate this (and don't) now but I want to speak up that this is not how I would like to build the further communication. I would like you to acknowledge that after maloki's explanation you still said that it looks fraudulent (which it probably does without any context!) but saying this to a face of someone who just gave you an explanation is not a good communication. This issue could have been solved by:

"this payment looks odd, what was this about" "this was agreed work" "okay I'll update the OC description and further on we should write a policy on expenses"

but it turned into a mess

Nik

I think the explanation was, and continues to be incomplete.

I would like you to acknowledge that after maloki's explanation you still said that it looks fraudulent

Yes, I absolutely used the word "fraudulent". The complete context of that usage was:

I assume there is a straightforward explanation for this, I'd just like to know what it is.

But as and when there's a legal structure backing Tusky this will not fly. Invoice 3, in particular, looks fraudulent.

And my very next sentence was (emphasis in the original): "To be super clear -- I'm 100% not saying it is fraudulent. This could be as simple as "Some work was intended to be done, it wasn't, other work was done instead, and the expense description was not updated"."

(and later "The explanation could be as simple as "Admin mistake, they worked on X, Y, and Z instead, we forgot to update the description in OC".)

It should be clear that in this context that I am not making an accusation ("you have done something fraudulent") but raising a concern ("I think you have done something that, without the necessary context, could be seen as fraudulent, and we need to take more care about this").

You said something similar too after Maloki's explanation (emphasis mine):

if in your case it's a regular payment in this case it does really look like payment for work that wasn't done. I think big point of OC is transparency and this does not look good for us.

Also, you're in hospital, please don't feel like you have to step in or mediate anything.

The open questions I still have are:

  • What work was actually done?
  • What work was expected to be done when the agreement was put in place?
  • Does the project have agreements like that in place with anyone else?
  • Does the project plan to have agreements like that in place with anyone else?
  • Can the note on the OC invoice be amended for accuracy?
  • What will change (or has already changed, per maloki's "we've worked on improving the process" comment) about the process in the future to prevent issues like this?

Maloki

Now you've also ignored soma's answers to some of those questions.

Mike

I can answer the first bullet point: I found my stashed changes for issue 2368 (adding the ability to add "bookmarks" as a tab). I've tested this code on my local machine and believe it's ready to be committed and reviewed. I had work stashed for issused 3013 and 3297 but i cant seem to find the branches, so those I will need to work on again (if nobody is currently working on those issues)

Nik

@maloki

Now you've also ignored soma's answers to some of those questions.

No I haven't. Their answer was about the work that they "couldn't get done". You mentioned that other support work was in scope. It seems reasonable to expect that that work can be described.

@Mike -- thanks, I'm happy to work with you on getting that work in. Can you describe (either on the issue, or in the "Tusky Code" Matrix room) where you are with that, and what the roadblocks are.

3013 and 3297 are still open as well if you want to work on those.

And to be super clear -- I do not think any of this is your fault. You wrote that you had problems getting a PR submitted; when that happened I think the project should have liased with you to make that possible, possibly by escalating to any of the other contributors and asking them to assist. That's the project's failure, not yours.

edit to add: if you mention it in the chat room or on the issue, please explicitly @-mention me, so I get a notification and don't miss it, thanks)

Thu, Aug 24 2023

Maloki

Okay, to clear this up. And have the answers in one place. Mike Haynes is soma, he introduced himself as Mike during the first collaborators meeting. We have notes from a meeting between him and me from early December in the meeting folders, it's not perfect notes, but they are there. He and I made our agreement at the end of November if I recall correctly, but it could've also been early December, because I was getting very overwhelmed and sick. Conny knew about, and at that time we did not have an admin chat to the capacity we do now, however, once we did, I did tell everyone of our team about soma doing work with us, and how it came about. But as Charles showed, not everyone remembers every detail. Nik, when you asked your questions, it was very accusatory, and your follow ups when I answered the main question seemed entitled and unfriendly at best. I appreciate that you think you were being transparent and open about it, but it's not a question that necessarily should be posed in the contributors channel, because contributors can also be people outside of the working admin team and other core contributors of Tusky. Preferably you should've come to one of the admins, and probably the person who approved that payment, which would be me. And if you then wanted to talk with me as well as other admins about your concerns if you didn't trust me after listening to me we would've done so. At this point in time the contracts and agreements we make with people is not for public consumption, and I don't believe they have to be, which is why I was very thorns out on this question. You don't need to know any details of the agreement whatsoever besides "this was a past agreement and it got paid for". We told you that we had an agrement and we told you that he was supposed to work on the FAQ, and offloading me. Since my work is not always very visible, it would also not be visible the work someone offloading me would do. That's why I brought up the example of my work. But you weren't really listening to what I was saying and went on with the accusations. I did however wrongfully use the term discredit instead of dismissed, because my mind had issues finding the right words (as it often does), and that's on me. Your FAQ submission was frustrating at the time, because it took agreed paid work out of the hands of someone who needed it, but it was a good FAQ, so we found other things to work on instead. But here's the thing, we don't owe you to list out every detail about why he got paid, but that's the details you're demanding, and frankly it's plain rude. You went about this the wrong way, we asked you to stop after we had answered the first questions, and you continued pushing with repeat posting of the same things over and over. This way you handle things just doesn't work with us as a group.

Nik

Nik, when you asked your questions, it was very accusatory

I am sorry, but if I am saying things like "I assume there is a straightforward explanation for this [...] I'm 100% not saying it is fraudulent." and you choose to read that as an accusation, that is, as you say, on you.

You have, repeatedly, also said that you will skip over what other people have written.

So if you skip over something that's been written by someone else, and take the wrong meaning from it, that's on you too.

your follow ups when I answered the main question seemed entitled and unfriendly at best.

I understand your position is that contributors (of time, money, or expertise) to a project are not entitled to ask questions about that project's finances.

I do. I think it's critical to encouraging trust and transparency.

it's not a question that necessarily should be posed in the contributors channel, because contributors can also be people outside of the working admin team and other core contributors of Tusky

On this we disagree.

I think it's important that other contributors can see the questions, and how people choose to answer them.

You could have responded with "There is a reasonable explanation for what has happened, but I am not prepared to discuss it in public. I will send you a private message."

You chose not to do that.

At this point in time the contracts and agreements we make with people is not for public consumption, and I don't believe they have to be

On this we disagree as well. I think there are strong arguments for making these as transparent as possible, including:

  • Allowing project members to provide feedback on proposals before they are accepted
  • Ensuring that there is no bias, perceived or actual, in who agreements are made with
  • Ensuring that people are being paid similar amounts of money for similar amounts of work. Gender bias, in particular, is rife in this industry, with women too often low-balling how much money they're prepared to accept for a given piece of work.

The OpenCollective agreements also require that projects "use the funds received for stated activities only" (Charles noted this point too), and their invoice policy (https://docs.oscollective.org/how-it-works/basics/invoice-and-reimbursement-examples) is very clear (emphasis mine):

Invoices need a clear description of services rendered and provide sufficient detail to make it clear what the collective is paying for. This is because this description may be checked by our accountant for compliance. That means that someone with no knowledge of your project, and only a limited knowledge of open source, should be able to understand what was done from the description.

I hope you agree with me that these and other invoices visible on the Tusky OC did not meet this bar.

Your FAQ submission was frustrating at the time, because it took agreed paid work out of the hands of someone who needed it

Honestly, not my problem. If the project (a) accepts outside contributions, and (b) doesn't communicate what other people are working on, then don't be surprised if an outside contributor submits something that overlaps with ongoing work.

But here's the thing, we don't owe you to list out every detail about why he got paid, but that's the details you're demanding,

I'm not asking you "to list out every detail about why he got paid".

But I do think there should be enough information so that anyone, inside or outside the project, can confirm that, per the OC agreement, we "use the funds received for stated activities only". And the OC invoice policy backs that up.

If it helps as a way of thinking about it, don't think of this as being about you.

Instead, you have said, many times, that you will be stepping back from the project. At some point someone else will take on these responsibilities.

So perhaps thinking about this as having good structures and transparency in place will help overcome any biases they bring to the role, and help catch any mistakes before they happen, would reframe things more constructively?

and frankly it's plain rude.

I can see why you think that. In some cultures, talking about money is considered rude.

But as the custodian of the project's finances -- especially a project that is, quite likely, receiving funds from many people who have been marginalised -- I do think you have an ethical duty to be as transparent as possible while, obviously, not disclosing information about an expense recipient's personal situation.

The clearest explanation you will see of this is my strawman proposals for an expenses policy (https://gist.github.com/nikclayton/5c4118c7f153b0a8ade904cfccde5fdd) and a grants policy (https://gist.github.com/nikclayton/bd1146e24e97b113c6d14f31bbd8a36c).

Since we definitely have strong differences of opinion around project governance and finance issues, and since those documents set out my current thinking, could you review those, and provide feedback?

I have tried to keep these messages respectful, accusation free, and written on the assumption that you are operating in good faith. I am sorry that intent has not come across.

Separately, I was able to spend a couple of hours working with Mike yesterday and today, to walk him through creating and updating tuskyapp/Tusky#3983, which was approved and merged earlier today, closing issue 3983.

Maloki

The message I posted was not only from me. It was from the admin team.

David Edwards

FWIW, I believe it was spoken about in the first meeting that I was in, that finance was on the honour system and that we were happy for the team to continue doing it how it has been done. All the financial decisions that have happened are very likely inline with the business decisions made there. That said, if it doesn't comply with OC, it can't be allowed to continue to happen like that. Especially not if Tusky gets a legal entity. With likely a legally liable treasurer. Also, especially not if the original core decision makers are also stepping down.

Fri, Aug 25 2023

Nik

To be fully transparent myself I have not previously applied for any money from the project, and I do not have an in-progress application for funds for the project.

FWIW, I believe it was spoken about in the first meeting that I was in, that finance was on the honour system and that we were happy for the team to continue doing it how it has been done.

I'm not sure that's quite correct. Here's my understanding, corrections are welcomed.

As far as I can tell, there is no expense policy. There have been promises to produce one, but the work has not been finished. Having done more reading I do not think the draft policy, as written, is fit for purpose.

That's three specific claims that I should be able to justify, so:

2023-03-07 meeting (https://cryptpad.fr/pad/#/3/pad/edit/8f7ee9d7aaabd71f3d4ac17162b6c33b/):

Agenda item:

  • Open Collective, and funding in general.
    • We're missing a payment policy.

We didn't get to that agenda item in the meeting.

2023-05-09 meeting (https://cryptpad.fr/pad/#/3/pad/edit/3cbc451a795543a1e4a2cc1124ab46c0/):

Agenda item:

  • Connyduck: Expense policy for Open Collective, Conny and Maloki have a draft.

From the minutes:

According to the metadata for that file it was created 2023-05-08 (i.e., the day before the meeting).

Stepping through the change history for that file the only changes since it was created appear to be adding and removing commas. There have been no significant textual changes to that document since the meeting.

I do not believe that document is the official policy yet, for the following reasons:

  • The filename and document title contain "In progress".
  • The bottom of the document contains multiple open comments that have not been addressed.
  • The draft document contains content that, I think, can be read as violating the terms of the OpenCollective policy around hate and discrimination (https://docs.opencollective.com/help/about/the-open-collective-way/community-guidelines#hate-and-discrimination)
  • The draft document contains content (around the traceability of expenses) that I believe definitely violates the OpenCollective policies (as I have previously noted)
  • There has been no "We have finished drafting the expense policy, here it is, please provide feedback" message from the relevant people.

2023-06-15 meeting (https://cryptpad.fr/pad/#/3/pad/edit/0ef2839dfd5613d129d80ddd7b61cbb7/):

The expense policy was not discussed.

2023-08-15 meeting (https://cryptpad.fr/pad/#/3/pad/edit/ea15cc626b9784c2b20deb7b29a41744/):

The expense policy was not discussed.

That brings us to today. My three claims from earlier:

  • "There is no expense policy" -- the agenda of 2023-03-07 said there was no policy, and no policy has been finalised since then.
  • "The work has not been finished" -- all we have is a very in-progress draft policy document that appears to have been created and then barely touched
  • "draft policy, as written, is not fit for purpose" -- I provided links in this and previous messages to OC policies that I think the draft policy violates.

None of this should be world-ending. People make mistakes, life events take over, things take longer than expected. All of that is fine and normal.

What I do not think is fine and normal is the response of the financial admins. Instead of addressing the concerns they have repeatedly tried to tone police the issue away.

That said, if it doesn't comply with OC, it can't be allowed to continue to happen like that. Especially not if Tusky gets a legal entity. With likely a legally liable treasurer. Also, especially not if the original core decision makers are also stepping down.

100% agreement.

Maloki

We're not tone policing the issue. We're specifically asking you to stop.

David Edwards

I wasn't quite right with my thoughts, but it was quite long ago. The general gist was, it isn't worth caring too much about the small stuff until an actual policy exists. The convo after this point is what I was thinking of.

Sun, Aug 27 2023

Nik

I am stepping back from Tusky development, effective immediately.

You will want to:

  • Remove my account from the Google Play Console
  • Change the password on the @tusky@mastodon.social account
  • Change the shared password for the files in CryptPad
  • Change the password on the e-mail account
  • Remove me from the OpenCollective project

https://write.as/nikclayton/stepping-back-from-the-tusky-project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment