Skip to content

June 2021 meeting notes

2021-06-30

Please see 2021-06-30 retrospective & plan discussion

2021-06-23

We moved to using GitHub Discussions instead of having a synchronous meeting.

Please see: 2021-06-23 retrospective & plan discussion.

2021-06-15

UI Design for MVP

  • How do we determine the expected/frequent interface actions?
  • Needs and usage patterns of different users
  • Interface Specs + User Model (Goals, Outcomes, Actions, Reactions)
  • Usability Testing and Interaction Costs

Discussion

  • Let’s not try to come up with a generic approach for how to approach all design specs, we don’t need it at this time and it’ll slow us down.
  • We might need to consider usage patterns in some cases, if it affects implementation.
  • We shouldn’t make assumptions about the user.
  • We then discussed in context of the filtering/sorting/grouping design review.

Filtering/Sorting/Grouping Design Review

  • The layout is not final, Ghislaine needs to finish editing records, etc. to come up with the final layout.
  • Pavish is not going to worry about layout while implementing, filters will be implemented with a button to show/hide panel.
  • Interactions are more important than layout at this stage.
  • Pavish should feel free to make implementation decisions as needed and create intermediate stages where the UI doesn’t match the UI that Ghislaine designs, the MVP and design should match by the end of shipping the MVP.

Development Workflow

  • We probably don’t need a weekly planning session, we can just pick issues from the next milestone once we’re done with what we’re working on.
  • Kriti will aim to keep issues specced out a few milestones ahead.
  • When you’re ready to work on something:
    • move to “Active” project and remove from “Backlog” project.
    • assign to yourself.
  • New format for retrospective & weekly work, focused on type of work rather than who did the work.
    • Reasoning: we all participate in various kinds of work and it’s finishing things that move the product forward.
  • We’ll probably have around 300 issues to resolve in 5 months, which means we need to be closing 3-4 issues each per week.
    • Obviously this is a rough/imperfect measurement, but might be useful to keep in mind.

Retrospective

This covers work since our last meeting.

General comments:

  • We did a good job on async discussions last week, both on design review and figuring out implementation on various issues.

Product

  • GitHub issues with product specs were created through Initial Data Types milestone (which is #8 on the roadmap).
  • Some issues for future milestones were also created, but only milestones #1-#8 should be viewed as complete
    • that is, relatively complete. It’s expected that new issues may come up during implementation.

Design

  • Design for filtering, sorting and grouping of tables was completed and fully reviewed/finalized.
  • Design specs for lookup field component were created and are actively undergoing review.
  • Initial research for ‘Add a Record’ design.
  • Definition of component library
    • started with typography and tested it with certain usecases
    • Started working on color palette with adjectives for the product

Development

  • DB Syncing may have been too large in scope for single PR
    • many conflicts whenever merging master into syncing branch
    • more time spent keeping aligned with other work than producing the feature
  • Ongoing discussion about setting up the API to support filtering (almost resolved)
  • PRs merged for filtering schemats and tables in API
  • PR for supporting TSV file imports almost ready for merge, after various discussions and changes in implementation approach.
  • Work on table pagination in the frontend is ongoing.

Infrastructure

  • Wiki automation scripts cleaned up and finished (for now).

Active Work

This is work planned for the upcoming week.

Product

No product work planned for this week, other than any incidental work that comes up during design.

Design

Development

  • DB Syncing is almost done for schemata
    • We should use a PR to validate the different approach (i.e., with name as a cached property rather than field) before completing same for tables
  • Complete DB syncing for tables
  • Continue frontend work on 1. Viewing Tables milestone:
    • Pagination for tables
    • ARIA accessibility for tab and tree components
  • Backend work on 2. Tables for File Import milestone:
    • Add inference to table creation
    • DB function to edit column names
    • Column API
    • Filters for table list API
    • Finish TSV file upload
    • Filters for record list API

Infrastructure

  • Set up staging environment for Mathesar.
  • Set up API documentation site.

Meetings and meeting time

  • Current time overlaps with Openverse developer chat, which Dhruv participates in and Brent might like to go to.
  • We’re cancelling this meeting in lieu of weekly plan GitHub discussions
  • People will schedule impromptu calls as needed to collaborate on specific work items, please don’t hesitate doing this.
  • We’ll do social events for team bonding
  • Galaxy Quest next Friday

2021-06-08

Welcome Dhruv!

  • Dhruv is going to be contributing to engineering work
  • Previously worked with Kriti and Brent at Creative Commons

Meeting format and communication check-in

  • How well are the weekly meetings working for everyone?
    • Better than 3 times a week
    • Synchronous design review would be useful
  • Anything you’d like to add or remove from the agenda?
    • Status updates doesn’t seem like a good use of time.
    • What should we do instead?
      • Having a meeting once a week seems useful, just to see each other.
    • Maybe focus the meeting on a process improvement.
      • More tangible results.
    • Don’t forget to help Kriti take notes!
    • Kriti also thinks status updates might not be the best use of time
      • Maybe shouldn’t worry about always having something else to fill the time there.
    • Status updates could be more relevant if we have more dependencies/blockers.
    • Write out status updates, take a moment to read them during the meeting, only discuss as needed.
  • Anything else we should discuss synchronously?
    • Design reviews?
    • Ghislaine can share ahead a day ahead of time, once design is finalized, we could have a 20 min review
    • Kriti: whole team might not need to attend
    • Could be just Ghislaine and Pavish, other could be optional
  • Asynchronous communication
    • Let’s try to use GitHub discussions for conversations.
      • We’re all curious people who enjoy thinking about different things
      • If we notice that a convo on Matrix is growing long, we should be assertive about moving it over to GH discussions
    • Threads and longer messages are better for people to participate in asynchronously.

New GitHub organization

  • Milestones to represent roadmap items.
    • Everything we need for the MVP is there
    • Deadlines should mean whole stack is done by then
    • Design should be 2 weeks before
    • Everyone please look at the roadmap asynchronously, make sure that things make sense.
  • Backlog project reorganized for MVP work only.
    • Anyone can grab work from ready column
    • Are we defining a triage process?
      • We won’t define one for now, Kriti will handle triage of issues
    • Harder to define issues that are too far ahead
    • We will add ordinal numbers to each road item
      • This will help with quickly sorting through things in the backlog view
  • New Future project for post-MVP work.

New Matrix channels

  • Kriti set up #code:matrix.mathesar.org and #design:matrix.mathesar.org for conversations related to code or design.

Retrospective

Dhruvi

  • Did some reading about Design systems
  • Started working on the typography
  • Had 1:1 with Ghislaine and took feedback
  • Could not do much due to College submissions

Kriti

  • Updated documentation for new contributors
  • Started converting roadmap to GitHub issues
  • Various discussions/conversations/meetings/PR review etc.

Pavish

  • Raised PR for readonly table
  • Participated in some discussions/conversations
  • Could not work much last week

Ghislaine

  • Worked on filtering, sorting and grouping of tables
  • 1:1 with Dhruvi
  • Initial feedback on filtering functionality layout and interactions

Brent

  • Worked on DB syncing
    • This will be a bit complex, and involve some changes to the schema and table models
    • So far, the model changes are done, as well as some db-layer functions
  • Discussions

Eamon

  • Finished most wiki automation scripts
    • Image organization
    • Link rot detection
  • Started API work
    • Finished table creation from datafile endpoint
    • Read lots of documentation

Upcoming work

Dhruvi

  • Work on Typography iterations
  • Work on Color Schemes
  • Have college exams this week so will be engaged there

Kriti

  • Continue converting roadmap to GitHub issues (lots left to do)
  • Setting up a Mathesar staging environment (needs to be behind auth).
  • Set up API documentation if time permits

Pavish

  • Work on GH issues that were spilled over from readonly table PR
    • Pagination
    • Non-existent tables handling when present in url

Ghislaine

  • Specs for filtering, sorting and grouping
  • Review structure of design wiki and organize if needed
  • Specs for lookup field component
  • Start design for adding a new record to a table

Brent

  • DB syncing should be done in short order
  • Going through many GH tickets, putting in order, starting some
  • Focusing on backend work for CSV upload milestone.

Eamon

  • Finish cleaning up wiki scripts
  • Start filtering and sorting endpoints for tables and schemas

2021-06-01

Welcome Dhruvi!

  • Dhruvi is volunteering part-time to help with design
  • Previously interned at Creative Commons
  • Introductions

Design review guidelines

Please read the wiki page.

Yet another workflow update

  • We have a lot to do to get to the MVP, we need to get ahead on product/design work.
    • Kriti will focus effort on converting roadmap to backlog of GitHub issues.
      • Both for design and development.
    • Aim is to help with consistent work output by allowing people to quickly work through issues and pick new ones.
      • Community contributors can also help.
  • General principles for the MVP stage (and probably beyond):
    • Documentation is meant to be descriptive, not prescriptive.
      • Our aim is to write down what we need to make things easier for ourselves.
      • Avoid rabbit holes (defining/planning out too far into the future), keep focus on getting a product out.
    • Iterate, don’t try to get things perfect.
      • We are trying to make something that we can put in front of users quickly.
      • We might have to change or throw away stuff later, that is absolutely fine.
    • Keep implementation simple.
      • Try to minimize assumptions about users, we cannot know what users want ahead of time.
      • Given two options, if both rely on assumptions about users, choose the one that’s simpler to implement.
    • There are probably exceptions to these, we don’t know what they are.

Discussion

  • Applicable to cursor based pagination vs. limit/offset pagination.
  • Note when we make decision between different implementations so that we can make sure to architect things in a way that we can change implementations later more easily.
    • Use Engineering Decisions wiki page.
  • User assumptions: things we don’t know, e.g. if a user wants the ID visible or not.
    • It’s not a user assumption when one option ends up with users losing data, and another doesn’t.
  • Write down heuristics as we discuss them, not ahead of time.

New Labels

See: https://github.com/centerofci/mathesar/labels

  • Added prefixes to different types of labels to make usage easier.

Retrospective

Brent

  • Finished filtering and grouping logic in data layer
  • Many discussions
  • PR reviews
  • Reading Django docs
  • Working on DB object syncing flow

Dhruvi

  • Introductory call with Ghislaine

Eamon

  • Wiki automation scripts
    • Downloading images
    • Organizing images
    • Link rot detection
  • Reviewed Django and Django-REST
  • Setup development environment

Ghislaine

  • Pagination component specs
  • Add table import feedback/review
  • Discussions on pagination and naming convention for objects
  • Design Review Guidelines
  • Prepare first issue for Dhruvi
  • Started work on Filter, Sort and Group Tables

Kriti

  • API principles: https://wiki.mathesar.org/engineering/standards/api
  • Many different conversations/discussions
  • Ticket creation

Time taken up by communication training, IT manager interviews, Memorial Day

Pavish

Couldn’t work much last week.

  • Implemented table & tab sync with url
  • Some discussions

Upcoming Work

Brent

  • Continuing data syncing
  • I’ll be out tomorrow with dilated eyes until later in the day
  • If time, minor performance modification w.r.t. getting records

Dhruvi

  • Getting familiar with the concepts and roadmap
  • Start working on the first task (Create a Design library)

Eamon

  • Finish automation scripts (?)
    • Check for private images on public pages
    • Fix link rot detection
  • Review Mathesar structure / API
  • Get started on API work

Ghislaine

  • Organize and close github design issues
  • Review design wiki structure
  • Design for filter, sort and group data
  • Collaborate w Dhruvi on component library task

Kriti

FYI: Reassigned table creation API & TSV file issue to Eamon

  • Convert roadmap into specced out GitHub issues
  • API documentation setup
  • Meetings (external and internal)

Time taken up by IT manager interviews and follow up until end of next week.

Pavish

Will not be able to allocate enough time this week as well.

  • Continue working on readonly table view
    • Include import view within tab
    • Store table state of open tabs in indexedDB and link with a Read/Write store