Preparing yourself as a developer
A craftsman is only as good as his tools, and in a very real sense, you are your tools. To remain capable and versatile, you should commit to the life-long task of continually acquiring knowledge and skills people-skills as well as technical skills.
As you begin your work on a new project, keep in mind the larger picture. This new project will be followed by others. One polished application will lead to another. One happy and satisfied customer will spread the word about how good you are.
Gather a list of public websites that use Domino
While you browse the Web, gather ideas about what makes web pages look good. Great websites should inspire you. Inspect the layout, the use of images and color, and the navigational strategies. If you see an interesting control, peek under the covers and take notes about how it was coded. But be sensitive to intellectual property and copyright laws not everything published on the Web is free.
In particular, collect links to public websites that use Domino and show it to good advantage. Relatively speaking, only a smaller number of public-facing websites are served by Domino. But browse around; you will find hundreds of them in short order. This collection of websites can become a marketing and public relations tool for you as you sell your ideas to your customers.
Too often Domino web applications crafted in the past were functional, but not pretty. That might have been okay ten years ago, but no longer. Today's customers expect the same kind of functionality from your applications that they see elsewhere on the Web. And there really is no reason why you can't provide it to them.
Take some time and build yourself a small application to hold the links. Eventually, roll this application to the Web so that the links can be shared readily with customers and others who are interested.
In this sample Domino Websites application, details about each website are stored in a separate document. The blue hotspots link to views which display lists of Commercial, Consultants, Government, and Other Sites. With sufficient privileges to the database, a user can add, edit, and delete these documents with the Notes client or with a browser.
Get certified in Lotus Notes / Domino application development
Honing your skills by doing is essential. The more applications you build and the more time you spend on this work, the better you should become at it. Experience is a great teacher.
But you do not have time to figure everything out yourself. So you must read and study what others have done, which is especially easy today with a fast connection to the Internet. Set aside some time every week (or each day if you can swing it) and graze the web landscape.
Commit yourself to preparing for, taking, and passing certification exams in Lotus Notes / Domino application development. If possible work through the Administrator exams as well. Effortful and extensive preparation should make it easier to pass the exams the first time. More importantly, preparation for the exams will broaden your understanding of Domino and teach you about features and techniques that you might not otherwise stumble upon by yourself.
And, of course, holding this certificate looks good on the resume.
Experienced developers rely on Domino Help. Be aware that there are separate help databases for each of the clients: Notes, Administrator, and Designer.
The Lotus Domino Designer 8 Help database contains over 9,000 documents. In it, you will find extensive information about features, language syntax, classes, limits, errors, tips, and code examples.
The code examples can be particularly useful. If you find some code that looks just like what you need, simply copy it into your application, and then modify it as necessary.
Especially if you are new to Domino, spend enough time with Help to be comfortable with where things are and how to find information on specific topics. The Contents view organizes the information like a book, by general subject area. Use the Index if you know what you are looking for the syntax of a specific @ function, for example. Use the Search feature when you are not quite sure for what you are looking. Beware of searching too broadly. Search for the term "web" and you will find over a thousand documents!
Once you are comfortable with Designer Help, try Designer's context sensitive help, which is invoked by opening or highlighting a design element and then pressing F1. Display forms in the Work pane and press F1 help on designing forms displays. Select a tab in a Properties box and press F1 help on that tab displays, and so on.
Consider using external editors and development tools
Designer provides basic editing for text, so for the most part, you can develop applications without using external editors. However, dedicated editors for HTML, JavaScript, Java, and CSS will provide you with conveniences such as syntax checking, color coding, validation, and ready-made functions which may appeal to you. If you develop code in an external editor, you will have to import the files as resources into your application or copy/paste the text into appropriate locations in your design.
You can reasonably get on without external text editors, but learning to use an image editor may be well worth the time it takes, especially if you do not have access to a graphic designer or a library of images. Almost any image editor will do as long as it saves images as JPEG or GIF files. (Designer can accommodate other graphic types, but JPEG and GIF files are natively compatible with the Web.) Although it may take some effort to learn, the open source program GIMP is a no-cost, feature-rich image editor. Find more information at the GIMP website: http://www.gimp.org.
In this book, except where noted, examples rely on only the native capabilities of Designer.
Create sandbox applications
New ideas for solving problems constantly present themselves. But introducing a new, untried technique into an existing application may result in many more problems than it solves due to unintended consequences and side-effects.
Create one or more sandbox applications in which to try out new ideas. Constraining new development this way facilitates isolating and resolving problems specifically related to the new technique. And if, at the end of the day, the technique does not live up to its promise, then nothing needs to be removed from the real application design on which you are working.
Create a personal cookbook
Solutions discovered or invented for one application inevitably find their way into other applications. Code snippets, strategies, and even entire agents are often reused to save development time and effort.
Keeping track of such ideas may be difficult over a period of years, especially if you work on dozens of applications or move from job to job. It might be inappropriate (ethically or legally) to keep personal copies of designs created for previous employers without permission, but it is certainly reasonable to keep detailed personal notes in one form or another. The tools are readily available: paper notebook, flash drive, optical disk.
Keep your notes organized and periodically review items in your cookbook. Revise and annotate. Include variations and caveats. As it is impossible to remember in detail all the code you will ever write, you will find your notes to be an invaluable resource.
Create a personal document library
As a Notes developer, you should always have access to the Notes and Designer clients, so creating a personal document library or a simple Notes application is certainly an option. You can use the standard Lotus Document Library template or you can simply create your own application with whatever features work for you.
One database might contain notes and descriptions. A second database might contain working examples of many techniques a private code library if you will.
The Web is a wonderful repository of ideas. Consider keeping a website (blog or Wiki) on which you can post code and ideas that may be helpful to others. Of course this approach may entail some expense and extra effort, but it is also a great way to contribute to the development community. And if you are a freelance consultant, it is also a way to market your skills.
Alternatively, consider contributing ideas to existing websites with blog entries or even entire development projects.
Adopt new language and terms
Over time, the language of Notes and Domino changes, as do the tools. At one time, the Domino Directory was called the Name and Address Book or NAB. The file that contains design elements and documents was called a database and is now referred to as an application. In Designer, the Design Pane became the Application Navigator. Of course, you will come across references that use the older language and some developers who continue to use deprecated terms out of habit or stubbornness.
Be alert for these changes of terms and the definitions which go with them. Be mindful of the old names, but use contemporary and correct vocabulary, just as you should use contemporary development techniques.
Pay attention to web programming developments and practices
Domino applications intended to be accessed with a web browser can take advantage of many contemporary web technologies like Ajax, CSS, and XML. In fact, support for these standards has been included in Domino for many years. As web technologies evolve, so does Domino.
So pay attention to non-Domino web technologies and strategies. Web-enabled Domino applications should be crafted using the best web programming practices.