Log In

Cmsc Wk 3 Discussion Response

Respond to Joseph:

Version-Controlled Software

Version-controlled software (VC) is software that is developed using a system that tracks and manages changes made to the software’s source code. The system uses Version control to back up, test and experiment with source code. Furthermore, it maintains a history, tracks changes, and allows teammates to collaborate and contribute to the source code on a project (Metwalli, 2020). It is common for teams to safely store their project files and folders in an online repository like GitHub or AWS Code Commit. This reduces the need to store and manage multiple source code files on a single computer. It also allows teammates to download copies of the source code files locally so they can work on the code separate from other teammates. There is the added advantage of having multiple backups because each team member has a copy of the files stored locally after downloading from the repository. The repository keeps historical versions of the project source code in case the team needs to roll back to previous versions or fix bugs from a previous software releases (Outlaw, 2017).

Version control system repositories store the source code files and use a tree-like system to manage access and changes to the software versions. The trunk or main line is the primary source code file in the repository that is under revision control. It contains the latest version of the software and is the main line for the team members’ branches of code to merge. Individual team members will download separate copies of the code files, which they can use to edit, fix bugs, test and experiment with. This creates a separate branch of the source code. Once the team member is done with the file, they may merge their copy with another file or the trunk in the repository (Betterexplained.com, 2021).

Basic version control functions include commit, check-in, check-out and merge. A commit allows the system to record the file and its content and saves it in the repository as a new version. The very first commit is what brings the file under version control (Somasundaram, 2013). Team members may check-out a file, which allows them to download it from the repository and work on it separately. Conversely, team members may check-in a file by uploading a revised file to the repository. It is important that the team member adds a check-in message describing the changes made to the file. Once the file is checked-in, it is assigned a new revision number and is available for check-out. In version control systems, you may also merge one file with another. This is how the software development progresses because it brings branch files, and eventually the trunk, up-to-date with the latest edits (Betterexplained.com, 2021).

Peer Review DOs and DON’Ts

The Science Education Resource Center at Carleton College shares the following tips for peer reviews on their “Guidelines for Students – Peer Review” webpage (SERC, 2018).

DOs

DON’Ts

Do conduct peer reviews with the intent to improve the possibility of project success.

Don’t conduct peer reviews only with the intent to identify deficiencies and report them to superiors

Do read the complete document before making your first comment

Don’t overwhelm your peer with too much commentary

Do point out strengths as well as weaknesses of the document

Don’t let your own opinions influence your review

Do offer suggestions

Don’t offer commands

Do use appropriate and constructive editorial comments

Don’t use terms like “unclear” and “vague” in your comments

Do be respectful and considerate to the writer’s feelings

Do use comments that are clear and text-specific so the peer understands what you are referring to

Do reread your comments before passing them to your peer

Scrum Process of the Agile Technique

According to Flora & Chande (2014) a scrum is the “iterative, incremental process to develop any project or manage any work”. The idea comes from the game of Rugby where players pass the ball in steps to reach the goal line. The scrum process generally consists of a small team (usually 5-7 people) that implements a small number of customer requirements in 2-4 week sprint cycles. The scrum may contain Scrum Master, Product Owner, the Scrum team, Customer and Management roles. Team creation, backlog creation, scrum meetings, project segmentation and burn down charts are some of the techniques used to meet the team’s goals. This framework for agile development relies on the values of respect, commitment, focus, courage and openness (Flora & Chande, 2014).

The team holds meetings to help manage the project and drive their sprints. Some of the meeting types are listed below:

  • Sprint planning meetings
  • Daily scrum meetings
  • Sprint review meetings
  • Sprint retrospective meetings (Flora & Chande, 2014)

A typical scrum may use the following phases during the SDLC:

  • Pre-Game – includes preparation of the product backlog list, effort assessment and high-level architectural designs
  • Development – includes sprint, analysis, design and delivery
  • Post-Game – includes system testing, integration testing and documentation releases (Flora & Chande, 2014).

Some advantages of the Scrum process include:

  • Scrum is well suited for smaller projects.
  • It is an adaptable framework for project management where the environment constantly changes.
  • The continuous integration and small sprint cycles minimize risk and increase customer confidence (Flora & Chande, 2014).

Some of the disadvantages and limitations of the Scrum process are:

  • Scrum works best with a small team.
  • Smaller teams are dependent on cohesiveness and the individual commitments of team members.
  • Slight coordination and communication deficiencies can cause a significant impact on sprints.
  • Close collaboration with the customer may be limited (Flora & Chande, 2014).

References

Metwalli, S. (October 15, 2020). Version Control 101: Definition and benefits. What Is Version Control, and Why Is It Important? Towards Data Science. https://towardsdatascience.com/version-control-101-definition-and-benefits-6fd7ad49e5f1

Outlaw, R. (April 4, 2017). What Is Version Control? Microsoft. https://docs.microsoft.com/en-us/azure/devops/learn/git/what-is-version-control

betterexplained.com (n.d.). A Visual Guide to Version Control. https://betterexplained.com/articles/a-visual-guide-to-version-control/

Somasundaram, R., & Ebooks Corporation. (2013). Git : Version Control for Everyone: the Non-coder’s Guide for Everyday Version Control for Increased Efficiency and Productivity: Beginner’s Guide. Packt Publishing. https://eds-a-ebscohost-com.ezproxy.umgc.edu/eds/ebookviewer/ebook/ZTAyNXhuYV9fNTMzMjExX19BTg2?sid=86f43a81-8f2f-4488-9f3b-b72062dbebd8@sdc-v-sessmgr01&vid=3&format=EB&rid=3

Science Education Resource Center at Carleton College (May 7, 2018). Guidelines for Students – Peer Review. https://serc.carleton.edu/sp/library/peerreview/tips.html

Flora, H. K., Chande, S. V. (2014). A Systematic Study on Agile Software Development Methodologies and Practices. (Vol. 5(3))

× How can I help?