Disadvantages of Process: Date:27/01/2025
Disadvantages of Process: Date:27/01/2025
1. Waterfall
A linear and sequential approach where each phase (e.g., requirements, design, implementation,
testing) is completed before moving to the next.
Advantages:
Disadvantage:
2. Agile
An iterative and flexible approach that focuses on delivering small, incremental improvements
through collaboration and adaptability.
Advantages:
Disadvantage:
3. Spiral
A risk-driven process that combines iterative development with elements of the waterfall model,
focusing on risk assessment and prototyping.
Advantages:
Disadvantage:
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:
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.
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.
If your best programmer or architect quits, the team might struggle to continue the work.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
2. Break big work down into smaller tasks that can be completed quickly.
7. Assemble the project team and business owners on a daily basis throughout the project.
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.