Söftware Development methodologies

Kaushal Prajapati
A Guide to Technical Mastery
4 min readAug 22, 2019

Majorly used pattern nowadays is Agile. This is what dictionary definition of Agile says, “able to move quickly and easily”.

Scrum is one of the frameworks which implements Agile methodology. Okay, It seems like we are going out of track. Let’s get back to the square one.

There are two main software development methods: The Waterfall Model and Agile.

THE WATERFALL MODEL:

  • It’s a sequential model. Once the stage is completed, you can’t go back.
  • Each stage of the model has to be completed entirely before moving to the next stage.
https://blogs.msdn.microsoft.com/jmeier/2014/05/25/waterfall-to-agile/
  • There is also a variation of the model where they name the stages differently. Requirement, Design, Implementation, Verification and Maintenance.
  • Now if you think, this is not a sustainable model in the world of constant requirement change and technology updates.
  • The question is where to use it. You can use it if you know all the requirements which are unlikely to change, scope it set and stable, technology and architecture is not going to change, the timeline is decided.
  • ISSUES: Testing can’t start before the development is completed. If at all requirement changes, which is not allowed, it becomes very difficult to change things later. Hence they introduced Agile.

AGILE METHODOLOGIES

This was created by software developers and architects from their experience. They defined a few principles and values for a framework to be compatible with Agile. I don’t think you need to read those but just in case. Here is the link:

There are different Agile processes available, some people call it frameworks.

  1. Scrum
  2. Kanban
  3. Extreme Programming (XP)
  4. Crystal

(they have differences but they all focus around the idea adapting to change)

  • Agile is iterative, the software is built incrementally, in phases.
  • Every iteration (sprint) you deliver a working version of minimum viable product. Don’t worry about word sprint, I’ll explain to you later.
  • Daily stand-up meetings called as daily scrum if you are following scrum framework is common practice. Where every day each person provides 1) What they have worked on 2) what they will do today 3) Are there any blockers.
  • Helps everyone being informed about what everyone else is doing and if someone has a blocker, a team can help and breaks the isolation.

Let’s understand a few things about Scrum.

SCRUM:

  1. Product Owner: Responsible for product’s delivery, product backlog, prioritizing work and resource allocation. Also responsible for deciding scope, priorities and funding for the team.
  2. Product Backlog: Product backlog is nothing but product requirements, named as user stories or use case. Requirements are defined as Features, BugFix or Non-functional requirement (Devops work).
  3. PBI’s: Nothing but product backlog items. Features, BugFix or Non-functional requirement.
  4. Story Points: Backlog feature requires an assessment of work by the product owner and development team. Once assessed each story and tasks are given story points (estimate of efforts). Higher the number more work hours required.
  5. Sprint: Two or three-week-long cycles which have a sprint backlog to be completed. Can not be longer than a month.
  6. Sprint Planning: End of every sprint you will have sprint review and sprint planning meeting to decide what to do in next sprint based on previous sprint results and product backlog items. Mainly you will have sprint backlog and product backlog which will be used to pick tasks for the next sprint. Sprint tasks which are not completed can be moved to the next sprint or if it is blocked we can move it to the product backlog.
  7. Sprint Backlog: Sprint backlog is different than product backlog, scoped for a sprint.
  8. Scrum teams: Set of people working on similar work or feature. During the scrum, scrum teams will have daily scrum meetings to see the development progress.

GET YOUR HANDS ON

  1. Source Control: https://aws.amazon.com/devops/source-control/
  2. JIRA (Commonly used SVN for managing scrum boards etc.): https://www.atlassian.com/software/jira/features
  3. GIT (open source, source control): https://git-scm.com/doc

NOTE: GIT is mainly used in all paid software like JIRA for source code control.

In the next few stories, I’ll be talking about Product Management, Requirements Engineering and Software Quality Attributes. We will also dive into more technical and design stuff Designing Architect, Open source options and some of the most common techniques of architecture design.

Stay Tuned!!!!!

We will have one/two articles every week. Until then bye!!!!

--

--