Subhash Sharma

Subhash Sharma
Subhash Sharma

This is Subhash Sharma(Software Engineer) Blog

Welcome to this blog and find every solution.............

Search This Blog

Software Engineer(Subhash Sharma)

Software Engineer(Subhash Sharma)
Software Engineer

Wednesday, November 23, 2022

What is the Difference Between Agile and Waterfall?

Agile and waterfall are two different methodologies of processes to complete projects or work items/Tasks/Epics. Agile is an iterative methodology that incorporates a cyclic and collaborative process. Waterfall is a sequential methodology that can also be collaborative, but tasks are generally handled in a more linear process.


Waterfall Methodology

waterfall is a traditional, plan-driven practice for developing systems. One of the earliest software development lifecycle (SDLC) approaches, it is a practice of developing in stages: Gather and analyze software requirements, design, develop, test, and deploy into operations. The output of one stage is required to initiate the next stage.

Waterfall is best used on software development projects that are well-defined, predictable, and unlikely to significantly change. This usually applies to simpler, small-scale projects. Its sequential nature makes it largely unresponsive to adjustments, so budgets and delivery timelines will be affected when business requirements change during the development cycle.


Waterfall projects have a high degree of process definition, little or no variability in output and they do not accommodate feedback during the development cycle.

Pros of the Waterfall model

It is among the most simple types to operate. Because of the project’s nature, each phase contains deliverables and also a review process.

It is best suitable for smaller tasks with defined requirements that are simple to understand and execute.

completion of the job in a shorter amount of time

Both the procedure and the outcomes are meticulously recorded.

Simple to adopt a method for restructuring teams

This project management approach is useful for dealing with dependencies.

Cons of the Waterfall Model

This is not the preferred product for a big project.

This approach is less effective if the requirement is not clearly defined at the start.

It is difficult to travel ahead and make changes to previous stages.

The testing step starts after the design phase is finished. As a result, there is a high probability that flaws will be found required during the development process when they will be more costly to repair.

Agile Methodology

Agile software development practices have been in use since the early 1990s, born out of the need to adapt and rapidly deliver products. The Agile methodology allows for the exploration of new ideas and quicker determinations about which of those ideas are viable.


Additionally, Agile methods are designed to adapt to changing business needs during development. There are two primary frameworks used in Agile: Scrum and Kanban. Key components of Scrum are iterations and velocity, while a key point with Kanban is its work-in-progress status.

Agile methods are based on iterative, incremental development that rapidly delivers a viable business product. Incremental development breaks the product into smaller pieces, building some of it, assessing, and adapting. Agile projects do not start with complete upfront definitions; variability through development is expected. And, importantly, continuous feedback is built into the development process. Their inherent adaptability allows them to flexibly realign product development, and it's often cheaper to adapt to user feedback based on building something fast than it is to invest in trying to get everything right up front.


While Agile brings flexibility and speed to development, the practices that really accelerate the delivery of scalable, reliable code are in the DevOps realm.


Pros of the Agile Model

It is a method that is centered on the customer. As a consequence, the customer is always involved throughout the entire process.

Agile teams are extremely active and self, and as a consequence, they are much more inclined to deliver superior results in development projects.

The agile software development approach ensures that development quality is maintained throughout the development process.

The strategy is solely based on the notion of incremental consistent growth in progress. As a consequence, both the customer and the crew are informed of what has and has not been accomplished. As a consequence, the risk of the development phase is minimized.

Cons of the Agile Model

It is not a viable strategy for small-scale development efforts.

In order to try and make crucial choices during the meeting, it is vital to have a professional presentation.

The cost of implementing an agile approach is just somewhat greater when compared to traditional development approaches.

If the project manager isn’t clear on the end goal, the project might easily become derailed.


Saturday, October 15, 2022

Enable CORS in DotNet core in Startup.cs file

Browser security prevents a web page from making requests to a different domain than the one that served the web page. This restriction is called the same-origin policy. The same-origin policy prevents a malicious site from reading sensitive data from another site. Sometimes, you might want to allow other sites to make cross-origin requests to your app. Example Below  


public void ConfigureAuthentication(IServiceCollection services)

        {

            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            services.AddCors(options =>

            {

                options.AddPolicy("CorsPolicy",

                    builder => builder

                    .SetIsOriginAllowed((host) => true)

                    .AllowAnyMethod()

                    .AllowAnyHeader()

                    .WithExposedHeaders("Content-Disposition")

                    .AllowCredentials());

            });

                   }