Scaling Frameworks, Agile Models, and Your Team
As Agile has become more popular and pervasive in the tech industry, a lot of frameworks for doing Agile have come about - find out which is best for you.
Join the DZone community and get the full member experience.Join For Free
For the past two decades, the Agile methodology has facilitated software delivery. Scaling Agile techniques across departments is challenging. The responsibility of tracking and managing current development, planned development, scheduling, and assigned duties exponentiate for large development systems which involve multiple aligned projects. Several Agile scaling frameworks expedite the leveraging of agile models across departments and throughout organizations.
Scaling generally aligns and synchronizes the collaboration and execution of multiple agile teams to support software and system development. Agile models focus on smaller teams and increments for faster, high-quality production. However, scaling large numbers of small Agile project teams across departments and throughout the organization requires coordination and significantly increases risk. A failed deployment on a department or organizational level has a far greater impact than that of a small team project. Scaling frameworks can flexibly expand from supporting 9 teams to synchronizing complex system interfaces -- from Agile projects to an Agile enterprise.
Teams develop projects. Departments and organizations execute programs. Programs are large units in which several projects combine for a larger product development venture. Although the program has one direction, different objectives, locations, types of interaction, and talent combinations distinguish teams and team functions. Agile Scaling Frameworks provide cross-team coordination for development programs. Following are some favored agile scaling frameworks.
SAFe (Scaled Agile Framework)
The Scaled Agile Framework (SAFe) is a favorite of Industry. SAFe is incremental and iterative, with a focus on coordinated processes. Interactive and knowledge based, SAFe is formatted to leverage agility, research, lean development, and coordination of process. SAFe ultimately aligns and integrates team activities and outcomes in respect to enterprise and stakeholder needs and strategic initiatives.
The fact that SAFe does not specifically focus on any agile model at times causes SAFe templates and overlays to define agile as a structure rather than a process, limiting the framework in aligning production. Complex requirements and instructions can also hamper the compatibility of SAFe with Agile models.
DaD (Disciplined Agile Delivery)
Another well-regarded scaling framework is Disciplined Agile Delivery (DaD). Having a hybrid and directional approach to development allows DaD to productively scale Agile models. Goal-driven and enterprise cognizant, DaD emphasizes process decisions that are incremental and iterative in arriving at conclusions. The framework contributes such solutions as determining the coding language, the application architecture, and selecting the IT platform.
Like SAFe, DaD is not based on Agile methodologies. While strong in life-cycle management, DaD can consequently be somewhat limited in contributing a knowledge base approach to deploying with Agile. DaD also tends to introduce itself into Agile team decision making, helping to determine outcomes dealing with program tools, platforms, schedules, and maintenance formats.
LeSS (Large Scale Scrum)
Constructed more with Agile in mind, Large Scale Scrum (LeSS) and Nexus are two scaling frameworks which have received industry attention. Both are designed for Agile Scrum, with Nexus addressing integration and cross-team dependencies.
LeSS is an organizational design framework used in large scale Scrum development. Within the LeSS Framework for projects involving 10 teams or less, basic roles remain constant. Single-team Sprint meetings are replicated across teams either by integrated online communication or retrospectives from a single team representative. Cross-team levels of development facilitate communication and coordinate efforts, sustain timelines and direction, and promote overall project and organizational improvement.
Projects larger than 10 teams can use the LeSS Framework that includes additional coordinating functions. The role of Project Owner is broken down into Area Product Owner(s), who represent(s) enterprise interests in deployment; an Overall Sprint Review that includes each Area Product; an Overall Sprint Retrospective with reflections on the entire product development program.
LeSS instructions and requirements are easy to understand and solve the problems of coordination among single function teams, unnecessarily complex issues, and inconsistent feedback. The framework thereby transitions the production structure into multi-coordinated development among teams.
Nexus, which is also set upon the Scrum model, provides a type of umbrella over multiple teams, resulting in integrated team functions. Inter-team dependencies and project integration are the focus of Nexus. In addition to scaling, the framework has plan, launch, and software management components.
The objective of Nexus is to integrate increments of development into coordinated completion. The framework accomplishes this purpose through its consistent compatibility with Scrum. One possible detractor from complete compatibility is that the Nexus format can place more weight on dependencies than cross-team functions, interactions, and operations. Nexus is like LeSS in format, with a smaller framework that supports up to nine teams.
LeadingAgile provides enterprise level consulting on scaling agile across departments. The LeadingAgile ‘transformation framework’ evaluates enterprise initiatives and adapts initiatives to predicted outcomes. The process produces an analysis based on either Emerge principles, in which outcomes are discovered per market needs, or Converge principles, which base deployment success levels on requirements and timelines.
LeadingAgile consultants can then contribute guidance on current business drivers, and address the readiness of IT units to create future business environments that meet organizational needs. The consulting framework focuses on aligned objectives, transparency among teams and throughout the program, and meeting business deployment objectives.
Developers have often been immersed in projects that provide no process guidance. The lack of guidance can produce unpredictable outcomes, wasted efforts, and repeated errors, undermining customer satisfaction, degrading developer morale, and augmenting risk.
To alleviate the lack of guidance, all Agile models are designed to follow the same Agile guidance principles:
- Customer satisfaction is the highest priority.
- Self-organizing teams.
- Simplicity of process.
- Periodic analysis and adjustment of processes.
- Sustainable development at a constant pace.
- Continuous focus on excellence and design.
- Early and continuous software delivery.
- Mobilized change and innovation directed towards customer advantage.
- Frequent delivery of working software.
- Active and frequent collaboration between enterprise and developers.
- Support and motivation among team members.
- In-person communication.
- Working software as the primary measure of progress.
To break the dependency on fixed requirements in favor of processes that adapt to change, the Agile approach to software development and release uses Adaptive Planning and Evolutionary Design. While different agile models have different processes for product development and business imperatives, all models regularly use the adaptive planning approach of re-planning and re-adapting to fluctuating needs and requirements. Evolutionary design uses lessons learned from previous releases towards developmental advances in design, coding, innovation, refactoring, and continuous integration. Agile models are distinct facets of the Agile Methodology. Different agile models have distinct impacts on product development and business imperatives.
As an Agile development process model, Scrum is both iterative and incremental. Scrum processes are based on the concept of change existing throughout the project life cycle. Consequently, the Scrum design is based on adding energy, clarity, transparency, and focus to software development.
The Scrum architecture structures work in cycles called Sprints, or development iterations of two to four weeks. Each sprint is extracted from priority enterprise, stakeholder, and customer requirements called User Stories, and is a potentially shippable product. Within thirty days Scrum teams can be building executable software functionalities.
XP (Extreme Programming)
Through communications, simplicity, and feedback, the XP model has become a widely adopted Agile model. XP introduces the twelve principles of the Agile Manifesto with which developers can respond to fluctuating requirements and technologies. XP emphasizes enterprise user stories which delineate business requirements for each release, with an approach that requires developers to write the tests for small releases before writing the actual code. A strong emphasis on collaborative development among team members, teams, and customers is another XP attribute.
Planning and communication phases include task specification, proposals, as well as feasibility and risk assessments.
The next step, analysis, begins with customer approval of proposals. Software quality is then approved and information gathered for process and requirements analysis to produce the software requirement specification (SRS), the analysis phase outcome.
XP next proceeds to the design and development phase, which verifies the two aspects of software development by comparison with the determined prototype.
Test cases are created at the beginning of the test and deployment phase. Test modules are therefore in sync with development increments. The integration tests that follow the development of test cases validate coordination among test modules, with a subsequent system test conducted to verify interfaces and system performance. The acceptance test ties up testing, with the deployment activities of installation, training, and security to finalize the release.
Organizations use Kanban to manage continuous production and delivery processes that place less burden on development teams and assist teams in more efficient development. The three basic principles of Kanban are:
- Visualize the daily workflow.
- Limit the amount of work-in-progress (WIP).
- Enhance the backlog flow.
Kanban encourages continuous collaboration and promotes ongoing active team learning to produce the best possible workflow.
The Crystal model is a family of agile methodologies that comprise a very adaptable approach to Agile development. Adopting unique characteristics that support divergent factors in Agile development. Team size, project priorities, cruciality, tailor projects to accommodate the distinct policies, practices, processes, needs, specifications, and requirements of the project. Certain defined principles of Crystal are:
- Frequent reflection
As do other Agile models, Crystal promotes:
- Early software delivery.
- Frequent software delivery.
- Significant user involvement.
Crystal also encourages removal of bureaucratic overviews or distractions.
ASD (Adaptive Software Development)
The ASD software development process emphasizes continuously adapting to the current task as the normal state of production.
Customer involvement from project inception through acceptance test driven development better ensures software quality and a customer buy-in to the product.
DSDM (Dynamic Software Development Method)
DSDM was developed to fill in the RAD method of considering the entire software development cycle for successful deployment. The DSDM model adheres to the principles of:
- Collaboration with users.
- Iterative and incremental development.
- Increased frequency in delivery.
- Testing each incremental unit.
- Fulfillment of requirements as the determinant for product delivery.
Dynamic consideration of the development cycle characterizes DSDM as efficiently impactive in respect to mitigating risk and fulfilling enterprise strategic development goals.
FDD (Feature Driven Development)
FDD employs high-level concepts that allow for enterprise project management while also affording the use of more specific lower-level models. FDD focuses on estimates and schedules that report on project status, to determine if the project status is in keeping with the project plan.
Lean Thinking is an approach to system optimization that focuses on reduced waste and improved workflow. With a noteworthy history in manufacturing, Lean has also been applied to Agile as a process model with principles designed to:
- Eliminate Waste.
- Build in Quality.
- Create Knowledge.
- Delay Commitment.
- Quickly Deliver.
- Respect People.
- Optimize the Whole.
Rather than software delivery objectives, Lean principles are guides to decision making and techniques for overall improvement. The principle framework is therefore used with other more detailed models as a value target for accomplishment.
Matching Agile Scaling Frameworks with Agile Models
The agile scaling framework you use depends on the Agile model you employ, the composite project size, and the application(s) to be delivered. Different Agile models are effective within certain industries or for certain types of production, with implementation sometimes limited to available resources.
Scrum specifically delves into the product life cycle, making it a possible choice for ongoing projects in which LeSS or Nexus could become the scaling framework.
Kanban emphasizes continuous production and delivery, possibly working well with a short software life cycle and a probable SAFe scaling framework.
XP emphasizes software quality and customer approval, making it a prime development process for general consumer software, possibly using DaD as a scaling framework.
With its encouragement of an adaptable approach to development, Crystal may work well for software updates, versioning, and area products, with the possibility of LeadingAgile as a consulting framework.
The DSDM emphasis on mitigating risk makes it the perfect model for high-risk projects in which it could probably best use a LeSS scaling framework.
ASD and FDD could also use the LeadingAgile consulting framework. ASD is a general principle rather than a structured format that may best assist IoT development, while the dual enterprise/production level of the FDD model could be useful in departmental or organizational programs.
Overall, team production is maximized and extended using agile scaling frameworks and agile test management to coordinate and augment production of the full composite project, or the organizational programs in which agile teams function.
Published at DZone with permission of Francis Adanza. See the original article here.
Opinions expressed by DZone contributors are their own.