Frequently asked questions

What is Sema about?

Button to expand panel

Sema is building better tools for better code.

We know that coding is a craft, not a competition.

And we know how much code quality matters:

  • To support developers, their personal growth, and their careers;
  • To help organizations, with happier users and fewer bugs; and
  • For its own sake. We serve developers who believe that code quality is the right thing to do.

What do I need to use Sema?

Button to expand panel

Sema integrates with GitHub, on private and public repositories, to make code reviews more meaningful.

To create Sema Code Reviews, you need a Chrome-based browser for installation.

The User Dashboard works on all browsers.

Can I watch a demo?

Button to expand panel

Of course - we would love you to!

You can find our demos in English and Russian here, with more languages on the way!

How do I sign up?

Button to expand panel

We can’t wait to show what we’ve been working on.

We're carefully crafting the perfect tool. Join the waitlist by navigating to our homepage and clicking on "Join our Waitlist." Or ask someone you know for a Sema invite.

Also, watch our demos! You can find our demos in English and Russian here, with more languages on the way!

What do 'Summaries' mean?

Button to expand panel

'Summaries' are a simple way characterizing code being reviewed.

Each code review comment can have one Summary, to make it easier for the Code Author to understand. If different parts of the same code review merit different Summaries, create different comments.

  • 'No reaction': the Reviewer does not have a comment on the quality of the code.
  • ~'No reaction' is used during a Manual QA review if the Reviewer assesses the functionality of the code but does not review the code itself.
  • 'This code is awesome': the Reviewer believes the code is ready for production and particularly good.
  • ~Particularly good code could be used to train new developers on best practices, or be a top candidate to reuse code.
  • 'This code looks good': the Reviewer believes the code is ready for production.
  • ~A fast and simple way to appreciate good code and let developers know it ready for next stages.
  • 'I have a question': the Reviewer requests clarification about the code.
  • ~If this Reaction is used, the Reviewer must add what the question is, which should be important enough to require resolution before the code is ready for production.
  • 'This code needs a fix': the Reviewer believes the code needs to be changed before the code is ready for production.
  • ~If this Reaction is used, the Reviewer must provide an explanation.

What do 'Tags' mean?

Button to expand panel

'Tags' are curated descriptors - picked with key areas of code health in mind - that help Reviewers provide specific feedback.

There are seven pairs of code descriptions - for each, one positive and one constructive.

For each pair, only one of the two can be chosen. For example, if a Reviewer selects 'Secure,' they cannot also select 'Not Secure.'

For each tag that provides constructive critique ('Not Secure,' 'Brittle,' etc.), Reviewers must provide an example, explanation, or alternative. This helps the Code Author act on the feedback.

1. Readability

  • ~Readable: The code can be easily read and understood (source: codegrip.tech)
  • ~Unreadable: The code cannot be easily read and understood.

2. Security

  • ~Secure: The code does not include security vulnerabilities.
  • ~Not Secure: The code includes security vulnerabilities.

3. Efficiency

  • ~Efficient: The code is written in a way that reduces resource consumption and completion time.
  • ~Inefficient: The code is written in a way that increase resource consumption, completion time, or both.

4. Elegance

  • ~Elegant: Elegant code uses cleverness to accomplish something in much less code than most people would think possible, but in a way that’s readable and obvious (source: Craft of Coding).
  • ~Inelegant: There is a more elegant way to write the code.

5. Reusability

  • ~Reusable: The code is written in a way that is easy to be used again.
  • ~Not reusable: The code is written in a way that is not easy to be used again.

6. Durability

  • ~Fault-Tolerant: The code is written in a way that permits normal operations despite the presence of system or hardware faults (source: Imperva).
  • ~Brittle: The code is written in a way that permits normal operations despite the presence of system or hardware faults.

7. Maintenance

  • ~Maintainable: The code is written in a way that is easy to modify or extend (source: red-gate.com).
  • ~Not Maintainable: The code is written in a way that is not easy to modify or extend.

What are 'Snippets'?

Button to expand panel

Leave better reviews by inserting pre-written snippets based on the world’s top sources of coding knowledge + internal best practices.

What are 'Snapshots'?

Button to expand panel

The easiest way for you to capture your accomplishments - whether its a chart, rollup, repo, or insight - and add it to your Developer Portfolio.

What is the Teams feature?

Button to expand panel

Teamwork makes the dreamwork! Here's a bit about Teams.

What is 'Developer Portfolio'?

Button to expand panel

A page dedicated to you and your coding accomplishments. Show your progress and growth through easily-added Snapshots, wrapped together with an executive summary to tell your story. Your Developer Portfolio is customizable and dynamic to reflect the best parts of your work that you want to showcase.

I have questions about the Chrome Extension downloaded from the Chrome Store...

Button to expand panel

What does the pop-up disclaimer mean after downloading Sema's extension from the Chrome Store?

  • The Sema Chrome Extension only works on the Sema web application page (https://app.semasoftware.com/dashboard) and GitHub pages.
  • On GitHub, Sema interacts with the Code Review / Pull request pages.
  • Sema’s tool analyzes and adds more detail to the pull request comments, not the code itself. We look at and create metrics from the comments.

Where does Sema's Chrome Extension work?

Button to expand panel

The Sema Chrome Extension only works on the Sema web application page (https://app.semasoftware.com/dashboard) and GitHub pages.Other version control systems are coming soon.

The Chrome Extension does not interact with any other pages.

Do you have access to my code?

Button to expand panel

No.

Sema’s tool analyzes and adds more detail to the pull request comments, not the code itself. We look at and create metrics from the comments.

We collect the text of the pull request, and the Sema dashboard includes a link back to the pull request.

Is there a manager dashboard of all developers?

Button to expand panel

No. Coding is a craft, not a competition.

We believe that code metrics should be used for personal growth, exploration, and connection.

Each Sema user has access to their Personal Profiles, where they can see all of their information about the code they have written and the reviews.

Also, each Sema user can see Repo Stats which has all of the information about a repository.

Team Insights - who can see what?

Button to expand panel

Within Team Insights there are different lenses for users to view stats within a team.

When "My contributions" is toggled on, users view their own stats within the team at large. Only that user can see the data relevant to them specifically in this view. This is similar to Personal Insights when viewing stats in one's individual profile. Users can toggle between comments given and comments received.

When "Our Team" is the chosen view, users view the team's collective work. These stats and this view is consistently visible to all members of the team while looking at Team Insights.

Login screen via GitHub credentials: what does GitHub mean by, "[the product] will act on your behalf"?

Button to expand panel

This is the standard language for GitHub-based authorization. We tried to customize it, but that is an unchangeable setting.

So what does it mean for you?

Sema uses GitHub credentials for your Sema account. With your Sema account, you have access to the Sema Chrome Extension to augment code reviews, and you have access to the Sema dashboard.

Here's GitHub's current answer about this:

Because of the way GitHub Apps work for this sign-in-as scenario (or other user-to-server applications), it has the ability to act on your behalf or know which resources you can access, but only within the scope of the permissions we’ve requested, in other words verifying your identity and reading your account’s email address.

We understand that this is poorly and confusingly worded for this kind of scenario. We’ve given this feedback to the team that is responsible for how this dialog is designed. We’ll be working with them to improve it to hopefully make it more clear and understandable as to what exactly is being requested so that you can be more confident in the decision you’re being asked to make.

What's Markdown and how do I use it?

Button to expand panel

Markdown is a lightweight markup language for creating formatted text using a plain-text editor. GitHub lays out basic writing and formatting syntax here. For a quick style guide showing most commonly-used Markdown conventions, click here.

In different areas across Sema's platform, users can customize their text and descriptions using Markdown syntax. Give it a try!