Skip to main content

image.png

image.png

OODA - Observe, Orient, Decide, Act

Version Control - ADO, Github Agile - sprints

Projects must have a clearly defined set of measurable outcomes

  • reduce time fixing bugs by 60%
  • reduce unplanned work
  • reduce out of band work Goal of devops is to provide greater customer value

Types of projects

  • Greenfield - Brand new
  • Brownfield - something exists and you're being dragged into it.

Decide when to use greenfield and brownfield projects

Greenfield projects

A greenfield project will always appear to be a more accessible starting point. A blank slate offers the chance to implement everything the way that you want.

Suppose current IT policies do not allow the use of cloud-based infrastructure. In that case, the project might be qualified for entirely new applications designed for that environment from scratch.

For example, you can sidestep internal political issues that are well entrenched.

Brownfield projects

Usually, brownfield projects come with:

The baggage of existing codebases.

Existing teams.

A significant amount of technical debt.

But, they can still be ideal projects for DevOps transformations.

When your teams spend large percentages of their time just maintaining existing brownfield applications, you have limited ability to work on new code.

It is essential to find a way to reduce that time and to make software release less risky. A DevOps transformation can provide that.

image.png

Agile Manifesto


image.png

Team members


image.png

Azure DevOps


Organization

Projects

Source Control

What is source control? A Source control system (or version control system) allows developers to collaborate on code and track changes. Use version control to save your work and coordinate code changes across your team. Source control is an essential tool for multi-developer projects.

The version control system saves a snapshot of your files (history) so that you can review and even roll back to any version of your code with ease. Also, it helps to resolve conflicts when merging contributions from multiple sources.

Centralized

  • TFVC, Subversion

Decentralized

  • Mercurial, Git

Git (distributed)

Git is a distributed version control system. Each developer has a copy of the source repository on their development system. Developers can commit each set of changes on their dev machine.

Branches are lightweight. When you need to switch contexts, you can create a private local branch. You can quickly switch from one branch to another to pivot among different variations of your codebase. Later, you can merge, publish, or dispose of the branch.

Team Foundation Version Control (TFVC-centralized)

Team Foundation Version Control (TFVC) is a centralized version control system.

Typically, team members have only one version of each file on their dev machines. Historical data is maintained only on the server. Branches are path-based and created on the server.

TFVC has two workflow models:

  • Server
  • Local

Azure DevOps

SSH Key authentication

Git


http://git-cheatsheet.com/

Summary


image.png
image.png