If you’ve known me for a long time, and let’s face it, if you’re visiting this blog, you probably do, you know that I’m particularly proud of the work I was able to do at Network Solutions as the Director of Database Engineering and Development.
I had the privilege of working with some of the best software development colleagues I’ve ever encountered, including Pete Fox (Vice President of Engineering), Brian Taylor (Release Management), Eric Faulkner (Product/Portfolio Owner), Mike Cocozza (Application Tier) and Mona Nahavandi (Presentation Tier), Sujata Nakhre (Billing) and Michelle Lee (CRM), as well as a host of other professionals in QA and Operations to bring the Network Solutions website and IT applications to life.
I didn’t know it at the time (2002-2007) because it wasn’t well known yet, but we practiced what I now know to be proto-Agile and proto-Helsinki development of a complex system that was timeboxed and data-centric. We regularly released features in three-month cycles based on release themes made up of capabilities and features which were managed and prioritized by product owners.
Recently I had the privilege of presenting at the Northeast Ohio Oracle User’s Group training day conference in Cleveland, Ohio and during the sessions I actually started to hear the stirrings of the Oracle community becoming more aware of Agile and Helsinki as ways to improve our ability to deliver quality Oracle-based software systems in a more rapid manner.
BTW, I couldn’t have been more impressed with the NEOOUG training day conference — I was highly surprised given that I had assumed attendees would be limited to North East Ohio, and that the conference itself would reflect a minimal ability to host a larger event.
I was wrong.
Held at Cleveland State University, I estimated the crowd at about 100-150 participants in state-of-the-art venues including university classrooms and ballroom spaces. Excellent wifi coverage was the icing on the cake.
I thought the quality of the presentations was pretty good as well — and I’ll definitely be returning in the future, as well as encouraging folks from the Midwest and Great Lakes regions to attend. The folks at NEOOUG told me they’re aiming to be as good as the RMOUG Training Days conference and I’d say they’re clearly on the right track.
As an aside, I think it’s really a good idea for Oracle Technology conferences to be more closely identified with academia through the use of university / college facilities as opposed to the Applications-focused conferences which are more of a vendor event — I think it more clearly aligns the content with the audience and venue.
I gave 2 presentations at the conference: Implementing MapReduce with SQL and PL/SQL; and An Examination of Schema Architecture Patterns for Edition-Based Redefinition.
I’m particularly proud of the MapReduce presentation — it’s evolved nicely since I gave it at RMOUG and I’ll be reprising it at ODTUG KScope12 in June as well, but I was really pleasantly surprised at how well the EBR presentation went.
It’s probably because any discussion of EBR naturally aligns itself with how to use it to support a development process, and so I got to discuss some of my methods for doing database development:
1. Agile-style timeboxed deliveries
2. Helsinki-style database APIs through stored procedures
3. Describing the database as a “data server” accessed via an API (lately I prefer a RESTful API exposed via the APEX listener), instead of a “database server” with tables mapped into client-side ORMs
4. Versioning of database objects — historically by appending version numbers to programmatic objects (packages and procedures), now by using Edition-Based Redefinition
5. Extracting definitions of database objects to the file-system for source-code control check-in
6. DDL auditing everywhere — Development, QA, Production — to track all database structural changes
#4, #5 and #6 have been areas of keen interest to me for over 7 years now — and I’m happy to say that tools and vendors have really been responsive to my requests for improvements. I can’t say enough good things about Kris Rice and Bryn Llewellyn from Oracle, who listen to my requests for features in SQL Developer and how I might use EBR — I’ve seen changes that make SQL Developer get better and better at #4 and #5 in particular – now you can generate individual scripts per object and use the new Cart feature for deployment.
Today I want to talk about another vendor looking to provide capability in #4 and #5 in a unique way: through a live opportunity to engage the Oracle developer community in a rapid feedback loop on features at the upcoming ODTUG KScope12 conference in San Antonio, TX on June 24-28, 2012.
Redgate Software has done a bunch of work in the SQL Server space for years and more recently has upped their game in the Oracle tools world with their Schema Compare, Data Compare and Schema Doc products, as well as hosting the AllThingsOracle.com website. And at KScope they’re looking to really interact with the development community on building Source Code Control for Oracle in a live, agile fashion.
Instead of a simple product demonstration booth, Redgate will be using their vendor space as a mini-development shop, soliciting features from conference attendees and using an agile development process to actualize those features into a prototype product for Oracle Source Code Control.
Needless to say, I’m excited about it — I have definite ideas on what works and what doesn’t work for Oracle source code control and I can’t wait to try and get those things implemented while seeing what other developers and DBAs also want.
If database development is at all important to you, this sounds like a great opportunity to get your ideas out there.
Here is a snippet I wrote on the oracle-l list today before I remembered that I’m a blogger now. To see the whole thread in context (potentially including someone telling me I’ve got it all wrong later today or in the future) the subject was OT: sheltered little world i live in -> NODB?
Someone opined about where a DBA would start designing. That person might be right about some DBAs. Here is approximately what I wrote (only fixing some typos and grammar, I think.):
gee whiz. I think people think of me as a DBA. re: “That’s true that DBA would start designing application from database.” (sic.)
Larry Constantine has written some excellent books about information systems design. Many of my ideas are well explained in those books.
First, you figure out what the application needs to do. Folks have made the phrase “use cases” popular in recent years. I always check whether someone is wearing clothes when I hear that phrase. For some it is an extremely useful focusing phrase and for some it is an excuse to not know what you’re doing. So check. By the way, figuring out what the application needs to do, right away, includes getting a ballpark idea of how much total data is going to be handled and where that fits in the context of the current capabilities of hardware. “Is it bigger than a breadbox?”
Second, you need to figure out what the inputs to the systems are, what the outputs of the system are, where the transform centers from one to the other are, what instrumentation is appropriate to determine whether the inputs are correctly becoming outputs (where appropriate includes performance), and what the required information life cycle is for all the data and metadata about the system. Lingo: Inputs are called afferent legs, outputs are called efferent legs. A point many folks (not including Tim Gorman, who nailed this in one as well as making several other key points with many fewer words than I need) is that efferent legs include reporting requirements. That’s analytics, mining, performance metadata so you know whether your system is heading for the crater: ALL THAT.
Third, you need to figure out the data model requirements for the system.
(That could indeed be a flat file [and please note that a single flat file can be a representation of a relation] – and awk might be just the right tool [or even just grep], but you don’t know that before steps 1 and 2.)
Fourth, you need to figure out how much of the system you can build in the first chunk without making it impossible or difficult to build the other parts of the system.
Fifth, you need to assess a useful point on the scale between complete waterfall design and the lightest weight agility that makes sense for the project.
Sixth, you need to choose tools and technologies and start construction if the expected value of the application exceeds the expected cost and is within budget.
Seventh, you need to get a pizza and a beer. And I hope it is a really good beer. I think the article author made a lot of good points about beer. Now for some really trivial applications, you might go through the first six steps and build the thing in under an hour. If that’s the case, you better do a few of them before you proceed to a bundled step seven. But do not forget to budget for the pizza and the beer.
PS: Step seven is also the seventh step of debugging, but that is a different story
Just a quick note about the Call for Papers for the upcoming UKOUG 2012 annual conference to be held on 3rd to 5th December in Birmingham. I have been a speaker for the last 5 years and I think this is a very valuable conference about Oracle technology in Europe. If you want to be […]
Another family tragedy has the effect of reuniting Jack with his brother Tom, the judge. It turns out Tom is not as squeaky clean has he appears and needs Jack’s help for something less than legal. As you can probably guess by now, it all turns sinister and mystical…
I’ve definitely become desensitized to the darkness now. Every time a new character is introduced, pretty much my first thought is, “I wonder how they will die?” It’s a bit like watching Star Trek and knowing the security officer (in the red top) you’ve never seen before is the one that’s going to eat lead/laser…
The call for papers for the UKOUG 2012 conference ends in less than three short weeks! If you were planning on going to the conference (and even if not) - you should consider submitting a paper.
Apologies for a completely non-technical blog item – feel free to skip!
Unfortunately I can’t use it as most of the source code I’m posting is too wide.
I can almost hear the characteristic SuperDrive noise when reading one of my floppy disks. A moment of nostalgia.
A common question that gets asked is does Oracle access the index itself or the parent table during an index rebuild to extract the necessary data for the index ? Thought it might be worth a blog post to discuss. Now if the index is currently in an UNUSABLE state, then Oracle clearly can’t use the existing [...]
I’ve been using the beta versions of UltraEdit 3.1 for Mac and Linux for a while, but I only noticed today the production version has been released. I normally get email updates, so I figure this one must have got directed to spam by accident.
Anyway, I’m now rockin’ the latest version on both platforms. Happy days…
I’ve just noticed that the new HTML MOS introduced a nice addition to the old ORA-600/ORA-7445 Error Look-up Tool: now there is a new ORA-600 Troubleshooting Tool (if the link is not opened automatically for you try refreshing the page with F5 – works for me in Chrome).
Within a few minutes it allows you to upload a generated trace file and then automatically redirects you to the search results based on the error reported in the trace. The tool should be useful to those who don’t know what to do with the trace. It also allows you to save the results in a “report”. It’s definitely a very nice addition to the MOS functionality.
I went for a job interview today… (pause while Debra Lilley picks herself off the floor)
It’s probably been about 8 years since I’ve had a formal interview like this. I admit I was a little nervous going in, but it turned out to be pretty good fun.
It started with a 1 hour written exam. It’s been about 20 years since I’ve written more than a signature with a pen, so having to write with a pen for 1 hour was pretty terrifying. I’m not big on remembering syntax (that’s what the manuals are for ), but hopefully I showed that I understood what was going on. Some of the questions could have been answered with “Read this: www.oracle-base.com/articles/….”. Pity that wasn’t an option.
After the written exam came a regular interview. I like interviews. I like talking to people about technical stuff, so I had a good time. I hope they did too. Nobody fell asleep and I didn’t see any ears bleeding, so I guess I didn’t bore them too much. I get quite “enthusiastic” when I’m talking about technology. I guess that can be a little daunting to some people. I hope I didn’t scare anybody off.
I guess it’s now down to them to decide if I’m a good fit for the job or if one of the other candidates will fit in better. Time will tell.
It would be really neat to get the job, but I’m lucky in so much as if I don’t get it, it will not really impact on my life, so I’m not tense about the outcome. Whatever will be, will be.