|
Data Skills for Agile Software Developers
www.agiledata.org:
Techniques for Successful Evolutionary/Agile Database Development |
|
Home
| Agile DBAs
| Developers
| Enterprise Architects
| Enterprise Administrators
| Best Practices
| Agility@Scale Blog
|
Announcements
|
Contact Us
|
|
An agile software developer is anyone who is actively involved with the
creation and evolution of the non-data aspects of a software
application. The responsibilities of this role can include the
responsibilities traditionally associated to the traditional roles of
programmers, modelers, testers, team leads, business analysts, project managers,
and deployment engineers. Agile
developers work very closely with
agile DBAs who are responsible for
working on the data aspects of one or more applications. |
|
Agile software developers will adopt and follow agile software development
processes such as
Extreme
Programming (XP) or the
Agile Unified
Process (AUP). When it comes to
modeling and
documentation they are likely to enhance these processes with the
principles and
practices of
Agile Modeling (AM). All three of these processes, being agile, implores
developers to work closely with their project stakeholders.
The implication is that developers are responsible for helping to educate
their
stakeholders, including both users and managers, in the basics of software
development to help them make more informed decisions when it comes to
technology.
My experience is that all developers, agile or not, need to learn fundamental data techniques.
This includes:
-
Data modeling
-
Relational database fundamentals
-
Referential
integrity and where to put shared business logic
-
How to
retrieve
objects from an RDB
-
Security
access control
-
Concurrency control
-
Transaction control
-
Mapping objects
to RDBs (O/R mapping)
-
Encapsulating database access
-
How to implement
reports
-
Working with legacy data
-
XML
Furthermore, agile developers need to adopt evolutionary, if not agile, database techniques. This includes:
- Agile data
modeling
- Database
refactoring
- Test-driven design (TDD)
- Database
regression testing
- Taking an agile approach
to modeling and documentation
- Working in
development sandboxes
- Recognizing
that data models
don't drive object models (and vice versa)
References and Suggested Readings
- The Agile Data
Vision
- Agile Database
Best Practices
-
Agile/Evolutionary
Data Modeling
-
Agile Testing and Quality Strategies: Discipline Over Rhetoric
-
The
Criteria for Determining Whether a Team is Agile
-
How to
become more agile
-
Introduction to Data
Normalization
-
Roles on Agile Teams: From Small to Large
-
Survey Results (Agile and
Data Management)
|
This book describes the philosophies and skills required for
developers and database administrators to work together effectively on
project teams following evolutionary software processes such as Extreme
Programming (XP), the
Rational Unified Process (RUP), the
Agile Unified
Process (AUP), Feature Driven
Development (FDD), Dynamic System Development
Method (DSDM), or The Enterprise Unified Process (EUP). In March 2004
it won a Jolt Productivity award. |
|
This book describes, in detail, how to
refactor a database schema
to improve its design. The first section of the book overviews the fundamentals evolutionary database techniques in
general and of database refactoring in detail. More importantly it
presents strategies for implementing and deploying database refactorings, in
the context of both "simple" single application databases and in "complex"
multi-application databases. The second section, the majority of the
book, is a
database refactoring reference catalog. It describes over 60 database refactorings, presenting
data models overviewing each refactoring and the code to implement it.
|
|
This book presents a full-lifecycle,
agile model driven
development (AMDD) approach to software development. It is one of the
few books which covers both object-oriented and data-oriented development in
a comprehensive and coherent manner. Techniques the book covers
include Agile Modeling (AM),
Full Lifecycle Object-Oriented Testing (FLOOT),
over 30 modeling techniques,
agile database techniques,
refactoring, and
test driven development (TDD). If you want to gain the skills required to
build mission-critical applications in an agile manner, this is the book for
you. |
|
|
Let Us Help
We actively work with clients around the world to
improve their information technology (IT) practices,
typically in the role of mentor/coach, team lead, or trainer. A full
description of what we do, and how to contact us, can be
found at Scott W.
Ambler + Associates.
Copyright
2006-2012 Scott W. Ambler |
This site owned by Ambysoft Inc.
|
gipoco.com
is neither affiliated with the authors of this page or responsible
for its contents. This is a safe-cache copy of the original web site.
gipoco.com
is neither affiliated with the authors of this page nor responsible
for its contents. This is a safe-cache copy of the original web site.