Databases Reference
In-Depth Information
Background, training,
motivation
Developer
What we can
measure
App
generators
Developer
tools
Tools layer
IDE
Language-specific
APls and libraries
Language layer
SQL
MDX
XQuery
What we would
like to measure
Interface layer
CLI
REST
SOAP
JDBC
ODBC
RPC
Database layer
Database architecture
Figure 9.3 The factors that make it challenging to measure the impact of database
architecture on overall software agility. Database architecture is only a single
component of the entire SDLC ecosystem. Developer agility is strongly influenced by
an individual's background, training, and motivation. The tools layer includes items
such as the integrated development environment (IDE), app generators, and
developer tools. The interface layer includes items such as the command-line
interface (CLI) as well as interface protocols.
An application development architecture's overall software agility can be precisely
measured. You can track the total number of hours it takes to complete a project
using both an RDBMS and a NoSQL solution. But measuring the relationship between
the database architecture and agility is more complex, as seen in figure 9.3.
Figure 9.3 shows how the database architecture is a small part of an overall soft-
ware ecosystem. The diagram identifies all the components of your software architec-
ture and the tools that support it. The architecture has a deep connection with the
complexity of the software you use. Simple software can be created and maintained by
a smaller team with fewer specialized skills. Simplicity also requires less training and
allows team members to assist each other during development.
To determine the relationship between the database architecture and agility, you
need a way to subtract the nondatabase architecture components that aren't relevant.
One way to do this is to develop a normalization process that tries to separate the
unimportant processes from agility measurements. This process is shown in figure 9.4.
This model is driven by selecting key use cases from your requirements and analyz-
ing the amount of effort required to achieve your business goals. Although this sounds
complicated, once you've done this a few times, the process seems straightforward.
Let's use the following example. Your team has a new project that involves import-
ing XML data and creating RESTful web services that return only portions of this data
using a search service. Your team meets and talks about the requirements, and the
development staff creates a high-level outline of the steps and effort required. You've
Search WWH ::




Custom Search