RECONSIDERATION AND PROPOSAL OF DEVELOPMENT MODELS IN PROJECTS - “QUASI” DEVELOPMENT MODELS: QUASI-WATERFALL AND QUASI-AGILE

: Diverse development models, including waterfall development, iterative development, and agile development, have been put forth and implemented across real-world contexts. When engaging in discussions on project management, the examination and exploration of development models assume paramount importance and are integral. This paper embarks upon an investigation and scrutiny of these development models, culminating in the proposition of "Quasi" Development Models: Quasi-Waterfall and Quasi-Agile.

Given this context, it is essential to critically examine and propose alternate development models that cater to the diverse needs of different projects and cultural contexts.This paper introduces the concept of "Quasi" Development Models: Quasi-Waterfall and Quasi-Agile.These models aim to enhance the effectiveness and efficiency of development processes, while aligning with the unique requirements of various regions and organizations.It's crucial to note that this paper represents a theoretical proposal and no empirical case studies have been conducted to test these models.Moreover, the definitions provided herein are conceptual and not definitive.

Structure of This Discussion Paper
This paper is designed to investigate and evaluate the principles and applications of the waterfall and agile development models.Additionally, it explores the concept of hybrid development, which merges aspects of both agile and waterfall methodologies.Within this hybrid development framework, we introduce the ideas of quasi-waterfall and quasiagile development.These concepts address the critical question: • Which development model should form the foundation of a hybrid approach?
The structure of this paper will be explained.In section 2, we will examine waterfall development, agile development, and the integration of these approaches in hybrid development.Section 3 will further explore hybrid development by distinguishing quasi-waterfall development and quasi-agile development, followed by a reexamination.In section 4, we will discuss the conclusion of this paper and future challenges.

Re-investigation and Re-examination of Prior Literature on Development Models
In this section, we will conduct an extensive investigation and analysis of the extant literature concerning development models.Our aim is to undertake a meticulous evaluation of the merits and drawbacks associated with each development model.While it is crucial to acknowledge that this overview may encompass broad observations and established facts, we appreciate your understanding.

Waterfall Development Model
The waterfall development model, initially introduced in scholarly literature in 1988 [5], has since become a prominent fixture in the software development industry, particularly in Japan, where it reigns as the predominant development paradigm.
This development model is distinguished by its linear and sequential methodology, where each project phase follows a strict and predetermined order, reminiscent of water gracefully descending a waterfall.These phases typically encompass requirements definition, system and software design, implementation and unit testing, integration and system testing, and finally, operation and maintenance.Each phase must be fully completed before proceeding to the next, without the possibility of revisiting previous stages.
Notably, waterfall development finds extensive utilization in large-scale projects that demand meticulous and systematic approaches.This model facilitates a structured trajectory, enabling comprehensive planning, meticulous design, and precise documentation -factors of utmost importance for the triumphant execution of such significant endeavors.

Advantages of Waterfall Development
The advantages of waterfall development are as follows: • Scale and Duration: Waterfall development is particularly apt for large-scale, longduration projects.Its linear, phase-by-phase approach lends itself well to complex endeavors that require structured progression.• Schedule Creation: The model supports the establishment of comprehensive project schedules, providing clarity and assurance to stakeholders.• Skills Clarity: Given its organized structure, it clearly defines the required skills for each phase, facilitating efficient recruitment during personnel needs.

Disadvantages of Waterfall Development
The problems associated with waterfall development are as follows: • Uncertainty and Rigidity: Waterfall development can be problematic when detailed requirement gathering and design in the early stages are challenging.This rigidity can impose burdens on later-stage team members, lead to changes in customer requirements, and result in inaccurate cost estimations and financial losses.• Team Understanding: The strict division between phases might lead to a lack of comprehensive understanding and collaboration among team members, potentially causing disconnects within the project team.• Change Management: Incorporating new requirements or changes from customers or end-users during the development process is difficult due to the model's rigid structure.
• Rework and Scope Creep: If customer requirements increase beyond the initial plan, it can lead to significant rework.Particularly, changes demanded in the later stages can severely impact project timelines and budgets.

Agile Development Model
Agile development has emerged as a prominent development paradigm within the software engineering domain in recent years.The principles of this model gained widespread recognition upon the release of the Agile Manifesto for Software Development in 2001 [6].Currently, a variety of agile methodologies, including Extreme Programming, Scrum, and User-Centered Design, have been extensively embraced and continue to evolve.Agile development demonstrates particular effectiveness in smaller-scale projects characterized by evolving requirements.In contrast to traditional development approaches that prioritize comprehensive documentation and upfront planning, agile development emphasizes minimal initial design [10].This shift enables frequent reassessment and iteration throughout the development lifecycle, empowering teams to swiftly adapt to evolving requirements.Moreover, agile projects commonly adopt the practice of releasing incremental deliverables on a weekly or even daily basis, fostering a culture of continuous feedback and improvement.Consequently, agile development endeavors to minimize inefficiencies and enhance productivity by fostering an environment of perpetual learning and iterative development.

Advantages of Agile Development
The advantages of agile development are as follows: • Scalability and Timeline: Agile methodologies are ideal for small-scale projects with brief development periods due to their iterative nature and fast-paced development cycles.• Prioritization of Features: Agile development allows prioritization of high-impact features.These features, often driven by customer requirements, can be developed and delivered first, maximizing value early on [7].• Issue Detection: Agile's iterative approach encourages regular reflection and adaptation, making it easier to surface and address project issues promptly.• Customer Involvement: Agile emphasizes customer collaboration, enabling the incorporation of real-time feedback from customers and end-users.This active participation leads to a product closely aligned with user needs.• Error Detection and Adaptation: Agile practices such as continuous integration and testing allow early detection of errors or missing requirements, making it easier to adapt and reduce the cost of change.• Increased Communication: Agile fosters more frequent and effective communication with customers during the development process.This results in robust information dissemination methods and enables a more accurate incorporation of user perspectives.
• Flexibility: Agile methodologies allow development teams to adapt quickly to changes.For example, they can start coding even before the detailed design is complete, making it suitable for today's fast-paced business environments.

Disadvantages of Agile Development
The disadvantages of agile development are as follows: • Skill Requirement: Agile development relies heavily on a team of highly skilled technical members.This can create difficulties with resource allocation, especially in environments with limited skill availability, potentially leading to unforeseen increases in personnel costs.• Documentation: Agile practices emphasize working software over comprehensive documentation.However, inadequate creation of documents and artifacts can sometimes lead to an uncontrolled expansion of requirements, making the project difficult to manage.• Project Scale: Agile methodology is often employed for small to medium-scale projects due to its flexible and adaptive nature.However, this might constrain the method's applicability to larger, more complex projects, potentially limiting revenue opportunities.• Contractual Challenges: Agile's iterative approach may be incompatible with fixed-cost or fixed-scope contracts, requiring careful consideration of contract terms and conditions to ensure both parties' expectations align.• Duplicate Development: Agile's decentralized decision-making could potentially lead to duplicate development of similar functionalities if there isn't effective communication and coordination within the team [11].• Schedule and Effort Estimation: Agile prioritizes adaptability and customer satisfaction over timeline adherence, which can lead to ambiguity in development schedules and effort estimations [8].• Integration Efforts: The constant addition of incremental functionalities can make integration efforts time-consuming.However, advancements in development technologies are increasing the automation of integration processes, potentially mitigating this challenge [11].• Transition Challenges: Companies that predominantly follow waterfall development may face resistance when transitioning to Agile Development.This can be due to the cultural shift required, the perceived risks involved, or a lack of understanding of the potential benefits of Agile practices [9].

Hybrid Development Model: Integration of Waterfall and Agile Approaches
In recent times, there has been a surge of interest in the hybrid development model, which amalgamates elements from both agile and waterfall development methodologies.This hybrid model represents a pragmatic and field-centric approach, offering promising prospects for further advancements.
For instance, within the scope of this paper, hybrid development refers to the assimilation of agile practices into each phase of the waterfall model, encompassing requirements definition, external design, and internal design.By conducting iterative cycles of agile-based requirements definition, the potential for ensuring quality assurance is augmented.Furthermore, it is also feasible to merge requirements definition and external design phases, followed by iterative cycles of agile-based requirements definition and design.The crux of hybrid development lies in tailoring the development approach to suit the specific requirements of the project.Research on hybrid development is currently thriving [16][17][18][19][20][48][49][50].
Below, we briefly mention the advantages and disadvantages.However, it is important to note that the advantages and disadvantages can vary depending on whether the field is more adept at agile or waterfall development, so not all aspects will be covered in detail.

Advantages of Hybrid Development
By combining waterfall and agile approaches, hybrid development can create a development model that is more closely aligned with the actual project requirements.It allows for easier tailoring to suit specific project needs.

Disadvantages of Hybrid Development
Unlike waterfall and agile approaches, hybrid development lacks a well-established theoretical foundation.As a result, there is a possibility of a chaotic development process without clear guidelines.

About "Quasi"
When discussing project management, it is essential to consider the concept of the critical path.Alongside the critical path, there exists a concept known as the quasi-critical path.The quasi-critical path refers to the path that should be chosen when the actual critical path cannot be determined.It represents the path that closely aligns with the critical path but is slightly less time-constrained.
In this paper, we introduce the concept of "quasi" development methods, which are development approaches that encompass elements from both traditional waterfall and agile methods.For instance, implementing agile development within each phase of the waterfall development process (e.g., requirements definition, external design, internal design) can be regarded as a quasi-waterfall approach.Conversely, in scenarios such as student projects, agile-oriented development methods are often employed.A development method that integrates rigorous schedule management and meticulous requirements definition into agile-oriented practices can be referred to as quasi-agile development.

The Necessity of Quasi-Waterfall and Quasi-Agile Development
The concept of "quasi" development approaches emerges as a response to the evolving needs of different project environments.These environments may require a shift in the development methodology employed, making a strictly waterfall or agile approach inadequate.
For instance, large corporations often handle substantial projects, which may naturally align with the structure and stability offered by the waterfall model.However, transitioning abruptly from a rigid waterfall structure to a flexible agile one can be a daunting task.Instead, it may be more practical to gradually incorporate agile practices into specific phases of a waterfall model.This approach could allow organizations to harness the benefits of both methodologies, thereby optimizing their development process.
Conversely, for smaller-scale projects, such as those typically conducted in research settings or by university students, a full-scale waterfall development model may be excessive.Instead, a more flexible approach that draws from agile principles might be preferable.In these contexts, integrating methodologies from waterfall development like Work Breakdown Structures (WBS), Gantt charts, and meticulous task and schedule management, along with elements of agile development such as iterative requirement definitions and design phases, could help mitigate the occurrence of rework and schedule delays.
By critically evaluating the project environment and carefully considering which development model to base the project on, it becomes feasible to tailor the development process accordingly.This flexibility enhances our ability to provide clear direction and guidelines that best suit the project's unique needs.

Quasi-Waterfall Development Model
As previously mentioned, the quasi-waterfall development model combines the systematic and structured approach of the traditional waterfall model with the adaptability inherent in agile techniques.The agile principles of user stories, iterative development, regular feedback, and the ability to adapt to change are seamlessly integrated into the rigid structure of the waterfall model.This harmonious integration gives the model its distinctive "quasi" nature, providing a versatile methodology that leverages the benefits of both waterfall and agile practices.

Requirements Definition
Agile's user story technique is used here.User stories help in gathering and refining requirements from the user's perspective.Instead of a one-time requirement-gathering process, agile's iterative requirement refinement is adopted.This iterative process allows ongoing input from stakeholders, creating opportunities to adapt and respond to changes in requirements.

System and Software Design
Design principles from agile methodologies are introduced.Instead of finalizing the entire system's design in one phase, collaborative and emergent design practices are employed.This means the design evolves over time, informed by team collaboration and lessons learned during development, promoting adaptability and flexibility.

Implementation and Unit Testing
The traditional waterfall model would have this as a separate phase, strictly after the completion of the design phase.However, here we introduce agile's iterative development, and continuous integration.Regular, short development cycles (sprints) are conducted, at the end of which pieces of functionality are delivered.Regular feedback during these sprints helps in early detection and rectification of errors.

Integration and System Testing
In traditional waterfall, this phase happens after all the development is done, but in quasiwaterfall, agile's continuous integration and testing are utilized.This approach ensures all the developed pieces work together efficiently, and problems are identified and fixed in an ongoing manner, reducing the risks and efforts of a post-development testing phase.

Operation and Maintenance
This phase sees the incorporation of the agile principle of 'responding to change'.Even in the operation and maintenance phase, changes to the system are addressed in an iterative manner, ensuring the system continuously evolves and remains up-to-date.
By incorporating agile practices within each phase of the waterfall model, the quasi-waterfall development model can cater to projects needing a clear, linear structure while benefiting from the flexibility and adaptability of agile development.

Quasi-Agile Development Model
As previously mentioned, the Quasi-Agile Development Model encompasses the iterative nature of agile methodologies while integrating comprehensive planning and meticulous schedule management from waterfall approaches.This hybrid model mitigates potential pitfalls encountered in pure agile practices, such as scope creep and schedule overruns, thereby providing a more controlled and controlled agile experience.

Pre-iteration
In traditional agile methodologies, requirements, and planning are typically addressed in a "just-in-time" and flexible manner.However, the quasi-agile model introduces an upfront phase dedicated to detailed requirements analysis and schedule planning.Requirements are gathered meticulously, with a strong emphasis on documentation, akin to the waterfall model.A comprehensive project schedule is also formulated, delineating the sequence, duration, and interdependencies of iterations.

Iterative Development
This phase mirrors the essence of traditional agile development, featuring iterative cycles (sprints) where design, development, and testing occur concurrently.Nevertheless, each sprint is guided by the detailed roadmap derived from the pre-iteration phase.This approach provides a clear vision and minimizes deviation from the project scope.

Continuous Integration
Continuous integration, a pivotal agile practice involving frequent code integration and testing, remains integral to the quasi-agile model.This approach facilitates early defect detection and mitigates integration risks.While not exclusive to the quasi-agile model, the combination of continuous integration with the detailed upfront planning from the waterfall model sets it apart.

Release Planning
Unlike pure agile approaches, wherein releases are often flexible and driven by the product owner's priorities, quasi-agile adheres to a meticulously defined release plan formulated during the pre-iteration phase.Each iteration aligns with specific planned releases, ensuring the timely development and delivery of critical features.

Post-iteration
In traditional agile practices, retrospectives predominantly focus on process improvement.In the quasi-agile model, retrospectives are accompanied by meticulous updates to the overall project schedule.Changes in the project plan, potential risks, and lessons learned from previous iterations are documented and utilized to refine the project roadmap.
The quasi-agile model represents a harmonious amalgamation of the flexibility and customer collaboration offered by agile methodologies with the comprehensive planning and control associated with the waterfall model.This balanced approach enhances efficiency and effectiveness in projects that necessitate a higher degree of control and predictability without sacrificing the inherent benefits of agile practices.

Summary of This Short Paper
This short paper investigated and explored waterfall development and agile development.Furthermore, the paper discussed hybrid development and proposed the concept of quasi-waterfall and quasi-agile development, albeit in a broad manner.

Future Directions
As this paper primarily serves as a proposal, future plans entail the implementation of concrete case studies and quantitative analyses.It is also being contemplated to establish precise definitions and undertake empirical investigations to distinguish Quasi-Waterfall and Quasi-Agile Development from other hybrid development approaches.Moreover, it is crucial to tackle the following challenges: scrutinizing techniques for customizing quasi-waterfall and quasi-agile development, presenting theoretical frameworks, and exploring the incorporation of the "quasi" concept within other project management methodologies.