Evolutionary Prototyping Process - Georgia Tech - Software Development Process

Udacity
23 Feb 201502:09

Summary

TLDREvolutionary prototyping is a software development process that involves iterative refinement of a system based on customer feedback. It begins with an initial concept, followed by the design and implementation of a prototype. This prototype is then continuously refined until it meets customer satisfaction, after which it is completed and released as the final product. This approach is particularly useful when requirements are not fully understood, as it allows for immediate feedback and risk minimization. However, it can be challenging to plan due to unpredictable iteration cycles and may lead to a 'cut and fix' mentality, potentially compromising product quality.

Takeaways

  • 🌱 **Evolutionary Prototyping Phases**: The process involves four main phases: initial concept, design and implementation of a prototype, refinement until acceptance, and final completion and release.
  • 🔄 **Continuous Refinement**: Systems developed through evolutionary prototyping are continually refined and rebuilt, making it suitable for situations where requirements are not fully understood.
  • 🛠️ **Incremental Development**: Developers focus on building and refining parts of the system that are well-understood, rather than attempting to develop a complete system upfront.
  • 🔁 **Feedback-Driven Iterations**: Customer feedback is integral, guiding subsequent iterations where changes are made or new features are added to the prototype.
  • 🏁 **Completion upon Customer Satisfaction**: Development concludes and the prototype is released as the final product once the customer is satisfied with its functionality.
  • 📢 **Advantage: Immediate Feedback**: The main advantage is the immediate feedback loop, which minimizes the risk of developing a system that doesn't meet user needs.
  • 📈 **Disadvantage: Planning Difficulty**: It's challenging to plan the development timeline due to the unpredictable number of iterations required.
  • ⚒️ **Risk of 'Cut and Fix' Approach**: There's a risk of adopting a subpar development approach where quick fixes are made based on feedback, potentially leading to a lower quality final product.
  • 🤖 **Variety in Prototyping**: Evolutionary prototyping is one of many prototyping approaches; others, like throwaway prototyping, exist for different purposes, such as gathering requirements only.
  • 🔍 **Partial System Demonstration**: The partial system is shown to the customer for feedback, highlighting an iterative and collaborative development process.

Q & A

  • What is the first phase of the evolutionary prototyping process?

    -The first phase of the evolutionary prototyping process is starting from an initial concept.

  • What is the main activity during the second phase of evolutionary prototyping?

    -During the second phase, developers design and implement a prototype based on the initial concept.

  • How does the refinement of the prototype occur in evolutionary prototyping?

    -The prototype is refined through continuous iteration, making changes or adding new features based on customer feedback until it is acceptable.

  • What is the final step in the evolutionary prototyping process?

    -The final step is to complete and release the prototype as the final product once the customer agrees it is good enough.

  • Why is evolutionary prototyping suitable when requirements are not well understood?

    -Evolutionary prototyping is suitable when requirements are not well understood because it allows developers to start with what they do understand and iteratively improve the system based on feedback.

  • What part of the system do developers typically start with in evolutionary prototyping?

    -Developers start by developing the parts of the system that they understand, rather than attempting to develop the entire system at once.

  • How does customer feedback influence the evolutionary prototyping process?

    -Customer feedback is used to drive the next iteration, guiding whether changes are made to current features or new features are added.

  • What is the main advantage of using evolutionary prototyping?

    -The main advantage is immediate feedback, which minimizes the risk of implementing the wrong system.

  • What are the difficulties associated with planning in evolutionary prototyping?

    -It is difficult to plan in advance how long the development will take because the number of iterations needed is unknown.

  • What is a potential negative outcome of the evolutionary prototyping process?

    -A potential negative outcome is that the process can lead to a 'cut and fix' approach, resulting in a final product that is functional but not of high quality.

  • How does throwaway prototyping differ from evolutionary prototyping?

    -In throwaway prototyping, the prototype is used only to gather requirements and is discarded after that, rather than being evolved into the final product as in evolutionary prototyping.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Evolutionary PrototypingSoftware DevelopmentFeedback LoopPrototype RefinementSystem DesignCustomer EngagementDevelopment PlanningQuality AssuranceRapid IterationAgile Methodology