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

Process documentation: Engineering team "Research Spikes" #56

Open
MeltyBot opened this issue Feb 9, 2022 · 1 comment
Open

Process documentation: Engineering team "Research Spikes" #56

MeltyBot opened this issue Feb 9, 2022 · 1 comment

Comments

@MeltyBot
Copy link

MeltyBot commented Feb 9, 2022

Migrated from GitLab: https://gitlab.com/meltano/handbook/-/issues/62

Originally created by @aaronsteers on 2022-02-09 22:02:35


Cc Engineering team @tayloramurphy, @edgarrmondragon, @pandemicsyn

TODO: We ant to explore how and if we should support "Spikes" in our flow - and specifically "Research Spikes".

Challenges with "Spikes":

  • Difficulty in time constraining the spike. Given the nature of ambiguity being an inherent driver of wanting a "spike", the same uncertainty also makes it hard to guess how much time it will take to resolve the ambiguity. The very nature of spikes is that they have high uncertainty.
  • Often hard to define "Definition of Done". The same spike could take 2 hours, 6 hours, or 12 hours, depending on how it is approached, who's tackling it, how much documentation we want as output, and what level of certainty we expect in the output.
  • Learnings from the spike may or may not be portable/usable to other engineers in the team.
  • A "second opinion" may not be possible without doubling the effort.
  • The cost of running, coordinating, and feeding back learnings from the spike may be more expensive than handling inline with the dev work.

Alternatives:

  • Avoiding the word "Spike" and calling these instead Research Assignment issues or Spec Definition issues. The subtle difference in description also carries a more clear "definition of done".
  • Building in smaller code increments (with perhaps a non-shipped code output in an MR) instead of dedicated Research Spikes (which may otherwise have no code or product output).
  • In any issue weighted 8 or 12, build in an expectation for 'uncertainty', along with scheduling upfront a synchronous or asynchronous mid-delivery spec check or spec alignment discussion.
  • For issues with high uncertainty, build a practice of documenting "assumptions" upfront and then setting expectations with Product that dev efforts may be aborted, paused, or punted if assumptions are proven incorrect, paired with a clear communication when we think that might be the case.
@MeltyBot
Copy link
Author

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

No branches or pull requests

2 participants