0% found this document useful (0 votes)
15 views10 pages

Disadvantages of Process: Date:27/01/2025

The document outlines various software development processes, highlighting their advantages and disadvantages, including Waterfall, Agile, Spiral, and Code and Fix. It emphasizes the importance of formal processes for efficiency, predictability, and quality, while also discussing the challenges of implicit processes. Additionally, it covers Agile principles and core practices that promote collaboration, adaptability, and continuous improvement in software development.

Uploaded by

aabaid732
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views10 pages

Disadvantages of Process: Date:27/01/2025

The document outlines various software development processes, highlighting their advantages and disadvantages, including Waterfall, Agile, Spiral, and Code and Fix. It emphasizes the importance of formal processes for efficiency, predictability, and quality, while also discussing the challenges of implicit processes. Additionally, it covers Agile principles and core practices that promote collaboration, adaptability, and continuous improvement in software development.

Uploaded by

aabaid732
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Disadvantages Of Process: Date:27/01/2025

1. Overhead – Extra time, effort, and resources may be required.


2. Diminishes Spontaneity & Creativity – Strict processes can limit flexibility and
innovation.
3. Unsuitable for Certain Tasks – The chosen process may not always be the best fit for a
specific job.

Most Common Software Processes:

1. Waterfall

A linear and sequential approach where each phase (e.g., requirements, design, implementation,
testing) is completed before moving to the next.

Advantages:

1. Simple and easy to manage due to its structured approach.


2. Clearly defined stages help in understanding project progress.
3. Well-documented process makes maintenance easier.
4. Best suited for projects with fixed requirements as it avoids frequent changes.

Disadvantage:

1. Difficult to make changes once a phase is completed.


2. Errors are discovered late, making fixes expensive.
3. Not suitable for complex or evolving projects.
4. Slow delivery as working software is available only at the end.

2. Agile

An iterative and flexible approach that focuses on delivering small, incremental improvements
through collaboration and adaptability.

Advantages:

1. Quick adaptation to changes ensures better alignment with user needs.


2. Continuous feedback loop improves software quality.
3. Frequent releases allow early detection and resolution of issues.
4. Encourages teamwork and collaboration among developers and stakeholders.

Disadvantage:

1. Needs constant involvement from developers and clients.


2. Frequent changes can affect budgeting and timelines.
3. Lack of detailed documentation can create issues in later stages.
4. Difficult to implement in large organizations with strict processes.

3. Spiral

A risk-driven process that combines iterative development with elements of the waterfall model,
focusing on risk assessment and prototyping.

Advantages:

1. Risk management reduces uncertainties in software development.


2. Early detection of potential problems helps avoid major failures.
3. Highly flexible approach allows adjustments throughout the process.
4. Suited for complex projects requiring continuous evaluation.

Disadvantage:

1. Requires risk management expertise.


2. It is Not Suitable for Small Projects
3. More costly due to repeated prototyping.
4. Takes longer compared to other models because of iterative cycles.

4.Code And Fix:

Code and fix is a development process where developers immediately start coding after receiving
basic requirements without details design or analysis, the process involves fixing issues and bugs
as they arise.

Advantages:

1. Fast initial development since there is no formal planning.


2. Flexible for small projects with simple requirements.
3. Immediate feedback allows quick adjustments.
4. No overhead from planning saves time and effort.
Disadvantages of Code and fix:

1. No clear goals due to lack of planning.


2. Hard to modify or scale unstructured code.
3. Fixing bugs is costly and time-consuming.
4. No documentation makes maintenance difficult.
5. Poor testing leads to unreliable software.
Types Of Process: Date:03-02-2025

Definition of Formal Process:

A formal process in software development is a structured and well-defined approach that includes
clear steps, documentation, and methodologies to ensure quality, efficiency, and maintainability.
Examples include Waterfall, Agile, and Spiral models.

Do We Need a Formal Process?

Some teams can work without a formal process if:

1. They have skilled programmers who understand both coding and business.
2. Developers take initiative and build software without strict planning.
3. A strong manager puts in extra effort to guide the team.
4. Motivated developers work extra hours to complete the project.

However, without a formal process, projects may lack organization, quality, and proper
documentation.

Definition of Implicit Process:


An implicit process is an informal, unwritten, or intuitive way of completing tasks. It relies on
experience, habits, or shared understanding rather than documented procedures.

Problems with an Implicit Process

1. Depends on Motivated, Talented Individuals

If your best programmer or architect quits, the team might struggle to continue the work.

2. Not Repeatable or Predictable

Without a clear process, it’s hard to estimate how long a project will take or calculate costs, making
it difficult to bid on future projects.

3. Stress and Burn-Out

Too much pressure on the team, uncertainty, and overtime can lead to frustration and burn-out.
There’s no time for personal development or skill improvement.

Why a Defined Process?

1. More Effective: A defined process leads to less time spent on planning, estimates, and
decisions, making the team more efficient.

2. Predictable: Having a clear process makes outcomes more predictable, which helps in better
planning.

3. Repeatable: A defined process ensures that you can repeat the same success in future projects.

4. Trackable: It allows you to measure predictability and track progress effectively.

5. Maintainability: A well-defined process ensures easier maintenance of the software over


time.

6. Quality: Consistent processes help ensure better quality of the software produced.

7. Capability Improvement: By using lessons from past experiences, teams can improve their
skills and processes continuously.

4 Key Factors in Development Speed

1. People– The skills, knowledge, and motivation of the team affect how fast the project moves.
2. Process– Focusing on customer needs and using good planning, quality checks, and risk
management speeds up development.

3. Product– The size and complexity of the product, and how it's built in phases, influence speed.

4. Technology– The tools and software environment used in development can make the process
faster or slower.

Classical Process Models

1. Rapid Prototype Model

In this model, a prototype is built quickly to help users understand the system and provide
feedback. It’s used to refine requirements and design based on user input.

2. Waterfall (Discussed Earlier)

Phases: Requirements Gathering, Requirements Analysis, Design, Coding, Testing, Deployment,


Maintenance.

3. Spiral (Discussed Earlier)

Meta Thinking
Meta-thinking, or thinking about thinking, is when you reflect on how you think, learn, or solve
problems. It helps you become more aware of your thoughts and improve decision-making.

Simple Example:

Imagine you’re solving a math problem. Instead of just calculating, meta-thinking means asking
yourself:

• Am I using the best method?


• Why did I make that mistake?
• How can I think more clearly next time?

It’s like stepping outside your own mind to observe and improve how you think.

Agile Manifesto

1. Individual interactions

Individual interactions are more important than processes and tools. People drive the development
process and respond to business needs. They are the most important part of development and
should be valued above processes and tools. If the processes or tools drive development, then the
team will be less likely to respond and adapt to change and, therefore, less likely to meet customer
needs.

2. Focus on working software

A focus on working software rather than thorough documentation. Before Agile, a large amount of
time was spent documenting the product throughout development for delivery. The list of
documented requirements was lengthy and would cause long delays in the development process.
While Agile does not eliminate the use of documentation, it streamlines it in a way that provides
the developer with only the information that is needed to do the work -- such as user stories. The
Agile Manifesto continues to place value on the process of documentation, but it places higher
value on working Software.

3. Collaboration

Agile focuses on collaboration between the customer and project manager. Collaborating with the
customer means that they are included throughout the entire development process, not just at the
beginning and end, thus making it easier for teams to meet the needs of their customers.

For example, in Agile, the customer can be included at different intervals for demos of the product.
However, the customer could also be present and interact with the teams daily, attend all meetings
and ensure the product meets their desires.

4. Focus on responding to change

A focus on responding to change. Traditional software development used to avoid change because
it was considered an undesired expense. Agile eliminates this idea. The short iterations in the Agile
cycle allow changes to easily be made, helping the team modify the process to best fit their needs
rather than the other way around. Overall, Agile software development believes change is always
a way to improve the project and provide additional value.

The 12 principles or rules of Agile

1. Satisfy customers through early and continuous delivery of valuable work.

2. Break big work down into smaller tasks that can be completed quickly.

3. Recognize that the best work emerges from self-organized teams.


4. Provide motivated individuals with the environment and support they need and trust them to get
the job done.

5. Maintain a constant pace for completed work.

6. Welcome changing requirements, even late in a project.

7. Assemble the project team and business owners on a daily basis throughout the project.

8. Measure progress by the amount of completed work.

9. Harness change for a competitive advantage.

10. Do only what is necessary and avoid extra work.

11. The team should regularly think about what went well and what can be better.

12. Keep improving work quality, teamwork, and processes based on feedback.

Agile Core Practices (CRACK Model)

• Collaborate – Work closely with the team and customers.


• Representative – A customer representative is always available.
• Authoritative – Teams have the power to make decisions.
• Committed – Team members stay dedicated to the project.
• Knowledgeable – Skilled professionals ensure quality work.

Other Agile Practices

• Test-Driven Development (TDD) – Write tests before coding.


• Frequent Testing – Use automation for continuous checks.
• Running Software at Each Iteration – Deliver working software in small steps.
• Face-to-Face Communication – Regular direct discussions.
• Competent Teams – Skilled and responsible developers.
• Reflection & Improvement – Regularly review and improve.
• Readable Code – Write clean, well-documented code.
• Pair Programming – Two developers work together.
• Sustainable Work – Avoid excessive overtime.

You might also like