- Agile Development
- FDD: Feature-driven Development
- Lean development
- XP: Extreme Programming
- Waterfall Model
- Prototype Model
- RAD: Rapid Application Development
- Dynamic Systems Development Model
- Spiral Pattern
- JAD: Joint Application Development
- Unified Rational Process
- DevOps Methodology
- Adaptive Software Development
- Behavior-driven Development
Despite the existence of numerous methodologies with the same ultimate goal, it is also common for a software development project to become problematic. Why? The cause is only one, and I reiterate that it is not the software development methodology. The cause of a software development project becoming problematic is in the first phase: the requirements.
Firstly, due to the user’s lack of understanding and commitment to adequately communicate them to the development group, and secondly, the latter’s lack of a complete and effective method of validating them with the user to ensure that what they understood is the same as his. wanted to communicate.
Software Development Methodology We Recommend at BainsLabs
Our Pick: Model of Agile Lean Software Development
This is done to deliver your product early with minimal functionality. Short iterations throughout the process require constant communication with the user and the flexibility to adapt to any unforeseen risks.
Company Characteristics: For companies that have projects with low budgets.
Project Characteristics: short deadlines to obtain the first products or functional modules.
Development Group’s Characteristics: It depends on the technical knowledge of the team and its capacity for collaboration, coordination, and communication so as not to lose focus during the project.
User Characteristics: Must have well-specified and executed processes and their requirements based on them.
Agile Scrum Software Development Model
This is done to deliver your product early with minimal functionality. The iterations must be short; they require constant communication with the user and the flexibility of the development group to adapt to any change.
Daily meetings are held, which the user must attend, to ensure that development is controlled and tracked.
Company Characteristics: For companies that have defined an intense life cycle with frequent deliveries.
Project Characteristics: rapidly changing requirements.
Development Group’s Characteristics: It requires technical experts, rather than novices, to use it successfully.
User Characteristics: It does not have defined processes or very few, its requirements are general, and it “completes” its software as it understands and incorporates its requirements into the computer system. Define “on the go.”
Extreme Programming Model (XP)
It is the software development methodology most commonly used by startups that require several small releases. This methodology allows system needs to be met in a short time and with virtually no errors despite constant changes to already deployed requirements.
This is done with a working method in which everyone involved in the project, including the user, must understand the code. Its objective is to deliver high-quality software in record time.
We work in constant communication and coordination between the pair of developers and the user. You can demand several meetings in a single day.
Company Characteristics: For companies that have defined an intense life cycle with frequent deliveries and six-sigma quality indicators of the generated software.
Project Characteristics: developers work in pairs on a simple design and continually improve the code based on feedback from users whose requirements change rapidly.
Development Group’s Characteristics: requires technical experts working in pairs for each requirement.
User Characteristics: it has nothing documented; its requirements are general, and it specifies them together with the development group. actively participates in the release and deployment.
How to choose a methodology for your software development
Have you defined a project life cycle?
Does all staff comply?
Development Group's Characteristics
Are all the staff equally experts?
Is there a mix of newbies and experts?
Do the requirements need to be adjusted? How often?
What is the degree of documentation of user processes?
What time availability does the user have to participate in the development group?
If you have any more question regarding software development, software methodology or software methodology’s adoption, feel free to contact us.