Agile in a Government Environment
About This Course
The Federal Government has mandated that software procurement and development efforts must drastically increase their effectiveness and efficiency. To achieve this mandate, many governmental agencies and contractors are beginning to apply an Agile approach to the development and delivery of their software and services. In order to effectively apply Agile in the government space, you must understand specifically how to navigate the challenges of process requirements found in government. This class builds the bridge between what Agile is and how it can be used effectively in a government environment. This is your foundational Government Agile course.
This workshop will give you the foundation of knowledge and experience you need in order to be successful on your next government project.
Define the principles and highlight the advantages, and disadvantages of Agile development and how these map to federal guidelines for IT procurement, development, and delivery. Get first-hand experience by organizing and participating in an Agile team. Put the concepts you learn to practice instantly in the classroom project. Understand and learn how to take advantage of the opportunities for Agile, while applying them within current government project process requirements. Finally, get a clear understanding of the collaboration and communication needed between customer and developers for Agile to succeed.
- Self-organized teams, even in a highly matrixed agency or organization
Simulate a project introduction, create a vision and set of light requirements
How to plan your product’s release within the mandated 6 month timeframe
How to communicate project status utilizing both Agile and EVM indicators for progress
Understanding customers and how to collaborate with them to create User Stories
Relative estimating – focus on becoming more accurate rather than precise
Defining the distinction between capabilities and requirements and when to document each
Identify Agile best practices as they relate to challenges within the federal environment
This course is designed for anyone who is considering the use of an Agile methodology for software development, including:
- Project Managers
- IT Manager/Directors
- Software Engineers
- Software Architects
- Customers (aka: Application and Business Owners)
I. Agile in the Government Overview
In this section we will explore the motivating factors for government's desire to adopting more efficient Agile practices. Further we will examine the various Agile methods and the principles and practices they embrace and seek to provide you the tools and perspective so that you determine which of these is most appropriate for your government project or program. Agile success with real-world examples across many government agencies will be shared to highlight the benefits that Agile can bring in this environment. Finally, we will explore the power behind Agile teams and how they differ from traditional project teams.
- Why Agile? Why now?
- The Government’s mandate for improved procurement and delivery efficiency
- Agile Methods. The principles and practices of each and which are most appropriate for government programs
- Agile Benefits. What to expect by applying this approach
- Agile Teams. How to stand-up your first Agile team
Forming the Agile Team – in this exercise we will explore the unique factors of Agile teams and recognize the key factors for success. Participants will experience what it takes to ensure immediate and long-term success for project teams, what to focus on to build better team performance, and how an effective Agile team produces improved bottom line results.
II. Agile Basics
In this section we will establish a foundation of the basic artifacts and forums utilized by Agile teams. Agile terminology will be reviewed in relation to government project terminology to understand the connection and mapping between them.
- User Roles and Personas. Understanding the product’s customer to ensure that what is delivered truly matches the needs and wants of the end-user community
- User Stories. How Agile requirements are captured, documented, and communicated
- Acceptance Criteria. Ensuring better software delivery is dependent upon understanding what capabilities need to be produced in order to be accepted by the user
- Prioritization techniques. Improved delivery efficiency is highly contingent upon the development team always working on the items that will drive the most amount of delivery value
- Relative Estimating. Effectively communicating delivery dates and budget burndown requires the Agile team to explore new approaches for estimating the size of their work
- Iterative approach. Delivering small pieces of our product allows for continuous feedback as well as providing a much better mechanism for determining progress as measured by physical percentage of product complete
- Aligning the government project language to the unique language of Agile and touch upon a contemporary approach to the contract language of government projects. We will stress that Agile is much more than a new set of terms, it is a base set of principles that should be used to drive improved practices
Utilizing the information presented in this chapter, participants will practice writing user stories, prioritizing their backlog, and estimating the size of each of their requirements. Participants will be provided a federal case study to base their exercises on.
III. Agile Government Process Framework
In this section, we will review the complete process framework Agile teams should utilize to achieve success for their government projects. For many, Agile merely means Iterations and Daily Scrum, but that will not suffice! Real-world government examples provided by the instructor will give you context for why each level of planning and execution is important. We will discuss and practice the forums and artifacts necessary for Agile success.
- Vision. Understanding the high-level vision of a project will ensure that even as scope may change, the core capabilities of the product will be maintained
- Roadmap. Chart the longer-term view of your project through the use of a product roadmap
- Release. Establishing release cycles allows the team to communicate delivery dates and maintain adherence to the constraint that is most important for the project and is a key component of EVM planning
- Iteration/Sprint. The short term planning for just the next 2-4 weeks
- Daily. The daily forum used to ensure that the team is on schedule and that any obstacles or impediments are addressed as early as possible
- Bringing it all together. Seeing how each of the five levels of Agile planning working together and help ensure delivery on-time and on-budget and how these map to government process requirements
Building cadence - As with any process, the process should not be a distraction, instead it should support the team's ability to efficiently deliver their product. In order to achieve that desired state, cadence, or a project rhythm, is needed. In order to build this very important aspect of an Agile delivery, the team members must know what to expect repeatedly and consistently. This exercise will help reinforce the need for the power that comes with cadence.
In order to successfully implement an Agile approach within the government environment, teams must understand how to communicate effectively their progress, documented requirements and capabilities, and ensuring the highest levels of collaboration amongst the team and with the customer.
- Transparency. This principle of clear communication is essential in building a solid partnership with our customers. Without transparency in our communication, trust is rarely achieved and the product tends to suffer as a result
- Main path communication. The most efficient means of communication is to find the ‘main path’ and direct your communicate there
- Creating Collaboration. Exploring the components of team building, we will examine the necessity of collaboration within the team and how to extend this effort to include your federal customer
- Beyond the team. Communicating status and EVM milestones will be an important component of Agile success for your team’s federal project
V. Agile Approach
In this section we will communicate clearly the path taken by many federal teams to achieve success as well as what pitfalls these federal Agile teams should avoid.
- What to watch for – barriers to success. The federal environment presents many challenges for today’s development and delivery teams. The best way to avoid these pitfalls is to know about them ahead of time and build a risk mitigation strategy that will allow you to prevent these common problems from derailing your Agile efforts
- Agile best practices in the government environment. The unique nature of the federal environment requires unique practices when applying an Agile approach. Learn what the most successful Agile teams do so that you can jumpstart your first Agile project
- Agile Tools. Support the team’s best efforts by utilizing tools that will make controlling your project easier
- Dealing with common Agile myths including:
- MYTH: Agile is undisciplined, comprised of ‘cowboy coders’
- MYTH: Agile is nothing but ‘galloping scope creep’
- MYTH: Agile does not respect documentation requirements of my industry or organization
- MYTH: My job is going to be eliminated
- MYTH: Agile does not scale for larger projects
- MYTH: Agile sounds great, but it can’t work for my company, we are unique
- MYTH: My team would never be able to self-organize, they are too disorganized
- Resources or management with no desire to expose ‘bad wiring’ and/or fix the broken processes
- The WIIFM Syndrome (what’s in it for me?) and how to respond
- Next steps. Outline steps you should take to begin to put into practice the information provided in this foundational training session
Define your next steps! Maximize the value of the training class by building a clear plan for how to take the very important first steps in your Agile adoption plan. Teams and individuals will collaborate with each other and with the instructor to determine what you can do to build upon the foundation established during the course.