AGILE Software Development Surface Knowledge : The Theory & Story.
Table of Contents
- Table of Contents
- Introduction
- Introduction : Agile
- Scrum in Nutshell
- Scrum 101
- TL;DR
Introduction
I recently and still currently working on team project that used Agile Software Development method. As any other people i don’t really understand how agile work at first so this experience has told me more than what i heard in class. And that’s why i will share things about agile i think you (beginner) should know.
Introduction : Agile
practices involve discovering requirements and developing solutions through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s) It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages flexible responses to change
Agile is a fast development proccess. it makes it possible for developer to deliver product faster. Scrum is one of the agile methods child. and this article will later talk more about SCRUM.
Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more. it means that in agile the individual working in it is more important then the tools. That, we strive for the software to be working more than comprehensive documentation. That, customer collaborate in the development and developer not just following the contract negotiation. That, agile is open to change.
Lets take an example form my own experience. “Working Software”. In my project which apply scrum we do sprint review every around two weeks. in this sprint review we present the product we have worked the last two weeks. So in that two weeks we usually work a group of part of the whole project. so that we can showcase it. so the “software” can “work” in the sprint review even if only part of the software.
Agile principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Scrum in Nutshell
Agile is one the most popular Software Development Method (read : Software Development Process on Wiki). Agile is iterative approach to project management and product development that helps teams deliver their value faster to the customer. Scrum is a framework utilizing an agile mindset for developing, delivering, and sustaining complex products, with an initial emphasis on software development.
Scrum 101
Role
- Stake Holder : person external to the scrum team. with a specific interest in and knowledge of a product that is required for incremental discovery.
- Product Owner : the intermediary between the stakeholder/client and the developer. stand as proxy client. product owner define what needed to be done. defining the requirement and defining the process to reach that to the product backlog
- Scrum Master : responsible to ensure the scrum process run properly. and to also monitor the scrum (sprint, developer, backlog/task, etc)
- Developer : people who create the product. in software project usually the programmer who will write the code. implementing the small task broken down by the product owner
Term
- Project Management Tools : Software to help project and resource management. mainly used to monitor the backlog/task. i.e. : JIRA
- Backlog/task : All the steps needed to finish the product is broken down to a small part. this small part is called backlog/task.
- Sprint : is the repeatable time box/period which a “Done” product (part of the main product) is created.
- Product Backlog/task : the backlog of the whole product. it also have the order which needed to be done in which sprint
- Sprint Backlog/task : the backlog of a specific sprint
- Sprint Planning : Developer agreeing which backlog to work on this sprint iteration. Executed before or as soon as the sprint period start
- Sprint Review + Retro : reviewing the work + the developer
- Standup Meeting/Daily Scrum : daily meeting to report update. around 1–2 minute per person. around 10–30 minute per team per day.
TL;DR
Scrum is agile method. an iterative process to deliver product faster