Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cap Software - External Contributors August 2021 #4850

Closed
9 tasks
Beamanator opened this issue Aug 26, 2021 · 30 comments
Closed
9 tasks

Cap Software - External Contributors August 2021 #4850

Beamanator opened this issue Aug 26, 2021 · 30 comments
Assignees
Labels

Comments

@Beamanator
Copy link
Contributor

Beamanator commented Aug 26, 2021

Hello and welcome to this month's edition of CAP software for external contributors.

What I need from you:

  1. Go to the Cap Software - External Contributors spreadsheet
  2. In the tab labeled "August 2021", enter a new row for each project you worked on and how many hours you worked on it
  3. Don't delete or update anybody else's numbers
  4. If there is a project that you worked on that isn't listed in the spreadsheet, please add a comment to this issue that includes the project details (name, GH link, start date, launch date if applicable, and hours spent). Someone will add it to the list of projects for you.
  5. Once you're done filling out the spreadsheet please check yourself off the list from the bottom of this description

Criteria

Qualifying projects generally include building new products, features and processes or making significant improvements to existing products, features and processes.

The following work should be captured for the purpose of CAP Software:

Development, testing, general feature launch.

The actual building and development, beta testing and launch of the product that happens after research and design has been completed, up until the product is released for general use and the GitHub issues are closed.

This includes code development and reviews, pre-launch bug fixing , beta testing, and customer/data migration.
It does not include enhancements past the initial launch, general maintenance, product launch activities (change announcements, help guides) or customer support.

If there are significant product enhancements past the initial launch, they should be captured as a new project.


Triggered auto assignment to @arielgreen

@Santhosh-Sellavel
Copy link
Collaborator

Santhosh-Sellavel commented Aug 26, 2021

Few questions

  1. What’s CAP Software stands for?
  2. Each issue contributed is called as project right?
  3. Most of my works were improvements to existing UI issues, handling invalid states & error handling. Some translations fixes.
  4. Should there be only new features, Can I add improvements also.
  5. Should the projects need to be exported & completed?
  6. From past initial launch means, which version you are referring to?
  7. Hours worked includes all time spent on the creation, discussion, proposal, implementation, testing, PR work and review changes until merged. Right?

Kindly please answer these questions, thanks!.
cc: @Beamanator

@Beamanator
Copy link
Contributor Author

Thanks for the questions @Santhosh-Sellavel , I'll try to answer below but please feel free to ask more questions if you have any :)

  1. What’s CAP Software stands for?

Cap Software refers to "capitalized software costs" - I'm no accountant, but basically we're trying to keep track of the number of hours we work on different projects at Expensify. We do the same thing internally every month, in an internal repo.

  1. Each issue contributed is called as project right?

Yes!

  1. Most of my works were improvements to existing UI issues, handling invalid states & error handling. Some translations fixes.
  2. Should there be only new features, Can I add improvements also.

My understanding is that everything currently counts and should be tracked, as New Expensify technically still has not been "released" yet, so it's still "pre-launch". But I would like confirmation from @kortneywynn

  1. Should the projects need to be exported & completed?

Any project that was merged by you (and therefore completed) and qualifies based off of the mentioned "Criteria" - I assume all of these have Exported since we add that for contributors, but if the label was removed it's not a problem.

  1. From past initial launch means, which version you are referring to?

Take a project like the emoji picker for example. Before this went live, all PRs related to the picker were related to that project. After the picker went live, if someone was to work on a "significant enhancement" to the emoji picker like, for example, adding a GIF search / selector or adding multi-skin-colored emojis, this should be a "new project" since the initial launch of the emoji picker is in the past / already happened. Does this help?

  1. Hours worked includes all time spent on the creation, discussion, proposal, implementation, testing, PR work and review changes until merged. Right?

That's a great question, I believe the answer is yes.

@cead22 , @kortneywynn would y'all please double check my answers above?

@Santhosh-Sellavel please ask more questions if anything is still not clear 👍

@mananjadhav
Copy link
Collaborator

@Beamanator Is it for all contributors or listed in the GH body?

@Beamanator
Copy link
Contributor Author

Each month we'll make a new GH like this one, and only the contributors listed in the GH body need to fill out the spreadsheet for that month :)

@Beamanator
Copy link
Contributor Author

Beamanator commented Aug 26, 2021

@mananjadhav hmm it looks like you had at least 1 PR merged since Aug 1 (#4648) so I added you to this list, maybe our PR-searching technique isn't 100% accurate 😅

@Santhosh-Sellavel
Copy link
Collaborator

Thanks for your answers, @Beamanator.

Quite unclear about few more things,

  1. Projects completed/merged in August alone count? or is there a from the period that counts?
  2. Can I add my Pending PR after it gets merged by August Or Only projects completed before today?
  3. How long do we have to fill this out?
  4. Can add directly to the spreadsheet or add a comment here in this format (name, GH link, start date, launch date if applicable, and hours spent)? Note: Sheet has only view only access
  5. name in format means GH user name or project name?

Thanks!

@tgolen
Copy link
Contributor

tgolen commented Aug 26, 2021

Hi hi! I'm just going to jump in to clarify a few things. Sorry that we kind of rushed into this, but @Beamanator is doing a great job of answering most of these.

What’s CAP Software stands for?

The reason we track this is that we get tax breaks for research & development.

Each issue contributed is called as project right?
Yes!

This is not accurate. There could be several issues that would fall under the same "project". The criteria section in the description above should cover what is or isn't a project. If you have questions about what may or not be a project, please give specific examples and we can clarify further.

Should there be only new features, Can I add improvements also.

This is covered in the criteria section. Please read it carefully! New Expensify has already been "launched" (since Jan 2020), so bug fixes or regular maintenance don't count.

Hours worked includes all time spent on the creation, discussion, proposal, implementation, testing, PR work and review changes until merged. Right?

This is correct. We are looking for an estimate, and it would be better to be conservative (tend toward a lower amount of time).

Projects completed/merged in August alone count? or is there a from the period that counts?

Only stuff completed/merged in August count, yes.

Can I add my Pending PR after it gets merged by August Or Only projects completed before today?

Only projects completed before today please. If something merges between now and Sep 1, you can come back and update the spreadsheet.

How long do we have to fill this out?

Ideally, it's best to have this by Sep 1 so we can use it to close our financial books on time.

Can add directly to the spreadsheet

No, the instructions are to post projects here, and we will add the project to the spreadsheet for you. It's protected for specifically that purpose.

name in format means GH user name or project name?

Project name.

Thanks for learning this new process with us!

@Santhosh-Sellavel
Copy link
Collaborator

This is not accurate. There could be several issues that would fall under the same "project". The criteria section in the description above should cover what is or isn't a project. If you have questions about what may or not be a project, please give specific examples and we can clarify further.

I think all my issues will come under specific examples to get clarified 😂. But I'll list out and ask.
Thanks @tgolen @Beamanator

@kidroca
Copy link
Contributor

kidroca commented Aug 27, 2021

Can add directly to the spreadsheet or add a comment here in this format (name, GH link, start date, launch date if applicable, and hours spent)? Note: Sheet has only view only access

No, the instructions are to post projects here, and we will add the project to the spreadsheet for you. It's protected for specifically that purpose.

There's some miscommunication here. The issue description is clearly stating that we should add rows in the excel document:

In the tab labeled "August 2021", enter a new row for each project you worked on and how many hours you worked on it
Don't delete or update anybody else's numbers

But we don't have access to do that:
image

Wouldn't it be easier if we posted all our work for the month in a csv file or a table like this

August Work Log
Date Memo Hours
1 2021-08-03 Benchmark data for PR: #4348 (comment) 0.833333
2 2021-08-03 PR Discussions: #4348 (comment) 0.833333
3 2021-08-03 PR Review: #4348 (review) 1
4 2021-08-03 PR Suggestions: #4348 (comment) 0.833333
5 2021-08-05 Git discussions: Expensify/react-native-onyx#84 (comment) 1.333333
6 2021-08-05 Slack discussions: https://expensify.slack.com/archives/C01GTK53T8Q/p1628106063148700 0.5
7 2021-08-05 Slack discussions: https://expensify.slack.com/archives/C01GTK53T8Q/p1628153287009600?thread_ts=1628106063.148700&cid=C01GTK53T8Q 1.833333
8 2021-08-06 Captured data and created Issue: #4492 1.5
9 2021-08-07 Work on Issue: #4492 and PR: Expensify/react-native-onyx#95 6
10 2021-08-08 Create Issue: #4506 2.5
11 2021-08-09 Analyzing and reply to issue: #4500 1
12 2021-08-09 Working on: Expensify/react-native-onyx#95 2.833333
13 2021-08-10 Issue discussions: #4500 1.333333
14 2021-08-11 Captured data and crated: #4549 1.5
15 2021-08-11 Captured data and created: #4592 1
16 2021-08-11 Discussions: #4492 (comment) 1.5
17 2021-08-12 Discussions: #4592 (comment) 0.666667
18 2021-08-12 Investigate and work on: #4595 2.666667
19 2021-08-16 Helping with: #4513 4
20 2021-08-17 Discussion/Analytics: #4656 (comment) 1.5
21 2021-08-17 Proposal: #4549 (comment) 0.666667
22 2021-08-18 Discussions: #4492 (comment) 0.666667
23 2021-08-18 Working on: Expensify/react-native-onyx#101 3.833333
24 2021-08-19 Discussions: #4492 (comment) 0.5
25 2021-08-19 Working on PR: #4760 7
26 2021-08-20 Research and proposal: #3867 (comment) 0.333333
27 2021-08-20 Working on: #4760 1.5
28 2021-08-23 Addressed requested changes in: #4760 1.5
29 2021-08-23 Addressing requested changes: Expensify/react-native-onyx#101 0.833333
30 2021-08-23 Hash update and retest: #4760 0.5
31 2021-08-24 Discussions on: #4800 0.5
32 2021-08-24 Investigate regression and submit PR: #4800 1.5

This way you can help us filter out non matching work, like "Please remove rows 3,4,5 as they fall into the bug fix category"
Or help us map the information to Projects like

  • Project A: rows 1, 2, 3
  • Project B: rows 10

Then we edit our post and add another table (or csv) like:

Projects
Username Project Hours
@kidroca Onyx Performance 3
@kidroca Onyx JSI Research and POC 5

We repeat the process until we move everything from the "Work Log" to the "Projects" table

This would allow you to select the rows above and paste them inside the excel, without having to grant access to others


You can easily get a "csv" of you worklog for the month from Upwork
image

  • select a "month" period
  • exclude payment information
  • press the "csv" button
  • use a tool like www.tablesgenerator.com to convert a .csv to a MD table

@parasharrajat
Copy link
Member

Loved the suggestion from @kidroca but I am in a dilemma I never recorded my working hours.

@kidroca
Copy link
Contributor

kidroca commented Aug 27, 2021

Loved the suggestion from @kidroca but I am in a dilemma I never recorded my working hours.

😄 Well you just post the "Projects" table then

I also don't track time for "Fixed price" issues, so this is another thing that we need to discuss on how to guesstimate

@Santhosh-Sellavel
Copy link
Collaborator

Santhosh-Sellavel commented Aug 27, 2021

I am in a dilemma

Welcome to the club @parasharrajat same here

@kidroca
Copy link
Contributor

kidroca commented Aug 27, 2021

@parasharrajat
I think it still possible to create a "Work Log" table by pulling the Issues and/or PRs you've worked for the month (somehow)
And then yeah try to make a judgement call on the conservative side on how much time you've spent on these

Maybe the merged PRs for the month can guide you: https://github.com/Expensify/App/pulls?q=is%3Apr+is%3Aclosed+author%3Aparasharrajat
I think you use the "Fix:" word for bugfixes and this would help you skip those items


Another a bit more PTA approach is to browse these PR's go to the commits section and see how much time you've spent coding, it won't be correct of course but can give you a sense

@parasharrajat
Copy link
Member

parasharrajat commented Aug 27, 2021

Yeah. Thanks for the suggestion @kidroca. I would have to sit for a couple of minutes and estimate them based on a number of changes and change requests.

is:pr is:closed author:parasharrajat merged:>=2021-08-01

@dklymenk
Copy link
Contributor

dklymenk commented Aug 27, 2021

Cap Software refers to "capitalized software costs" - I'm no accountant, but basically we're trying to keep track of the number of hours we work on different projects at Expensify. We do the same thing internally every month, in an internal repo.

I'm no accountant either, but I would assume that you're multiplying those hours by some rate to get the actual cost in USD for those tax forms and stuff.

Since all of us here are fixed price contractors, why can't we directly list the amount of USD each issue/PR that qualifies as "research & development" was worth (before upwork cut of course)?

It seems counter-productive for us to either guesstimate or calculate the hours using our average upwork rate or any other way to at least somewhat objectively get the amount of hours, when you will then multiply the hours to get the total cost anyway.

Once again. No accountant. Have 0 knowledge about US tax system. Just curious why can't we do it the simple way.

@kidroca
Copy link
Contributor

kidroca commented Aug 27, 2021

Should there be only new features, Can I add improvements also.

This is covered in the criteria section. Please read it carefully! New Expensify has already been "launched" (since Jan 2020), so bug fixes or regular maintenance don't count.

@tgolen sorry but the Criteria section is confusing to me. If it's already "launched" and bug fixes don't count why mention it at all

This includes code development and reviews, pre-launch bug fixing , beta testing, and customer/data migration.
It does not include enhancements past the initial launch...

While if we're still in a "beta" state where the "New Expensify" app is not released to the general public, shouldn't every development work count towards the CAP quota

@kidroca
Copy link
Contributor

kidroca commented Aug 27, 2021

@dklymenk Raises a very good point - I was going to ask the very same thing

You're posting the jobs on Upwork - you know which of them are RD or can be considered CAP
If you need to associate the sum with work hours it would be more accurate to say that a fixed ticket of $250 is let's say worth 10 RD hours
Otherwise you're counting on us guessing or being honest here

@arielgreen
Copy link
Contributor

Ok, answering a few questions here (these are super helpful so keep them coming! We can review and update to make things clearer next month)

@kidroca

There's some miscommunication here. The issue description is clearly stating that we should add rows in the excel document:

In the tab labeled "August 2021", enter a new row for each project you worked on and how many hours you worked on it
Don't delete or update anybody else's numbers

I think the Master Project List tab should be protected but you should be able to edit the monthly tabs. @Beamanator I think we need to update permissions, the entire linked sheet is view only.

@kortneywynn do you have any advice on how contributors should be estimating time on their fixed-price contracts? Can we just use the full amount paid for a specific contract?

@botify
Copy link

botify commented Aug 30, 2021

@MelvinBot MelvinBot removed the Overdue label Aug 30, 2021
@Beamanator
Copy link
Contributor Author

The monthly tabs should now be editable!

@mananjadhav
Copy link
Collaborator

Team,
I've worked most on bug-fixes such as error handling and translation. Should I be merging similar projects to into? or 1 Upwork job is 1 Project?

@Santhosh-Sellavel
Copy link
Collaborator

Santhosh-Sellavel commented Aug 31, 2021

My Contributions August

@Beamanator, @tgolen here are the issues/projects, I'll leave the grouping as projects to you guys.
Those are merged which are deemed as completed issues are as follows.

Project GH_Link
IOU Error Handling Issue #4130
Wallet Balance Translation Issue #4448
Workspace Admin Role Translations & Beneficial Owner Step ES copy changes #4667
Profile Add Phone Number Style Issue #4528
Search Display No Results #4163
VBA Loading Animation Position Issue #4696
Login Page Bold Style Issue #4729
Workspace Chat Details Page Notification Preferences Picker is Broken #4849

Waiting for input from @kortneywynn, to calculate/estimate hours, as asked here #4850 (comment) And also after grouping projects will sum up and updated total hours in sheet.

Please let me know after updating the projects in the sheet, thanks!

@kortneywynn
Copy link

Since all of us here are fixed price contractors, why can't we directly list the amount of USD each issue/PR that qualifies as "research & development" was worth (before upwork cut of course)?

The end goal is total cost per project/issue/PR that qualifies as research and development. So if the ENTIRE issue/PR qualifies as development, meaning it has not been yet launched, then this is fine. But if the project/issue/PR encompasses both development and post-launch maintenance work, then each contractor would need to split their hours/cost to reflect this.

@dklymenk @arielgreen @tgolen @Beamanator

@dklymenk
Copy link
Contributor

dklymenk commented Sep 1, 2021

@kortneywynn

Thanks for your reply. This tax evasion breaks business is pretty confusing. In my experience our issues and PRs are pretty narrow in scope, each having one particular expected result, yet sometimes even implementing a completely new feature requires refactoring some old code, so it is only in cases like that we would need to split hours/cost, I assume.

Really glad you pointed out that it's the cost that matters, so we can just put values in USD in the spreadsheet and call it a day without guessing how many hours it took. Did I get this one right?

Anyway, I have only 3 PRs merged this month: https://github.com/Expensify/App/pulls?q=is%3Apr+is%3Aclosed+author%3Adklymenk+merged%3A%3E%3D2021-08-01

#4799 - the wording on the original issue sounds like it's a bug, unless adding missing feature of an already deployed feature is not bugfix, but research and development
#4418 - PR fixes app URL association issue that was caused by migration to new domain, this sounds like textbook maintenance to me
#4406 - this PR fixes an issue that has been in the app since the desktop client has been added, so it's not a new feature either

So if my interpretation is correct, that means I am free from this report for now. Please let me know if any of my conclusions are wrong.

I will still follow the discussion to better understand how this works, since next month we are going to have to do the exact same thing.

Thanks.

@mananjadhav
Copy link
Collaborator

mananjadhav commented Sep 1, 2021

For the month of August, I've primarily worked on Bugs/Issues only except for one which is an enhancement. I am guessing all those will have to be excluded. I am not sure if the following enhancement is also covered, putting it anyway.

Description Type Issue Hours
Added Tooltip to Icon Buttons Enhancement #4499 4

@kortneywynn
Copy link

@tgolen @Beamanator I am wondering if it would be best if someone from Expensify who created this issue can help us determine whether it was applicable to phase 2-4 first. Then each month, the external contributors can just list their issues and hours/cost and we can allocate it that way? Is this possible?

This may be better than having the contractors guess whether the issue is related to a launch feature or not.

@MelvinBot
Copy link

@tgolen, @Beamanator, @arielgreen Whoops! This issue is 2 days overdue. Let's get this updated quick!

@tgolen
Copy link
Contributor

tgolen commented Sep 2, 2021

OK, just catching up here. I think there are a number of things which could make this more simple and I really appreciate all the feedback! Let's pause on this for now while we have an internal discussion about the end goal here.

@MelvinBot MelvinBot removed the Overdue label Sep 2, 2021
@arielgreen
Copy link
Contributor

Going to close this out for now per our internal discussion -- thanks for your engagement and questions, folks!

@tgolen
Copy link
Contributor

tgolen commented Sep 3, 2021

To add a little more context... these are the things that came up:

  1. We only need to report the total $ per project
  2. We need to have someone internal determine what project an issue belongs to (and this would probably be done at the same time that the external label is added to an issue)
  3. We don't need external contributors to report their earnings, because we can already get those on our own
  4. The amount of $ we are reporting right now is immaterial, so we are going to wait until it becomes material to start this process back up

So, thanks for bearing with us while we figure this out and see you sometime in the future! 👋

@Beamanator Beamanator changed the title Cap Software - External Contributors August 2021 [HOLD] Cap Software - External Contributors August 2021 Sep 6, 2021
@Beamanator Beamanator changed the title [HOLD] Cap Software - External Contributors August 2021 Cap Software - External Contributors August 2021 Sep 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests