An enterprise administrator is anyone who is actively
involved in identifying, documenting, evolving, protecting, and eventually
retiring enterprise assets. An agile enterprise administrator does so in a collaborative
and evolutionary manner. Potential assets include corporate data,
corporate development standards/guidelines, and reusable software such as
components, frameworks, and services. The responsibilities of this role
potentially includes, but is not limited to, the responsibilities associated
with traditional roles of data administrators, network administrators,
and software process specialists. Many organizations,
particularly larger ones, will split these separate roles out, but for
the sake of simplicity I'll simply talk about the general concept of
enterprise administrator. In many ways enterprise
administrators are the “keepers of the corporate gatesâ€, supporting development
teams while at the same time guiding them to ensure that the long-term vision of
the enterprise is fulfilled. An important goal is to guard and improve the
quality of corporate assets, including but not limited to data. Good
enterprise administrators are
generalists with one or more specialties, one of
which could be data administration, who understand a wide range of issues
pertinent to the enterprise.
What Agile Enterprise Administrators Do
It is possible for enterprise administrators
to take an evolutionary/agile
approach to their work, if they choose to work this way (many unfortunately don't, see
below). Agile enterprise administrators:
-
Work in a collaborative
manner. They work side by side with people on development teams as
needed. They don't dictate or try to enforce standards or procedures
nor do they try to control the team. They realize that their
primary goal is to enable teams to effectively work within the bounds of
their organization, and that the most effective way to do this is through
collaboration.
-
Work in an evolutionary
manner. Enterprise administrators will need to support agile
software development teams, and because these teams work in an evolutionary manner
the enterprise administrators must also work this way. The implication
is that the administrators won't have complete artifacts to work
with â€" e.g you can't insist that a development team puts a logical data model
in place before you'll help them to identify potential data sources.
Agile teams take an
agile approach to data modeling and will
refactor their
database schemas as needed.
-
Communicate their role.
Agile software development does not take a command-and-control approach to
management.
Agile developers aren't going to jump through the hoops
of enterprise administrators just because that's the way things are done,
instead they'll work with the enterprise administrators when the
administrators actually have value to add to the overall effort.
Therefore not only should enterprise administrators be able to add value
they also need to ensure that their customers perceive that they're able
to do so. Trying to “impose your will†through onerous processes
or management edicts won't work very well, instead people will find ways
to either ignore you or go around you. In fact, there is a technique
called blocking which works incredibly well in practice.
-
Mentor agile software
developers in corporate standards and guidelines. The goal is to
support the standards and guidelines, not enforce them. A good rule of
thumb is that if you need to act as the “standards police†then you have
lost the battle. Furthermore this failure is very likely your fault
because you didn't communicate the standards well, didn't gain support,
or tried to enforce unrealistic guidelines. If the standards and
guidelines make sense, if they're written well, if they're easy to
conform to then data and application developers will be willing to follow
them. However, when the standards and guidelines aren't appropriate
or place an inordinate burden on initiatives then enterprise administrators
should expect pushback. Yes, some individuals may chaff at following
standards and guidelines but that's something that team
coaches/leaders will need to deal with. In fact, agile methods such as
XP
include a practice called Coding Standards which insists that XPers agree
and adhere to
common coding guidelines, and Agile Modeling (AM) includes a practice
similarly called
Apply Modeling Standards which insists that modelers agree and adhere to
common modeling guidelines.
-
Be willing to actively
address issues. When pushback occurs an enterprise administrator
works with the development team(s) explore and address the problem.
Perhaps a standard isn't appropriate for a new technology. Perhaps
existing logical data definitions need to be updated to reflect new usage.
Perhaps the network needs to be upgraded to support a new application.
Enterprise administrators must be willing to actively work with team
members to resolve issues such as this.
- Work with the enterprise
architects. Enterprise administrators work closely with
enterprise
architects to communicate the constraints imposed by the current
environment to the architects. More importantly the enterprise
administrators need to understand the future direction envisioned by the
enterprise architects to ensure that their efforts support the long-term
direction of your organization.
- Adopt a lean approach to governance. Traditional, command-and-control approaches to
governance appear to work very poorly in practice. It is possible to take a
lean/agile approach to data governance.
A specific activity that an agile enterprise data administator may do is
take an agile approach to Master Data Management (MDM). The goals of MDM are to
promote a shared foundation of common data definitions within your
organization, to reduce data inconsistency within your organization, and
to improve overall return on your IT investment. There is
nothing inherently special about MDM -- it doesn't need to be complex nor
bureaucratic -- you can in fact take an
agile approach to MDM
if you choose to. The critical concepts to accept are that MDM is both an
enterprise-level issue and a
team-level issue, and that the only way for MDM to succeed is for it
to enhance data-oriented efforts on development teams and not hamper
their overall progress. Traditional approaches to MDM typically do the
exact opposite, and as a result struggle to provide value.
Agile Enterprise Administration
Although enterprise administration should be
straightforward, and it can be, many evolutionary/agile development teams find
existing enterprise administration groups difficult to work with. Some of
that difficulty lies in a weak appreciation within agile methods of enterprise
issues (hence the importance of
Agile Data's way of thinking (WoT)),
be enterprise aware. But most of the challenge lies with the inflexible, often
bureaucratic, and often serial approaches preferred by the administration
groups. Much of the problem lies in the administration-oriented frameworks
such as
Control Objectives for Information and Related Technology (COBIT) and
Information Technology Infrastructure Library (ITIL)
which are invariably implemented in a command-and-control, instead of a
collaborative, manner. COBiT and ITIL each have some good ideas in them (ITIL
seems to have more, IMHO),
but like development processes based on the Capability Maturity Model (CMM)
Integrated (CMMI) the final implementation often proves to be less than
effective. Worse yet, from what I've seen, many organizations are
attracted to these frameworks because they're seen as the first step towards
outsourcing portions of your IT organization: get a well defined process in
place, get good at following it, then start outsourcing to lower-cost companies
who have also adopted those frameworks.