We were thrilled to do a Q & A with App Developer Magazine on Agile Scrum Methodology. Check out the piece below.
What is Agile Development Methodology?
Mobomo: The Agile Methodology is an alternative approach to project management that places emphasis on collaboration, iterative development and evolving requirements. It’s governing principles, commonly referred to as the Agile Manifesto, place focus on team interaction, customer involvement and adaptability to develop high quality products.
Who uses Agile scrum development?
Mobomo: While Agile is most commonly associated with software development, it’s leveraged across many industries in both the private sector and government and is not limited to just software. From General Motors and Spotify to NASA and the Department of Homeland Security, Agile can be applied to solve some of business’ most challenging needs.
What is the process of Agile scrum development?
Mobomo: Scrum is subset of Agile development that organizes a project in a consistent process that is repeatable each iteration of the project lifecycle. The most widely used Agile practice, Scrum is ideal for managing complex software and product development as it enables organizations to more easily adapt to rapidly-changing requirements. Scrum also provides a better framework for estimating tasks and measuring productivity, thus allowing for managing the project schedule more effectively.
What are the key positions and what are they responsible for during process? (Scrum master, product owner etc.)
Mobomo: Within the Agile Scrum framework, the key positions and their role within the project are as follows:
Product Owner: The Product Owner is the main stakeholder in an Agile Scrum project who is committed to ensuring the vision of the project is reflected in the final product delivered without impeding upon the Agile Scrum process. The Product Owner assists in transcribing the product vision into well-defined development user stories and prioritizing the user stories to be worked on by the Development Team.
Scrum Master: The Scrum Master is the facilitator for an Agile Scrum Team, managing the process by which information is exchanged amongst members of the team. The primary responsibilities of the Scrum Master are to help the team determine what can be achieved during each iteration cycle, manage the daily scrum meetings, keep the team focused by removing obstacles to their progress and protecting the team from outside distractions.
Development Team: The Development Team, or Scrum Team, is a collection of individuals responsible for all work delivered to the customer. The team works together each iteration, or sprint, to incrementally deliver working components of the product.
How do federal projects benefits from using Agile scrum development?
Mobomo: Within the Federal Government, implementing the Agile Scrum methodology for software development enables the government to solicit services using more broad requirements about the tools and technologies involved the development of the desired product as opposed to specific product requirements. This allows the Development Team to evaluate the business requirements of the product as part of the contract and identify the best technical solution to meet business goals, leveraging both licensed and open-source software. Agile Scrum also provides a more structured framework that supports efficient estimation of the tasks required to deliver the product used to effectively develop an accurate project schedule.
Lastly, the incremental development and delivery of the product to key stakeholders ensures that the end product meets or exceeds the expectations of the government customer. Ultimately, the key benefit is that the government is able to get a better software product through iterative development as opposed to a software product that merely complies to functional requirements that were not completely understood at the time of the RFP.
How does this methodology help to save the government money and time?
Mobomo: The Agile Scrum methodology directly benefits Federal customers both financially and with respect to project schedule in that the project team and the customer work together on estimating the level of effort required for delivery of the project. As a team, they and are able to shape the project requirements and technical approach to fit within the constraints of the contract’s period of performance and budget. The iterative development showing product progress every week provides a high level of transparency between the project team and the customer mitigates the risk of the project extending beyond the scope of the engagement and ensures the project team isn’t developing features that do not provide value to the product.
What type of projects use the Agile Scrum Methodology?
Mobomo: The Agile Scrum methodology can be applied to any project where the development of the final product can be managed through incremental development and delivery of the product to the customer. Whether it’s mobile applications, websites, microwaves, or automobiles, the principles of Agile Scrum can be applied to achieve positive results. The most common application of the Agile Scrum methodology is for the development of highly complex software products that require both a strong process-oriented management structure and flexibility of the development team to respond to fast changing requirements.
What are some tips to start using agile scrum development?
Mobomo: The best thing an organization can do to start adopting Agile Scrum for the development of their products is to have an open dialogue with their team to share the principles of the framework and illustrates the benefits of implementing Scrum. Without buy-in from the team, it would be extremely difficult to institute such changes effectively. Next, avoid trying to incorporate all of the Agile Scrum practices overnight. Agile Scrum is a framework through which a project is managed following the core principles of Agile. It is by no means a turnkey solution that works the same for every organization, rather a set of guidelines and tools to be leveraged for impactful results. Lastly, engage an individual or organization experienced in leading Agile Scrum projects on how they leverage Scrum for their needs and gain as much knowledge as you can from them.
In order to run a project using agile scrum methodology, do you need to be certified, if so what is the process?
Mobomo: It’s not necessary for every project manager in your organization to be certified Agile Scrum practitioners, nor is it necessary for anyone within the organization to be certified. However, it’s highly beneficial to have a few members of your team familiar with the principles of Agile and specifically Scrum. There is a multitude of open source documentation and training materials available to the public. For certification, organizations such as Scrum Alliance manage online examinations and membership. There are also a number of organizations that offer formal training sessions with high success rates for individuals that complete the course and the certification exam.
What advantages does your project receive with agile scrum development? What are the disadvantages?
Mobomo: The advantages of your project adopting Agile Scrum to govern the development of your products include instituting a repeatable process that seeks to continually improve each iteration of a project and beyond to future projects, promote self-organizing teams who are able to delegate tasks amongst themselves in a way that conforms to their style so long as it doesn’t encroach upon the team’s ability to deliver each iteration, and maintains transparency between the project team and the customer. Agile Scrum also mitigates the risk of scope creep and delays to the project schedule by identifying obstacles proactively and remediating them accordingly. The disadvantages of Agile Scrum are that it requires a certain degree of maturity within the organization to empower its development teams to be self-organizing, which has the potential to negatively impact a project if the team isn’t closely monitored by an experienced Scrum Master. Additionally, an Agile Scrum project requires having a healthy backlog of tasks for the Development Team to ensure no lapses in productivity occur, which is dependent upon the Product Owner having a clear vision of the product and his/her ability to effectively communicate and prioritize the tasks accordingly.
How do you organize your tasks and then prioritize within the process?
Mobomo: Within Agile Scrum, the Product Owner works with the Development Team to translate the goals and needs of the product as identified by the key customer stakeholders into development user stories. The user stories are then organized within the product backlog based on priority and underlying dependencies to identify the order in which tasks need to be worked on. After the priorities are established, the Scrum Team estimates the level of effort required to complete the individual user stories and begin organizing them into iterative sprints based on the amount of time the team has available to work in each sprint.
What happens if an unexpected task occurs, how do you organize that task within the current sprint?
Mobomo: In the event that an unexpected task is identified by either the Development Team or the Product Owner during an active sprint, the task is communicated to the entire team who then conduct an assessment of the implications, priority and level of effort involved for the task. If the task warrants being addressed immediately within the sprint, the Product Owner will determine which task(s) that were originally scoped for the sprint will be removed to accommodate the new task being included. If the task does not warrant immediate attention, it is moved to the product backlog for prioritization and inclusion in a subsequent sprint.