programming_methodologies
programming_methodologies
Methodologies
NEL C. HERNANDO, ME, MBA
Programming methodologies
refer to the strategies, principles, and practices used by
software developers to create efficient, reliable, and
maintainable computer programs or software systems.
These methodologies provide a structured approach to
the entire software development process, from initial
conception to implementation and maintenance
Common Programming Methodologies:
Waterfall Model: A linear and sequential approach
where each phase of the software development life
cycle (SDLC) must be completed before moving on to
the next phase. It includes stages like requirements,
design, implementation, testing, deployment, and
maintenance.
Agile Methodology: A flexible and iterative approach
that emphasizes collaboration, adaptability, and
customer feedback. Agile methodologies (e.g., Scrum,
Kanban) prioritize incremental development, frequent
testing, and continuous improvement.
Scrum: A specific Agile framework that organizes work
into short, time-boxed iterations called sprints. It involves
cross-functional teams working collaboratively on
deliverable features, holding regular meetings (such as
daily stand-ups), and adapting plans based on
feedback.
Extreme Programming (XP): An Agile methodology
focused on improving software quality and
responsiveness to changing requirements. XP practices
include pair programming, continuous integration, test-
driven development (TDD), and frequent small releases.
DevOps: While not a traditional development
methodology, DevOps is a set of practices that
combines software development (Dev) and IT
operations (Ops) to shorten the system development life
cycle and provide continuous delivery of high-quality
software.
Lean Development: Borrowing principles from lean
manufacturing, this methodology aims to eliminate
waste, improve efficiency, and maximize value. It
emphasizes continuous improvement, just-in-time
delivery, and reducing unnecessary processes.
Feature-Driven Development (FDD): Emphasizes building software in
small, manageable features or chunks. It involves specific
development phases, such as developing an overall model,
building feature lists, planning by feature, designing by feature, and
building by feature.
Rapid Application Development (RAD): Focuses on rapid
prototyping and quick feedback from end-users. RAD involves
iterative development cycles and incorporates user
feedback to refine the product rapidly.