*
The moose likes Agile and Other Processes and the fly likes Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark ""Agile DBA" ? " Watch ""Agile DBA" ? " New topic
Author

"Agile DBA" ?

jim ke
Greenhorn

Joined: Jan 08, 2004
Posts: 4
Hi :
Read the table of contents & some of the descriptions. The book sounds more like a programmer's guide than a DBA's guide.
Are they trying to encompass things like replication rules, service levels, access rights, and backup rules into the objects at the system design time ?
jim
Serge Adzinets
Ranch Hand

Joined: Nov 26, 2002
Posts: 166
I guess the book aims not only to DBAs but data architects, modellers and everyone dealing with data in the project. The DBA is like the common word.


Best Regards,<br />Serge
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
There shouldn't be a DBA in a project. The ideal (in my opinion) is that every single developer knows the database schema. Yes, there should be a senior DBA to support the team with advanced stuff like query optimization, but the vast majority of applications suffice without such tweaking.
It would be difficult to be truly agile if the team can't make the changes they'd like to because the DBA is overloaded with work (most probably not related to the particular project...).


Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Surasak Leenapongpanit
Ranch Hand

Joined: May 10, 2002
Posts: 341
From
Surasak Leenapongpanit
Ranch Hand

Joined: May 10, 2002
Posts: 341
From An essay is taken from Chapter 19 of Agile Database Techniques :
1. The Role of the Agile DBA
When it comes to ensuring referential integrity and implementing business rules the role of the Agile DBA is to:
Be fluent in the technical issues described in this chapter.
Work alongside application programmers to implement the necessary code.
Be prepared to mentor application programmers and enterprise professionals, including both architects and administrators, in the technical issues.
Serge Adzinets
Ranch Hand

Joined: Nov 26, 2002
Posts: 166
You have 2 options in the labour division in the project: vertical and horizontal. The first means a developer implements the functionality of the particular use case in all architectural layers. The latter implies a dev implementing code for different use cases within one layer. In this case a DBA could, for example, develop DAOs for all the schema.
I've worked in projects with the first approach only, but the second one seems to have some advantages, like better quality of code.
Anyway it depends on the experience of your team.
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
In this case a DBA could, for example, develop DAOs for all the schema ... better quality of code.
How many DBAs do you know who you would trust on writing your data access code, i.e. Java code? If you know one of those, hang on to him!
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Siarhei Adzinets:
I've worked in projects with the first approach only, but the second one seems to have some advantages, like better quality of code.
[/QB]

In my experience, better quality doesn't come from specialization, but from collaboration...


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Serge Adzinets
Ranch Hand

Joined: Nov 26, 2002
Posts: 166
Originally posted by Lasse Koskela:
How many DBAs do you know who you would trust on writing your data access code, i.e. Java code? If you know one of those, hang on to him!

I am My primary responsibility is writing java code and as a background activity I have to create and support the data model. Of course, I'm not a true DBA, may be a data modeller...
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
I am My primary responsibility is writing java code and as a background activity I have to create and support the data model. Of course, I'm not a true DBA, may be a data modeller...
Yep, I was referring to "the other type of DBAs". I am also often responsible for designing the database schema, but it's some other guy (the real DBA) who tweaks all the tablespace stuff and so forth, i.e. non-SQL related details.
Serge Adzinets
Ranch Hand

Joined: Nov 26, 2002
Posts: 166
Originally posted by Ilja Preuss:

In my experience, better quality doesn't come from specialization, but from collaboration...

Could you be more detailed on this...
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Ilja probably means that "(1 x 2) < (2 x 1)". That is, two average developers tend to produce better designs together than one above-average developer typically does. The reason being that the lone above-average guy doesn't get the benefit of discussing his design as efficiently as the pair does.
Scott Ambler
author
Ranch Hand

Joined: Dec 12, 2003
Posts: 608
Ideally everyone should be competent in every aspect of software development, but that's not realistic. For example, how many among us can claim to be expert at UML, data modeling, user interface development, J2EE, networking, your operating system of choice, requirements gathering, your business domain, ... ? The reality is that we need to build teams of people who collaborate with one another to get the job done. I would prefer that these people be generalizing specialists, someone with one or more specialities and a general knowledge of development and the business domain. An Agile DBA should be a generalizing specialist whose has a data-oriented specialty.
An agile DBA goes beyond the role of traditional DBA. A traditional DBA should have a handle on replication issues, database admin, transaction control, ... and all the other traditional data skills we would expect of a DBA. There are several good books on this subject so I didn't really feel the need to cover them in my book, why reinvent the wheel? What I do cover is skills that most DBAs are sorely lacking if they wish to be effective members of development teams -- evolutionary data techniques such as AMDD, TDD, database refactoring, and so on. Fundamental object/relational skills including mapping, encapsulation strategies, and other development issues.
I also cover fundamental skills that both developers and DBAs should have, but rarely seem to. Both groups should understand both the UML as well as data modeling. They should both understand data normalization as well as class normalization. They should both understand the implications of using object and relational technologies together as well as the contraints placed on them by legacy data sources. Without this common ground it's very difficult for developers and DBAs to work together effectively, something I'm sure that you've all observed in your career.
The vision is that some people will be "Java" generalizing specialists, some Agile DBA generalizing specialists, some testing generalizing specialists, and so on who will work together to get the job done. When data stuff needs to be done perhaps a Java GS will work together with an Agile DBA GS -- each person will learn new skills from the other, while at the same time ensuring that the work is being done by someone with the actual skills.
It's a different way to work, one that is very common within the agile community but not so common, in my experience, on traditional teams. At least not yet.
- Scott


<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
Surasak Leenapongpanit
Ranch Hand

Joined: May 10, 2002
Posts: 341
See Evolutionary Database Design
Anushe Khan
Ranch Hand

Joined: Dec 13, 2003
Posts: 74
quote: The vision is that some people will be "Java" generalizing specialists, some Agile DBA generalizing specialists, some testing generalizing specialists, and so on who will work together to get the job done. When data stuff needs to be done perhaps a Java GS will work together with an Agile DBA GS -- each person will learn new skills from the other, while at the same time ensuring that the work is being done by someone with the actual skills
-------------

very interesting!
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Serge Adzinets:
Could you be more detailed on this...

In my experience, tasks which only need one specific skill are virtually non-existant. So, if you let one specialist work on a task alone, you will get quality in one dimension, but less good work regarding other criterias.
You get the best work when people with different skills work together on one task, for example a DBA working together with an experienced OO developer. Personally, I like the practice of Pair Programming.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: "Agile DBA" ?
 
Similar Threads
SCBCD Preparation Methodology
WA #1.....word association
Rule for purchase..
Coding style
Generics polymorphism and Iteration