Introduction to agile software development
Atlassian Roadshow - DevOps Session. Introduction to Reliability Excellence. Maintenance Management Certification. Stakeholder Risk Management. Institute of Asset Management Certificate Workshop. Related Books Free with a 30 day trial from Scribd. Related Audiobooks Free with a 30 day trial from Scribd.
Elizabeth Howell. Introduction to Agile Software Development 1. We need to be Agile. Why are we not doing Agile? Through this work we have come to value: 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.
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.
For example, in first iteration, you might build minimum features required for you product, such as Account Logon functionality. Once that feature is successfully tested, you proceed with additional options such as Forgot Password functionality. With each iteration, you are adding incrementally different features and robustness to your product. Another characteristic of Agile Project Management, is that you identify issues early in development process, thanks to the testing after each iteration.
Additionally, at each iteration you are also getting the stakeholders feedback, which you incorporate into next iteration. This makes handling changes a lot easier. During the software developers meeting in a golden rule for Agile Software Development was published. It contains four main concepts and twelve principles. Let us view some of them briefly. This Software Engineering Centric Model focuses on ongoing rapid software delivery through quick short releases, with one-week iteration.
Each iteration results a production ready code. They do not prescribe specific development method but instead provide streamlining for development process. The guidelines are driven by 7 principles:.
It derives from Lean Principles and Tools. Its principles include Visualizing Workflow, Limiting work in progress, focusing on the workflow and continuous improvement. Named after the crystals of different hardness, they represent development methods created to suit different types of projects depending on their size, complexity and criticality. Driven from a client-valued functionality in feature perspective, its main purpose is to deliver tangible, working software repeatedly in a timely manner.
DSDM is vendor-independent, covers the entire life-cycle of a project and provides best practice guidance for on-time, in-budget delivery of projects, with proven scalability to address projects of all sizes and for any business sector. MDD leverages graphical models and pre-built application components so that users can visually construct complex applications.
DAD is a people-first, learning-oriented hybrid agile approach. For example, in the aerospace and defense sectors, it could be 20 or more years before a complex system was ready for deployment. This development lag frustrated the software development community. In response, a group of 17 software thought leaders, led by aerospace engineer John Kern, began meeting to discuss ways to create software more efficiently and quickly, without the overhead of the waterfall development method which was widely used at that time.
Unlike Agile, waterfall development required that teams completed one step fully before moving to the next stage and there was no going back to a completed stage. Like in nature, the path to Agile contained evolutionary methodologies that also included Rapid Application Development RAD and the Spiral development method.
While RAD focused on reducing the preparation stages to quickly begin development, spiral development was an iterative process that started small and then gradually added more features and functions over time. These process iterations then led to the Scrum development methodology around Scrum development was based on the premise that smaller self-organized teams developed code based on objectives rather than specific coding assignments.
In Scrum development, the path to working software was also time-boxed. All of this eventually led to Agile development as we know it today. In the team of 17 software visionaries launched the Agile Manifesto which identified 12 core principles of the present-day Agile movement. As one might expect, evolution is a continuous process and even today new technologies and processes are evolving to further expedite the creation of software products.
For now, Agile has proven to be a successful and dominant development methodology characterized by rapidly developed, high-quality software constructed by a highly responsive and iterative process. Agile is a framework and is implemented through proven methods and practices. However, there is flexibility in the approach used. Agile teams can select which methods and practices best support their environments and the development project in progress.
For example, large internal teams may invest more mindshare in the review and retrospective part of the process. External Agile teams can make the process easy by using tools that help clients generate user stories and feature requirements. The Agile process is iterative and starts by building the most valuable functionality required in a piece of software. With user and stakeholder feedback during the development cycle, features can be incrementally added and fine-tuned until the product owner feels it is ready to launch.
The result is a product that better aligns user expectations and business objectives. The Agile process creates time boundaries for all key events, including development. Typically, a project manager known as the Scrum Master will set key boundaries at the start of a project. This includes development cycles, meeting lengths, and other key interactions.
Development sprints are normally 2 weeks long and meetings have defined agendas and lengths to accomplish specific objectives. With a time boxed approach progress can more accurately be measured and final delivery of a product can more accurately be projected and managed.
MMFs minimum marketable features are the most important, prioritized features of an application. If these features stood alone, without any other features, you would have a completely usable piece of software. The Agile process is a collaborative process. Agile supports frequent collaboration between the product owner, scrum master, development team, and end users and supports both verbal and written documentation in the project management system Jira is a great tool for this.
This collaboration and communication is one of the most important components for receiving continuous feedback from end users and project stakeholders. Unlike other software processes such as the Waterfall development methodology mentioned above , Agile is open to change throughout all stages of development. Instead of rewriting a requirements document or processing a change order to incorporate a change, an iterative user story is simply added to the product backlog and brought into the next development cycle sprint.
This creates a simple, responsive, and cost-effective way to be flexible and react quickly to customer needs. Agile software development is a visual process. This helps communication among all the key roles in the project.
This is sometimes done using Post-it notes on large planning walls and then input into an Agile project management tool. Some teams feel more comfortable putting information directly into the Agile process management tool.
Either way it is easy to review the development process, see current project status, and understand the next stages of the development project. With measurable objectives project plans and development expectations can be frequently evaluated to help ensure timely completion of the development project.
The Agile process has multiple defined project roles that help to ensure efficient execution and comprehensive management of a development project:. The product owner controls the direction of the product. Their main responsibilities include:. The Scrum Master is the project manager in an Agile process. It describes the approach and interaction of a tightly connected cross-functional team.
The Scrum Master coordinates communication between the development team, product owner, and other stakeholders. The team members are the developers and designers who will be working on the project. Their role in the project is to:.
Stakeholders are those who have an interest in the product but are not involved in the day-to-day process. They typically help evolve the product roadmap and vision with the product owner, providing product expertise or market insight. Their main roles are:. Users help answer the most important question: are we building the right product? Their main roles are to:. At AndPlus, we believe there are 6 important steps to executing an effective Agile software development project.
These include:. These steps and their supporting activities described in more detail below:. A strong project kickoff is an important first step to Agile software development projects. A good kickoff has two components. The first is Agile training.
0コメント