The document discusses agile engineering and federated application lifecycle management (ALM). It defines agile practices like Scrum, Lean, XP and Kanban. It also discusses challenges with agility like testing overhead and keeping up with emerging technologies. Federated ALM is defined as integrating metadata, workflows and processes across development stages with customizable application development and integration flows.
Agile is based on a collection of practices that have been found to work, some of them very old.
Automation allows fewer people to do more work, but that doesn’t necessarily mean more product, it may simply mean higher quality product.
No, no they don’t. Quite the contrary actually.
Continuous integration is the goal because it is the ultimate enabler for successful Agility. Without continuous or at least frequent integration including automated build, and automated testing for at least Integration and Unit tests an agile transformation will fail to provide the long term benefits organizations need.
I tried to count the number of different tools used for software development, my line count from cutting and pasting them out of wikipedia hit 2694 before I gave up. Software these days is similar in a great many ways to the Space Race, or Arms Races of the past.
Devops is a reaction to the frequent and continuous deployment that Agile teams work towards (and are achieving), and why this is a problem using anecdotes about product increment deliveries.
Servers lurking in basements running unauthorized software?
IT organizations are rapidly moving an end-to-end IT process that is collaborative, agile, distributed and in the cloud. However the legacy tools most companies are using have the following issues:
Limited Business Agility - The legacy tools are built around LAN based SCM tools that simply don’t work well in fast changing application cycles desired by more modern agile working teams. This is one of the reasons we have seen the market leading adoption of Subversion which was built for distributed teams and agile development and the increasing reduction of Rational Clear Case usage. In addition, the SDLC tools were optimized for waterfall development. But from a traceability perspective, even with solid requirements and structured waterfall practices, it’s difficult to trace these requirements accurately through the ALM lifecycle because within a project, team members work in different tools as a function of their task – most times these tools are silo’d
Lack of Enterprise Scalability and Visibility - Processes, tools, and data are often incompatible with other project teams, making visibility and sharing even more difficult. Distributed teams are disconnected and the ability to collaborate and re-use is difficult, at best. Without a scalable connected platform, clients and business users are left on the outside of the development process, reducing the odds that whatever is ultimately deployed is correct – which of course leads to excess costs, waste, overruns, and customer satisfaction issues.
Difficult to Modernize – IT organizations struggle with the need to reduce maintenance costs and allocate these resources to client focused innovation and higher margins. As legacy tools lack centralization, this has led to application sprawl with one-offs, redundant and aged apps, and an increasing year over year cost of maintenance and support.
To put it simple, scaling Agility is hopeless without the right infrastructure. Let’s have a quick look, why this is the case.
It’s easy to get lost in the details, and loose oversights. That applies certainly to senior management, as they lack insights into project status, and into risk factors. That can lead to costly surprises. But also business product managers and chief architects lack vital visibility, across interdependent projects. For example, often they cannot answer even basic questions like: “In which release will defect ABC be fixed?” or “How many user stories have we delivered in the current build, and how many source code files did we touch?”
Security is another key issues, especially as you work across organizational boundaries, or have to deal with increasingly fickly workforce. There is the risk of giving too much permissions and access to code base and documentations, resulting in overwhelmed developers or (at worst) loss of IP and potentially even legal compliance violations. But there also is risk of providing too little access too late, frustrating staff and impeding their ability to deliver.
Ineffective collaboration… While technology can help, this continuous to be especially the case, if tools don’t work across the firewall divide, or are simply not scalable from a performance and throughput perspective.
Unaware how code changes affect production. Early and continuous delivery of valuable software is the #1 principle behind the Agile Manifesto. That’s why Agile practices demand looking beyond code, to build and test. Continuous integration (CI) and test-driven development are accepted as critical elements to accelerate the software delivery process. However, exclusive focus on automating the build and test process in not enough. Without the right visibility, development teams cannot deal timely with defects, and don’t understand how code affects production, resulting in technical debt.
Finally, uncontrolled high cost of development It infrastructure management by cobbling together an arsenal of incompatible products and tools.
To put it simple, scaling Agility is hopeless without the right infrastructure. Let’s have a quick look, why this is the case.
It’s easy to get lost in the details, and loose oversights. That applies certainly to senior management, as they lack insights into project status, and into risk factors. That can lead to costly surprises. But also business product managers and chief architects lack vital visibility, across interdependent projects. For example, often they cannot answer even basic questions like: “In which release will defect ABC be fixed?” or “How many user stories have we delivered in the current build, and how many source code files did we touch?”
Security is another key issues, especially as you work across organizational boundaries, or have to deal with increasingly fickly workforce. There is the risk of giving too much permissions and access to code base and documentations, resulting in overwhelmed developers or (at worst) loss of IP and potentially even legal compliance violations. But there also is risk of providing too little access too late, frustrating staff and impeding their ability to deliver.
Ineffective collaboration… While technology can help, this continuous to be especially the case, if tools don’t work across the firewall divide, or are simply not scalable from a performance and throughput perspective.
Unaware how code changes affect production. Early and continuous delivery of valuable software is the #1 principle behind the Agile Manifesto. That’s why Agile practices demand looking beyond code, to build and test. Continuous integration (CI) and test-driven development are accepted as critical elements to accelerate the software delivery process. However, exclusive focus on automating the build and test process in not enough. Without the right visibility, development teams cannot deal timely with defects, and don’t understand how code affects production, resulting in technical debt.
Finally, uncontrolled high cost of development It infrastructure management by cobbling together an arsenal of incompatible products and tools.
If it isn’t easy then it doesn’t get done.
Best of Breed is a concept is a marketer’s fantasy. Software tools must be constantly evaluated and replaced as needed. No one tool is the king forever, and more then that no one tool is perfect for every team. Team’s must be empowered to select the correct tools for the work that they are doing.