|
What
Agile Assurance Actually Is |
How
is Agile Assurance Different?
You spend a little more effort on requirements,
design, and testing than you would otherwise. This indeed costs more in
the short term. In the long term, you get higher reliability, lower
maintenance costs, and a lower risk of catastrophic failure. If you
have valuable assets and mission critical systems, the investment is
probably worth it! And you do not lose any agility.
Do
Other Methodologies Such as eXtreme Programming and RUP Provide the
Same Benefits?
Yes, but only if they are executed using assurance
practices. And those practices are exactly the value that Agile
Assurance adds!
I
Already Have a Methodology - Do I Have To Abandon It?
No!
Agile Assurance is a set of practices and expertise
that can be applied to just about any software development methodology.
|
What If I Already Have a System
Integrator?
That
is our
normal situation. We normally do not act as your integrator. We
normally add high-end value to add assurance to your process and ensure
it gets onto and stays on the right track.
Why Assured By Design? - Why Not
a Security Firm, or a Firm Specializing In Quality Management?
Software
development is our lifeblood. We are not technology experts who learned
how to build systems by watching. We have built many complex,
high-availability systems. In our opinion, for a profit-centric
business environment, it is better to come from the development side
and have a focus on assurance, than to come from the technology side
and have a focus on development. The reason is that building quality
software in a short time, for a reasonable cost, is very hard. That is
our core expertise, so we know what it takes, and will not lose sight
of that.
Why Not a Large Consulting Firm?
Sometimes you
need an agile approach to involving another vendor. It might be
advantageous to bring in someone who is focused on your needs, and who
has had personal experience in software development. Someone who will
be able to work strategically as well as tactically.
|
|
Agile
Assurance (AA) is a set of practices that ensure that an agile software
development process places sufficient focus on enterprise assurance
concerns. Agile Assurance also includes a set of skills, to make this
possible.
Like
most agile methods, Agile Assurance (AA) relies on a hands-on team of
project leaders, called mentors. These mentors are part architect, part
tech lead, part technical manager. They interface between your project
management and virtually every other member of your teams. They are the
"conductors" of the process on a day-to-day, minute-by-minute basis,
who make sure that everything that should be done is actually done, but
that no effort is wasted.
Mentors work closely with your
project manager and your requirements leads to
ensure that all of the important enterprise requirements are actually
addressed. This often involves establishing a
strong relationship with the business side of your organization. AA
mentors help to explain software assurance issues to the business, and help your
architects translate those requirements into technical terms. Mentors
therefore need to have a good understanding of your business.
Mentors
also work closely with your architects and technical leads to
ensure that assurance-related decisions are actually implemented.
Translating "fuzzy" requirements such as security, reliability,
manageability, and maintainability into implementation is an important
challenge, and AA mentors know how to do this without breaking the
agility of your processes.
A
critical practice of any agile project is extensive testing. Agile
Assurance extends this practice to include
additional forms of verification that are
the most practical for verifying that the system's design and
construction meets assurance objectives. For example, if a particular
requirement is hard to test, an AA mentor will provide techniques for
checking that the requirement is satisfied on a continuing basis. This
helps to prevent surprises during operation for system characteristics
that are difficult to test, such as security or long-term reliability.
|