Unit1 Rough Notes
Unit1 Rough Notes
Software is a
set of instructions, data, or programs that tell a
computer how to operate and perform specific tasks
What is Software Process?
The software process is a set of steps or a set of activities that are used
during the development of software. And if we perform all the steps
accordingly then the expected result can be produced that is going to be
efficient and provides value to the customer. For example, if we want to
develop software successfully we should follow a set of rules or the activities
such as Planning, Requirement Gathering, Design, Implementation, Testing,
and Deployment. By following these steps we can ensure that the software
will be developed efficiently and with high quality.
The software development methodology is a framework that is used to
structure, plan, and control the process development of an information
system. In this kind of development methodology, the only concern of
software development process is that it does not involve any technical aspect
but demands proper planning for the software development lifecycle by the
development organization.
What is Methodology?
Whenever we build software or a project we have to go through different
software phases commonly known as the software development life cycle,
during this process depending on the software requirement we use different
approaches for the successful completion of the project and these
approaches are called methodology. There are different methodologies
like agile, waterfall, spiral methodology, etc.
Difference Between Software Process and
Methodology
Activity Process Methodology
DevOps is a popular term gaining a lot of attention among all the software
development methodologies because of the unconditional benefits it offers to
its customers. The siloed process of Development and Operations is not the
same as the inception of DevOps. These two departments are functioning
together as a single team for all processes in the entire life-cycle. This works
concurrently for all businesses. The continuous integration and continuous
delivery model allow development and operational teams to perform
everything simultaneously in development, quality assurance, security, and
other operations.
Now businesses are turning more towards DevOps as an agile and lean
approach that enables a crisp collaboration between all the stages of the
development life cycle.
Advantages of DevOps
Faster Process Multiple ongoing processes work simultaneously which
makes the process faster and easier for businesses to process on time. By
adapting to changes in the market, DevOps enables businesses to grow
efficiently and drive definite business results.
Offers Rapid Deliveries Microservices and Continuous delivery are some
elements of DevOps that offer business continuity and recent updates rapidly.
DevOps allows businesses to continuously innovate and improve products for
a better software product.
Reliability With increasing changes in the product and infrastructure, the
developed products are robust and secure with a competitive advantage
against all the peers.
Collaboration This is a collaborative platform pillared on strong parameters of
accountability and ownership. Both the development teams and operations
team are in sync with all activities of the development lifecycle to deliver faster
and effective products.
Disadvantages of Devops
DevOps demands Cultural change Yes, this is true if you adopt DevOps in
your business, it demands cultural change and business needs to restart their
processes in order to grow efficiently.
Organizational Upgradation is another important factor for companies to
upgrade their business from conventional methods to dividing into
multidisciplinary tasks that will allow them to use multiple skills at the same
time.
Speed and security is not something that is achieved all the time using
DevOps. For some critical software engineering projects, there are companies
that may not assure both in a single stage and you may need to consider a
separate plan for security at every stage of your DevOps workflow.
1.3 Scrum Development Methodology
You can apply the Scrum Development Methodology in nearly all types of
projects. For companies where the requirements are highly emerging and
rapid changes are easily adhered to, we use this type of development method.
The Scrum software development model begins with brief planning, meeting,
and concludes with a final review. Businesses can accelerate the
development of software using this method that allows a series of iterations in
a single go. It is one of the best software development methodologies
because it easily brings slowest progressing projects on track.
Advantages of Scrum Development
Use Scrum Development for fast-moving, cutting-edge developments, rapid
codes, and testing mistakes that can be easily rectified.
In this methodology, decision-making is entirely in the hands of the teams.
This methodology enables projects with the business requirements
documentation and other signs that contribute to success.
Enterprises can control the Project development steps visible in this method
with emphasis on frequent updating of the progress.
A daily meeting easily helps the developer to make it possible to measure
individual productivity. This leads to the improvement in the productivity of
each of the team members.
Due to short sprints and constant feedback, it becomes easier to cope with
the changes.
It is easier to deliver a quality product at a scheduled time.
Disadvantages of Scrum Development
As one of the leading causes of scope creep is Agile Scrum thus there is no
definite end date, the project management stakeholders will be tempted to
keep demanding that new functionality be delivered.
You should keep the estimation of project costs and time accurate if not then
this kind of development model will suffer.
It is good for small, fast-moving projects but not suitable for large complex
projects.
This methodology needs experienced team members only. If the team
consists of people who are novices, the project cannot be completed within an
exact time frame.
Scrum works well for project management when the Scrum Master trusts the
team they are managing. If they practice too strict control over the team
members, it can be extremely frustrating for them, leading to demoralization
and the failure of the project.
Project quality manager is hard to implement and quantify unless the test
team is able to conduct regression testing after each sprint.