Agile at Sphere
We approach Agility
from a different perspective than the
mainstream Agile training community. For
starters, we completely depend on Agile in
both our consulting and outsourcing practice
areas. Next, we don’t use “cutsie Agile”
(i.e. pigs, chickens, planning games,
leaderless teams, and all that). Our
corporate culture is serious and built on
three main pillars: engineering excellence,
product design, and customer/mission. We
designed our Agile approach to optimize
these priorities. Finally, we are innovators
who always seek ways to enhance the tools
and methods available.
At Sphere, Agile is about “decoupling”.
Whether the discussion is technical
architecture, business process,
requirements, organization structure, or
testing – coupling is the enemy of
flexibility. We show our clients how to
detect coupling in all of its insidious
forms and selectively eliminate disruptive
or unnecessary coupling. By decoupling
project elements our clients gain more
flexibility to adapt and react to situations
as their projects evolve.
Ours is a grittier more targeted approach to
Agile than what you’ll get from our
competitors. With our approach project teams
achieve the results that attracted them to
Agile in the first place, namely: a shorter
less expensive engineering lifecycle, better
finished products, and intense amounts of
testing.
Speaking of testing, no Agile project is
complete unless the testing is extreme. It
goes without saying that automated unit
tests need to run and pass whenever the
smallest change is made. At Sphere, we not
only adhere to that rule we extend this
philosophy deep into system testing. By
decoupling application architectures through
“seams” in the design we are able to achieve
extremely high coverage ratios with
automated system and acceptance testing.
|
|
How are you going to test that?
When reviewing
a technical design the statement you’ll hear
most from our delivery leads is “how
are you going to test that?” No software
gets implemented on our floor without
consideration for test, specifically
automated isolation tests. While other
companies struggle to put their software
together, our delivery teams focus on
designing software to be “taken apart”. When
creating a complex system, how something
comes apart for isolation test or in support
of deployment scenarios is at least as
important as how it goes together. By
decoupling application components with good
abstraction and engineering we can easily
run system-level test exercises several
times a day, without massive data
preparation.
Each development build produces analysis
reports that show not only whether tests
pass but how well the tests cover the code
paths. Testing at Sphere is a rigorous and
tightly controlled process.
Lean Development
While it is
common for software developers to talk about
Lean, few appreciate what it truly
represents. At Sphere we take the “just in
time” aspects of Lean Production Systems
seriously. A project needs certain things to
be in place every day, sometimes every hour
(requirements for example). We make sure
everything is in place when it is needed and
never produced in finished form until it is
ready to be consumed. This not only ensures
freshness of the artifact it eliminates a
lot of waste. We apply Lean philosophies to
requirements, architecture, change requests,
testing, and planning.
At Sphere we make every effort to run
zero-defect projects. This means a defect is
supposed to be corrected or removed within
48-hours of discovery. The sun should never
set twice on a defect.
|