Replies: 12 comments 8 replies
-
Direct Incentives for Reviewers |
Beta Was this translation helpful? Give feedback.
-
Direct Incentives for Bounty Hunters |
Beta Was this translation helpful? Give feedback.
-
@pavlovcik I would suggest automations:
https://github.com/marketplace?type=&verification=&query=Pull+request
https://github.com/sturdy-dev/codereview.gpt https://www.cncf.io/blog/2023/06/06/a-chatgpt-powered-code-reviewer-bot-for-open-source-projects/ |
Beta Was this translation helpful? Give feedback.
-
I think we get the initial review quite fast but then it kinda slows down. I think it's also because we have a lot of new contributors that don't know how to do QA, don't know the project and its codebase. Because of the async nature and bounty hunters leaving and joining the project, we can't ship new features/bugs as fast as most of the startups that have a strong and stable team. I think what can really improve our velocity is having really good tests, end-to-end including unit tests covering all the major use cases and as bugs arise they can be added to the tests. This way bounty hunters can be more confident in their work as they can test their code and see if anything breaks meaning they can fix it before we even review it, so it saves time for unnecessary reviews and QA. After the bounty hunter submits the PR, the tests will run in CI and if they succeed, reviewers can be sure that other features are working and focus on reviewing the code quality and QA can focus on only testing the feature/bug that PR is solving and not other features. It does however increase the burden on the bounty hunter because they have to additionally write tests, but I think it's still better in the end. |
Beta Was this translation helpful? Give feedback.
-
High performing tech startups have dedicated teams while we rely on outside collaborators without deep project understanding. Overall I agree with whilefoo that "unit testing" culture (when unit testing is a reqiement for any feature) should help because this way there are less chances to break something (for a bounty hunter who sees the project for the 1st time). This "unit testing" culture also eliminates technical debt and in the end saves money for payouts (should we have set unit testing initially we wouldn't have had such issues). |
Beta Was this translation helpful? Give feedback.
-
If unit tests are considered as a suitable solution to increase the PR review velocity, it might me helpful to research automation for unit tests as well. It would be interesting to know real experience with tools that are positioned as "Automated unit test writing, Auto generated tests". The examples
|
Beta Was this translation helpful? Give feedback.
-
From the conversations, all of us seem to agree that both unit tests and end-to-end tests can speed up the PR review. |
Beta Was this translation helpful? Give feedback.
-
I believe high-quality automated tests will act as the first and strongest line of defense against bugs. This will improve velocity for sure but it will also help hunters, reviewers, and users sleep in peace at night, again indirectly increasing velocity. The nature of ubiquibot is that it is a little extra painful to QA. These are no buttons like a website where you fill username and passed and click login and see if it works or not.
Code quality guidelines can be created by discussion in the team. Placed in readme, these guidelines will save everyone's time. Plus, soon we will hear about not just code quality, but also test quality.
Most hunters will come back and make the same mistakes again. Free up the team's time to review more. Total amount of work contains more testing than actual coding. Usually, I see testing is already being moved to team. Many hunters don't do QA, some provide absolutely useless QA. And now team also will have to do their clean up. First time hunters will have to find hard time in review to deliver good quality in second try. And as they provide good quality in second try, velocity will go up. For this, I have some other ideas but they will probably become obsolete when automated tests kick in. Because there wouldn't be a QA anymore. Hunters will write tests with feature/bug fix.
|
Beta Was this translation helpful? Give feedback.
-
In the future we can easily gate off the high priority items based on experience points. This will allow only proven talent to handle the important stuff. This will also expose us to a perpetual drip of new talent to potentially recruit. But only on "low priority" tasks.
Cool idea let's implement
Are you sure they run in CI from the pull request? I assumed they needed to be merged in to run or something
We can simply add to the base rate of the repository to attempt to compensate for this. I also need to do more research into this idea but in theory I think it's possible to have the following flow for software development:
Seems very rigid but leveraging ChatGPT for test writing I think is a missed opportunity currently |
Beta Was this translation helpful? Give feedback.
-
I think we can lean into collaborators who stick around for awhile. We can just maintain the open bounties on low priority items for recruiting purposes.
Can you start implementing this culture during the next couple of weeks? We can have a brief discussion around increasing base rate but my expectation is probably at least a 2x which seems reasonable. |
Beta Was this translation helpful? Give feedback.
-
My vision is to let the best talent rise to the top (quantitatively) with our leveling system, and churn out the poor contributors. For example, certain tasks of higher priority can only be handled by certain levels of contributors. With the leveling system, it's easy to implement "dedicated teams" as a continuum, not as a boolean. |
Beta Was this translation helpful? Give feedback.
-
Given the complexity of our current architecture, with many microservices and plugins, implementing unit testing and end-to-end (E2E) testing would have a very positive impact on productivity. I'm also familiar with CI processes and am keen to contribute significantly to this area. :) |
Beta Was this translation helpful? Give feedback.
-
A major strategic priority for us is to maximize our velocity for merging in pull requests (with high accuracy, meaning that they achieve the specification without bugs). This is because high performing tech startups ship new features and bug fixes lightning fast ⚡️
This is useful to stay competitive (features) and to retain users (keep them happy with fast bug fixes)
I would like to hear everybody's ideas on how we can improve this because right now it feels that average time is about a couple of weeks per pull request (lots of room for improvement)
Some relevant systems that come to mind:
Beta Was this translation helpful? Give feedback.
All reactions