It is the original proposal I sent to O'Reilly and Associates for my first PL/SQL book. I thought it might be of some interest to those who have benefited from Oracle PL/SQL Programming (the book), so here it is in all its glory:
April 5, 2007
O'Reilly and Associates
Dear Mr. Willison:
Attached you will find a proposal for a book on Oracle's PL/SQL language. PL/SQL ((for Procedural Language Extensions to SQL) is the core technology for database and application development in many of Oracle Corporation's tools. Yet it has not received the focused attention it deserves, either from training classes or reference books. This gap between the technology and supporting resources provides an opportunity for O'Reilly and Associates.
I am currently discussing publication of such a book on PL/SQL with SAMS, but I am very interested in hearing from O'Reilly and Associates about this project. I will want to move as quickly as possible on the proposal. SAMS will be sending me a contract for review by the end of the week.
I hope that you find the proposal of interest. I look forward to your response.
Book Proposal: A Programming Guide for Oracle PL/SQL.
Content/Structure of Book
The topic of the book is the PL/SQL programming language provided by Oracle Corporation. PL/SQL stands for "Procedural Language extensions for SQL" and is the underlying technology for complex programming in both the current and next generation of Oracle Corporation's application development and database management tools. While Oracle Corporation has produced reference manuals on PL/SQL, there are few if any books available in the marketplace which provide tips and techniques for "real world" development with PL/SQL.
The purpose of this book is to provide developers with practical strategies, tips and techniques they need to transform their formal education and training in PL/SQL into a set of skills they can use in the real world.
The underlying concept of the book is to go beyond the standard descriptions of features of the PL/SQL language and offer instead practical advice and a multitude of code samples and guides through those examples.
The major topics of the book include: overall strategies for development, coding standards, variable declarations, looping techniques, cursor management, exception handlers, character, date and number manipulation, code consolidation techniques. Readers of the book will gain both a solid understanding of the PL/SQL technology and the practical skills they need to deliver efficient and maintainable production code.
I plan to employ a multi-leveled approach to deepening one's expertise of the PL/SQL language. On the straight sequential level, I lead the reader from general strategies to coding standards to exploration of basic techniques and finally to the advanced use of these techniques, standards and stratgies to handle complex programming requirements. I also wish to have the book serve as a quick reference guide, so chapters are kept relatively short and focused on a particular topic.
With these levels, the reader watches the capacity of the PL/SQL language grow with the knowledge and skill of the developer. In addition, the reader applies the techniques learned in earlier chapters further on in the book, providing instant reinforcement. Each stage and example adds to the collection of solutions the reader has at her or his fingertips, ready to apply to a real world challenge. As a reference, the book's organization will allow the reader to quickly locate the topic and example she or he needs to meet the current, pressing need.
Whenever appropriate, I will supplement the narrative text and the code fragments with screen shots which show the PL/SQL code in the actual tool, tables and figures which provide graphical reinforcement of the text. In addition, I believe that some amount of humor is often extremely useful in improving the readability of a technical text.
This book is intended for anyone who uses PL/SQL to develop Oracle-based applications and has received at least introductory training in the language. Both beginners and more experienced users of PL/SQL will benefit from this book because many of its strategies, tips and techniques are available only from the author.
Oracle programmers generally receive only introductory training and then are left to fend for themselves when it comes to delivering efficient and maintainable production code. Existing trainings and third-party reference manuals do little more than regurgitate the contents of the Oracle Corporation documentation. On the other hand, it is widely recognized that programmers learn most effectively by example; this is especially true as regards the more complicated features of a product. Furthermore, while consultants are eager to demonstrate their expertise, they are often considerably less enthusiastic about sharing their "competitive edge" with in-house programmers.
As a result of these various factors, Oracle developers are greatly in need of resources which take them beyond the first, basic level of product understanding. They need books which can coach them with examples and the benefits of actual development experience so that they can greatly accelerate their learning curve towards a higher level of expertise.
I have worked with Oracle developers for over six years, both as a technical consultant for Oracle Corporation and as an independent consultant. I have seen over and over again that Oracle developers, no matter how competent, are unable to fully utilize their Oracle tools and achieve the maximum possible return on their significant investment in the software. More and more, this lack of sophistication is centered on the use (or mis-use) of the PL/SQL programming language.
Furthermore, as a registered subcontractor for Oracle Education, I know that Oracle itself does not even have a class for PL/SQL that goes beyond the most basic instruction and that users are hungry for this information.
While I do not know enough about the volume of sales for books in the Oracle marketplace to offer a number, I believe that the potential for the sales of this book is strong precisely because:
PL/SQL is a core technology which has not yet been addressed in and of itself. As Oracle moves heavily into the client/server and GUI environment, this technology will prove ever more critical
All programmers who develop applications in any of the Oracle tools (current and next generation) must know how to use PL/SQL.
Existing trainings and books do not address the need for a deepening level of sophistication of PL/SQL programming.
In addition, I have a strong reputation within the Oracle user group community; I have been active authoring papers in user group newsletters and other publications. In addition I have presented papers at a number of conferences and also developed a utility for Oracle SQL*Forms developers for which I have over fifty customers. User awareness of an author is key to marketing a book effectively in the rapidly expanding world of Oracle developers.
Oracle is just making available widely its new Cooperative Development Environment of Windows-compliant development tools. As these products are more widely deployed, the PL/SQL component of the software will become even more critical. Finally, the full set of tools offers a confusing picture as concerns PL/SQL, since different versions of the programming language are available in different products and even within the same version, various features are disabled in some products. Developers need a book now that they can trust to guide them through this software tangle. The book should appear as soon as is possible.
I have a bachelor's degree in mathematics and have worked as a programmer for thirteen years. I spent five years with Oracle Corporation. During and since that time, I established a reputation as a leading developer of Oracle-based applications, particularly with SQL*Forms Version 3. As the owner of ArtForms, I designed, built and currently market a debugger for SQL*Forms called XRay Vision. I have approximately fifty customers adn achieved widespread attention for this utility (a version of the debugger is made available free to all members of the International Oracle User Group via Compuserve as a membership benefit). I have been active within the Oracle user group community through the publication of articles in user group newsletters and other publications, such as the Oracle Corporation's own Oracle Integrator. In addition, I have published papers at a number of conferences, including the International Oracle User Week, and presented at both regional and national conferences, including ECO '94 in New York City in March 1994.