Monday, January 12, 2015

2015 Terminology - Agile SDLC

Agile Software Development gets popular in the recent decade. It is similar to Iterative Model, even better, it is efficient, is quality-focus, and has more face-to-face communication.

The person who participate in the Agile Development project and take the lead role is called Scrum Master.

A typical small agile team involves the following roles but not limited to:
  • Team Member - is the developer or programmer who responsible to code, test, and deliver the system to product environment.
  • Product Owner - is the subject matter expert to prioritize project items, making decision as well as providing information in a timely manner. This role can be Technical Expert or Domain Expert. In some project, Architecture Owner might be in needed.
  • Stakeholder - system users (and/or manager) from business team, system support staff, programmer of upstream or downstream system, and the "gold owner" who fund the project.
Similar to Iterative development model, most Agile methods break down tasks so that they can be implemented incrementally. The task are completed in a short timeframe, also known as Timeboxes, that usually in one to four weeks.

Agile encourage developer to report status and discuss issue daily, usually through a "stand-up" meeting. The purpose of standing up is to keep the meeting short and precise. Issue must be tackled or by follow up action. It is one of the characteristics of Agile development.

One type of Agile methods is called eXtreme Programming (XP). It pair up two programmers to code together, one is doing the typing, while the other is watching to spot check. The goal is to create high quality of code. It is arguably that if one programmer become lazy while the other is doing all the work.

Advantages:
  • Minimize the effort in planning and documentation
  • Minimize the defect in coding
  • Increase the collaboration between domain expert/user with the developers
Disadvantages:
  • The efficiency decline while the agile method apply to remote team, that is, lacking of face-to-face communication.
  • The flexibility is low to adapt accidents happen such as programmer become sick but no replacement is available. 

No comments:

Post a Comment