Search product team

      ๐Ÿค 
ใ€€  ๐Ÿ”๐Ÿ”๐Ÿ”
ใ€€๐Ÿ”Ž  ๐Ÿ”Ž  ๐Ÿ”Ž
๐Ÿ‘‡  ๐Ÿ”ใ€€๐Ÿ”  ๐Ÿ‘‡
 ใ€€ ๐Ÿ”Žใ€€๐Ÿ”Ž
 ใ€€ ๐Ÿ”ใ€€๐Ÿ”
 ใ€€ ๐Ÿ‘ขใ€€๐Ÿ‘ข

The search product team owns all parts of Sourcegraph that help users Compose search queries and navigate search results:

  • Search field
  • Search results UI
  • Search contexts
  • Query language, including structural search
  • The search homepage, homepage panels
  • Repogroup pages

It also owns a subset of features built on top of Sourcegraph search:

  • Code monitoring
  • Saved searches

To learn more about our goals, see the Search Product strategy page.

Teammate experience: guiding principles

We seek to follow a set of guiding principles when welcoming new teammates and working as a team.

Contact

Team members

Processes

Support rotation

The search product team has a customer support rotation: each week, one team member will be responsible for fielding questions and requests from Customer Engineering and Customer Support.

The engineer on support rotation can be contacted using the Slack alias @search-product-support.

The support rotation can be viewed on Opsgenie: search product schedule.

Should an engineer be unable to fulfill support responsibilities for any reason (for example, due to upcoming time off), they should swap with a teammate.

Planning

We work in two-week iterations.

Iterations start every other Monday.

Planning artifacts

We use ZenHub sprints to plan iterations. If some items in the ZenHub sprint project are not closed by the end of the iteration, teammates should mention in their last weekly update of the iteration what this impact is on planned outcomes.

Planning a new iteration

On the last Thursday of an iteration: - The EM for the team creates a section for planning discussion in the team sync meeting notes doc. The EM and the team add any questions on missing context. - The team adds any relevant issues to the โ€œnextโ€ column of the planning board.

We have asynchronous discussion in the meeting notes document. On the first Monday of an iteration, during the team sync, we validate the current plan & the contents of the GitHub project together, thus officially starting the iteration.

Weekly updates

Every week on Friday, Geekbot will prompt teammates to share:

  • Progress towards iteration goals.
  • Roadblocks theyโ€™ve encountered.
  • Questions they have for the team.
  • Anything else theyโ€™d like to make the team aware of.

Updates are posted in #search-product-internal.

Projects spanning multiple iterations

Projects that will span multiple iterations should have an associated project board tracking all known issues (example: search contexts). The subset of issues planned for a given iteration can then be added to the iterationโ€™s project, as GitHub issues can have multiple associated projects.

Slack time

We should plan with built-in slack time: the time engineers plan to allocate to roadmap goals should not be 100% of your available engineering time. As an engineer, โ€œthings Iโ€™d like to get to, but are non-priority workโ€ are tackled as part of this slack time.

On the other hand, the planning document + initial set of issues in the project board represents โ€œwork that we plan to complete to keep us on track for our goalsโ€.

Adding non-priority items to the iteration project board when completed is be a good way of surfacing what was accomplished. Depending on the nature of the task, mentioning it in weekly updates may be more appropriate โ€“ userโ€™s discretion.

Changing our processes

We keep our iteration process fluid. We discuss any aspects that could be improved in our retrospective, and aggressively bias towards testing out new changes immediately.

Retrospectives

At the end of every iteration, we conduct a retrospective. Our retrospective notes can be found here.

Social

We have two weekly โ€œsocialโ€ meetings, at times accounting for our large timezone spread:

  • EMEA-friendly: ( / ) on Wednesday
  • AMER-friendly: ( / ) on Thursday

The agenda for these is open: we can do tidbits, play a game, just have a casual chatโ€ฆ Anything we fancy!

Attendance is optional for all. If no attendees have RSVPd โ€œyesโ€ 15 minutes ahead of the meeting, it will be cancelled.