Since the Agile Manifesto was first conceived in a ski lodge at Snowbird resort in Utah, development teams have been adopting and tweaking the approach to suit their needs. They’ve also debated if it’s truly the best solution, which raises an important question: Considering the concept of software as a layered technology, what role can Agile play? Is it even congruent with the layered tech principle? If so, how and where does it intersect? Read on for a refresher on the Agile approach and how it can coexist with the principle of software as a layered technology.
Want More Tech News? Subscribe to ComputingEdge Newsletter Today!
A Quick Refresher: What Is Agile?
Agile refers to a methodology — not a technology — for the continuous delivery of valuable software. The approach was conceived to solve several core problems facing developers. For example, how can you maintain a consistent development schedule if clients or decision-makers are constantly requesting changes? Additionally, how can you ensure a solution that meets the needs of all stakeholders, including security teams, the C-suite, user interface (UI), and user experience (UX) people and end-users?
Agile solves these problems in a few different ways, but principally, it incorporates the following concepts:
- Produce many working iterations of a software solution quickly
- Involve a wide range of stakeholders at all phases of the development process
By producing many functional iterations, you get a product that can be tested, examined, and adjusted on an ongoing basis, as opposed to a single, culminating product that everyone hopes is just right.
With many stakeholders involved, you can incorporate their input at various phases, ensuring the end result meets their needs. This is more efficient than creating an application and hoping it meets the needs of stakeholders, only to find out you have to redesign it from the ground up because one or more critical requirements were overlooked.
How Does Agile Fit Into Software as a Layered Technology?
Looking at software as layered tech involves segmenting the development approach according to four elements:
- A focus on quality
- Process
- Method
- Tools
For many projects, Agile can fit very neatly into the Process category. This is because the process breaks down into four elements, all of which are included within the Agile framework:
- Communication
- Planning
- Modeling
- Construction
- Deployment
How Do You Incorporate Agile Into the Process Category?
The most straightforward way to use Agile in the framework of software as a layered solution is to simply insert it into the Process category, using it to supplant other process methodologies. In other words, you make your Process Agile.
This would involve using the principles of Agile to guide your communication, planning, modeling, construction, and deployment of your product.
Whose Job Is It to Make Agile Work in a Layered Framework?
To make sure your Process is Agile, it’s best to enlist the leadership of the Scrum Master. While Agile is a high-level principle, Scrum is the framework used to actually produce solutions. Within the Agile methodology, the job of your Scrum Master fits perfectly within the five elements of Process, specifically the Scrum Master:
- Designs communication protocols
- Sets up the framework for planning iterations and sprints
- Arranges who and which technologies are involved in modeling the solution
- Guides individual players and teams through the construction of the software
- Designs a deployment and maintenance strategy
In this way, incorporating Agile into the layered approach to development is a matter of a relatively straightforward plug-and-play move: Your Process becomes Agile. To stay abreast of the latest developments in the world of software design and implementation, subscribe to the IEEE Computer Society’s newsletter today.