Well, I’m calling it day -1 because the festivitites that is ODTUG isn’t supposed to start until Sunday, but Paul Dorsey and Dulcian put together an Architects conference with a lot good people and good topics. I started out getting up a little late, its been one of those weeks from you know where and worked until 2am and left about 9:00. I love conferences in DC, it lets me jump on the metro 2 blocks from my house and not have to worry about traffic. So I get out of the metro and should have made a right instead of a left, ended up walking around for half an hour realizing I must of made a wrong turn. Called thehotel and realized if I had looked to the right when I left the metro I would have been staring at it. Oops, I’ve only been living in DC full time for 8 weeks, I don’t know where everything is yet (and probably never will). So I finally get in at the end of David Schleis’ AJAX talk, by the look of people it looks as if it was very good, no one was sleeping and everyone was paying attention. Next was David Wendelken’s .NET talk, I’m not going to lie, I wasn’t very interested and found everything to be a high level overview of .NET and really didn’t dive deep in anything specific in working with .NET and Oracle. Instead I spent most of that time building an updated J2EE Development Virtual Machine that includes the newest versions of Oracle XE, Oracle Applications Express, and jDeveloper 10.1.3. Next was Frank Nymphius’ talk on JSF, a very good overview of ADF and JSF. Talked about how easy it was to switch out their backend beans from TopLink to facades, I’d like to see the numbers of how long it took on that one ;-). Next up was John King talking about Oracle and JDBC, Some nice things around the batch processing and auto commit that can be turned off at the conncetion level. I think he should have better stressed the piece on callable statements and bind variables as there are some major security and performance gains there. And then lunch…
Right after lunch was Scott Ambler. Scott is in charge of Agile Development for IBM. The talk focused on Database Refactoring. Great guy with presentations the way I like them, to the point and very blunt. Calling out the obvious problems with current database models, and going into depth with real examples!! Open an honest about performance hits when your moving things and refactoring databases, especially when you use triggers to support it. Compares it to Sun’s Java deprication strategy for the database. Maybe its the RedBull I drank after lunch, but this talk really hit home with me. It seems to be that with all the projects I hit there are always problems with refactoring data models, I’ve suggested the same methods in the past. Its nice to see someone else as crazy as I am. One thing that he didn’t talk about was making sure your logging the usage of your “pre-factored” tables (the old deprecated ones). Scott discussed using triggers and such to allow old and new applications to synchronize tables and setting hard dates when the old tables are going away. If you take this approach you need to audit the “pre-factored” tables to see usage actively go down and when your nearing deprication time to know who you have to go “talk to” to go change their code and make sure the deprication will continue on schedule. When talking about configuration management, “If you don’t need to lock it down, then why are you bothering to do it.” It amazes me how many companies are so anal about locking down their J2EE code, but completely ignore data models and scripts. Database regression testing, unit testing for databases. I like this guy…database encapsulation with TopLink or Hibernate. Applications are evolutionary, and why shouldn’t data models be? Invest in regression tests to validate corporate data, regression test your stored procedures, need real strategies to fix endemic problems with data sources, data sources shouldn’t be the anchor around your team’s neck, cross train your developers to be database guys and vice versa, raise the bar for data management!!! Great talk, its not easy to do in practice, but if you can even take away some of the thoughts from his talk your organization will be much more flexible in their development and deployment strategies. Its already been done for years in the J2EE/Java arena, why not push the same concepts into the database world.
Next up was Roland Berg, on the people factor of Web Architecture. One of the big points was that the keys to architecture that we really don’t understand today are People, Time and Motivation. Very true, thats why sometimes when theres the impossble project that no one believes you can get done, the team finishes early, and the project that should be done in 2 weeks takes 4 months (I’ve been on both sides of the coin there). Some good discussion on who leads at different parts of the project and who needs to have control on the direction:
Logical Model: Architects (Leads), Designers (supporting role), Engineers (supporting role), Stakeholders (as reviewers).
Physical Model: Designers, Engineers (supporting role), Architects (reveiw, preserve vision), Stakeholders (as reviewers). This is where technology selection belongs.
Implementation: Developers, Designers, Architects, Stakeholders. “Having the right people at the right place and at the right time is critical to the success of a project.”
A key point:
“The architecture must take into account the people involved at all phases of the project to be effective.”
I like to think this is one of the reasons that the teams l’ve put together through projects have succeeded
The last talk before the panel was Peter Koletzke on Web Application Communications. Honestly, it was a low level talk on the HTP request and response cycle and the components of those messages. I felt it was one of those “Well DUH!” talks and too high level for a Web Architecture Symposium. I checked out mentally and completed my proposals for Oracle World papers. Onto the round table…
The round table seemed to be a very much us vs.them talk. On one side was the group that wanted to put everything into the database, aligning with Paul Dorsey and his thick database concept. The other camp was the OO developer, SOA, new world camp as I like to call them. The big worry seems to be with just about everyone, how do I keep myself safe from changing technology while still remaining flextible. Its an age old fight that never really has an end. The thick database camp wants to put everything in the database because its one place to maintain all of the business rules and at the bottom of every stack. This may be fine and dandy but really doesnt leave things to be flexible, not everything runs through a database and not everything can live in the database. A question came up about where to put error checking for data being pushed and pulled from the database and other interfaces. My answer to the question is BOTH. As a rule of thumb I never trust anyone, no matter if its an external source or an internal service. Things always change, people always forget who’s using a service, and things arent always checked. Its a good rule of thumb to trust no one. ;)Thats all for today, tomorrow the BI Customer Advisory Council….