The branch of computer science that deals with the design, development, testing, deployment, and maintenance of software applications
Main Steps
- design
- decide what you want to develop
- development
- translate the design into code
- Testing
- find all bugs and fix them, efficiently
- Jira, Trello, asana
- Issue
- any tasks, problem, request, or improvement logged in a project
- types: bugs, feature requests, user requests, documentation errors, etc
- status: Open, In-progress, Resolved, Closed
- deployment
- make the software available to users in all environments
- maintenance
Other questions
- How can the entire process be more smooth and bug-free?
- How can we create a good software in this limited amount of time/resources?
Methods
- Waterfall (폭포수)
- finish 1st process then move on to the next
- problem
- Continuous changes without proper control can lead to scope creep, making it hard to meet deadlines or budgets
- difficult to scale
- good for simple projects
- Agile
- focused on iterative development, collaboration, and flexibility
- Instead of trying to build the entire system in one go (like in the traditional Waterfall model), Agile breaks the project into small, manageable units called iterations or sprints (typically 1–4 weeks long)
- more efficient but also more work to do
- Can even combine these two