Code Repo Hygiene for Agile Teams Flashcards

1
Q

What is the Two Pizza Team

A

The number of people you can feed with two pizzas is the perfect amount of people for a team. Jeff Bezos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are CVS, Subversion, & Git?

A

Have multiple versions of a file and you can usually merge. Concurrent Version System. Subversion made easy to work remotely. Single master repo. Then We have Git?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a Merge Conflict?

A

Repository with some file That is the remote. There is no true remote that is golden, but treat the github repo as the golden one.

A clones to the repo
B Pushed changes
A pushes changes, gets a merge error. Then A has to merge the errors and then push the changes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a git hub Commit?

A

Really refers to a whole tree. And it refers to the tree structure. In early versions it was just the diff, but that is no longer the case.
Contains:
40 digit hex hash (SHA-1) that is unique to the UNIVERSE. I have the state of the tree at this time, tell me the difference between state of the tree at another time using git diff.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
What are Git commands like HEAD, 
ORIG_HEAD,
 HEAD_'n', 
770dfb-2,
"master@{01-Sep-2012}" ?
A

HEAD is the most recently committed version on current branch.
ORIG_HEAD is the right after a marge, points to the pre-merged version.
HEAD_n is the nth previous commit.
770dfb~2 is 2 commits before 770dfb.
“master@{01-Sep-2012}” : last commit on master branch prior to this date

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Git Pull?

A

Get the most recent copy of an entire repo and all the history on that repo. Then it merges with the code in your repository. It is 2 steps in one.
If it ever exists in some commit, then you can get that in the repository.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Why should you always commit?

A

You always have a clean way to get the previous values. You can also see the previous versions of files. You can rollback changes really easily. You should commit very often.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

If you try to push to a remote and get a “non-forward (error): failed to push some refs”, which statement is FALSE?

a. Some commits present at remote are not present on your local repo.
b. You need to do a merge/pull before you can complete the push
c. Your local repo is out-of-date with respect to the remote
d. You need to manually fix merge conflicts in one or more files

A

You don’t need to manually fix merge conflicts. d.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are branches in Git?

A

Multiple versions of the code in the same repo that let you keep the versions separate. You create a new branch and those branches have its own commit history. You can then merge commits here to master. Then the commits in your branch go to master.
Create Branch for new features
Use Branch only for changes needed for this feature. If you find other stuff, then use a new branch. Then you can delete branches.
Commits per branch should be small since you make small amounts of changes per branch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the difference between fork and clone?

A

Fork is a clone only on the server side. You can make changes, but you have to get permission from the owner to do so. Fork is so that people can use your code and make changes, but they can’t change your actual repository, they have to submit a pull request first.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is git rebase?

A

This is when you have changes on your master branch. You can rebase to the latest version of master and then do a merge conflict locally before you merge with master. Then you know you won’t get merge conflicts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is git cherry-pick?

A

You can specify certain commits from a branch when you are merging.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Why would you not have master be the deployed version?

A

You can cherry pick the features from the deployed version you want in the master when people are developing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

If separate teams are assigned to work on release bug fixes and new features, then you need to use what git model?

A

Branch per release & Branch per feature.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the process by which you discover a bug?

A

They all say that “if there is not a test for it, then you have not found the bug”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the R’s of the bug?

A

Report
Reproduce/reclassify - Might not really be a bug or not exist. Maybe unsupported iE6. Reproduce is tough. You have to understand the bug.
Regression Test - Simple Test that tightly circumscribes for the bug. Minimum conditions of bug.
Repair - Test that fails when bug is there. Passes when the bug is gone.
Release the fix - Just push or notify production team. etc.

You have to be able to write a test to show the bug. Plan and document follow this same model for bugs. The big difference is that you can use the Agile process to fix bugs as well

17
Q

Agile for Bug?

A

Pivotal Tracker as a Bug. 0 points. You can have a git commit as a service hook and once you commit then it marks the story as complete. Issues feature in github, then you can get global visibility and have other users post bugs.

18
Q

Plan and Document Design Review?

A

Meeting where the design is reviewed and you benefit from the people viewing your designs.

  1. Prepare a list of questions with issues.
  2. Stat with high-level Description of Customer Desires
  3. Give SW architecture, show APIs and highlight design patterns.
  4. Code, documentation, validation, tests, schedule, etc
19
Q

SAMOSAS What does it stand for?

A

Starting and Stopping Promptly.

Agenda for the meeting and send it out in advance. If no agenda, then cancel the meeting

Minutes of the meeting.

One speaker at a time; no interrupting the speaker.

Send Material in advance. Reading is faster, etc.

Action Items at the end of the meeting. Each person knows what to do at the end of the meeting.

Set time and date of the next meeting.

Next meeting read the action items and let people know that they need to do certain things.

20
Q

What can we do for better design reviews?

A

Don’t make them so big. have them as something small. Then they wanted a way to have metrics for the code. Items of code, milestones, test cases completed. etc.