Tuesday, February 24, 2009

Thoughts on the eProductivity Install...Smooth Sailing Really

As part of the eProductivity challenge that I'm working on with creator Eric Mack, I promised to blog about the process and my findings as I went along. I thought this would be very useful for those people that are interested in the promise of achieving higher productivity using Lotus Notes.

The first part of getting things done with eProductivity was to actually perform the install. This is very easily accomplished since this tool was designed specifically for Lotus Notes. You'll be using your production mail file, so the one thing you must be aware of first is that you need to have access to update the design. If you're not sure, check with your corporate IT department. Assuming you have the proper access, the install will consist of replacing the design of your mail file with the eProductivity template.

Right off the bat, Eric and team have done a nice job of fully documenting the install of the software. Of course, I wish there were some kind of easy installer for Notes apps in general, but baring that, having a good set of instructions for exactly what settings you need to have in your ACL, how to replace the design, etc., is great. I didn't need the instructions for replacing my database design, but I would feel totally comfortable with an end user taking the documentation and getting right to work. Once the eProductivity template has been applied, a wizard (nice use of UI design pattern here) appears to guide the user through the remainder of the setup process. This consists of accepting the license agreement, setting the initial preferences (where it is recommended you take the defaults unless you are a more advanced user), and updating the design of any folders you already have to add the eProductivity features to them. Again, this is nicely explained and should give the user a feeling of confidence when going through on their own.

After the installation of eProductivity is complete (a process that should only take a few minutes at most), opening your mail file presents you with the main eProductivity UI. The user interface was designed to the standard put forth by the design team at Lotus for Notes 8 (Basic). I must admit to missing the Notes 8 Standard views for their sexy looks, but that feeling was short-lived, especially in light of my improved productivity. When you open your mail after the installation, you'll see a couple of cool features right away. One is the "Tip of the Day". I find this to be quite valuable. Since most users (myself included) would rather just get to work than wade through a big instruction manual, the "Tip of the Day" allows you to learn more about the features of eProductivity in small chunks. You may not figure out all the nuances of the software from day 1, but by using the Tip feature, you'll soon learn many of the tricks and more advanced things you can do.

The Tip of the Day feature

Another key feature is the "Today" view, which gives you a quick, at-a-glance way to see what lies ahead of you for that day. I'll review this more in a future post, but basically it aggregates your calendar, due action items and tickler entries so you don't have to go through multiple views to find out what you should be working on today.

The Today View

So that's it...the installation for eProductivity is a breeze. I think the user experience around this was well thought out and allows the user to get up and running in very little time. In fact, it will probably take longer to download all the materials than it does to perform the actual install! :-) If the install is the easy part, what about using eProductivity itself? I'll be saving that for a future post. Let's just say that getting the GTD methodology right takes some time and dedication, but eProductivity seamlessly supports this methodology and so far has helped me to get information into the correct place better than any other system I've used before.

Labels: , , , ,

permalink | leave a comment

Thursday, June 14, 2007

Show & Tell Thursday: Download Edition (My Cup Runneth Over)

Since I promised at both ILUG and Lotus Developer2007, I figured I better get some of my example databases out here for you to check out. I've also received a lot of e-mail with questions about various concepts over the last few months, so those might be included here as well. Finally, I'm including other databases I've made available in the past on this post as well, just so this becomes a comprehensive index of all the downloads to date. Read down through the list and see if there are any goodies you'd like to have. If you find anything that's of real use to you and you'd like to show your appreciation, you can go help Eileen and contribute to her cause!

As always, feel free to shoot me a mail (chris AT interfacematters.com) if you've got questions. I can't guarantee I'll answer right away (or that I'll know the answer), but I promise I will reply.

Disclaimer 1: All of these examples are proof of concepts. While many of the techniques come from applications I've developed and am using in production, I strip all extraneous code down to the bare minimum so you can focus on the mechanics of how the technique works. If you choose to use these ideas, please remember to use error checking and applicable standards based upon your company's best practices.

Disclaimer 2: I never said I was a good programmer! :-)

Disclaimer 3: Snausages...they really don't taste that good...

Building A Wizard Using Programmable Tabbed TablesI like Wizards...both the kind that can do cool magic tricks like turn your wife into a horny toad (no, you pervs...a horny toad) and the "really helpful from a usability standpoint" kind. Wizards are great for walking users through a multi-step process one task at a time. They're very easy to create with a programmable tabbed table you pull up in a dialog box. This demo shows you how.
Notes Is Like An Onion...It's Got LayersHere is the example database that I used for my Speedgeeking session at ILUG. We can stay up all night, swappin' manly stories about layers and in the morning...I'm makin' waffles!
Advanced User Interface Techniques for the Notes ClientThis was a demo database that I used for my session of the same name at Lotus Developer2007. It combines many of the past demos such as drag & drop, cascading menus, ordering a squishee (i.e. embedded editors) and the Super Burrito Configurator (woo hoo)!!!
Cool DocsThe demo that I put together on the plane on the way to Lotusphere. Just a quick idea of how a database experience can be changed in somewhat dramatic ways with just a little tweaking of the UI. Let your imagination be your guide! :-) Keep in mind that this is not a full solution...that's something I hope to work on it the future. This sample database also shows you how to easily collapse an embedded, single category view and includes code for creating "expand" and "collapse" functionality for the view as well. A nice usability touch for your embedded elements.
Fun With the DOM...Playing With The Action BarA sample snippet that demonstrates how you can use the Document Object Model to manipulate HTML elements. Since the Domino-generated action bar is just a table, you can get a hold of it and its child elements and do things like change the links, change the text based on the value of a field, turn it into a cascading menu, etc. Read the article and then follow along with the sample db.
Application Activity TrackingDon't forget this nifty little project on OpenNTF. Not only is the concept fairly useful, but what's nice about this one is the activity dashboard that summarizes all of the detail in an easy to read manner. On a related note, don't miss Kevin Pettitt's SuperNTF application, which combines this project and a host of others into a really nice framework for Lotus Notes.
Lotus Developer2007 CSS ExamplesFrom "Advanced CSS Techniques for Domino Web Applications". This zip file includes the stand-alone CSS and HTML files I was using to demonstrate some of the concepts like positioning and advanced selectors. The main Domino-based examples are in the demo database from the CD.

Now it's time to go record another segment for the Taking Notes podcast. That Bruce guy is a task master! :-)

See you on the flipside...

P.S. I'm using box.net to host these files. I tried their service quite a while back and it's really improved a lot. Very slick, easy to use interface. Kudos to them!

Technorati tags: ,

Labels: , , , , ,

permalink | leave a comment

Monday, May 14, 2007

Enhancing Productivity With Links

Hi All. I hope all the moms out there had a nice Mother's Day. Now it's back to work, though, so it's time for another post. This is a simple one today, to kind of ease into things after the relaxing weekend! :-)

It seems there are a lot of people who know about .NDL files and an equal number that don't. If you haven't created or used an NDL before, read on. If you have, you might want to skip to the bottom and see a really cool way to use them.

Creating an NDL

An NDL file is basically a document, view or database link that can reside out in your file system. It is represented by a Notes icon and when clicked will open the corresponding element. It will probably make more sense to you if you see it in action, so try the following steps:

1. Create a link to the view, document or database of your choice in the standard way (e.g. Edit - Copy As Link - View Link).

2. Open Notepad (or your favorite text editor) and paste into the body of the new document. You should see some XML looking stuff, which is how Notes represents a link.

3. Save this file, giving it any name you choose (a descriptive name such as "Tasks By User View" is best) and using .ndl as the file extension.

Take a look at the location in which you saved the link. You should see the icon for the file you just created.

Now double-click the link and check out what happens. Takes you right to the element in question. Pretty cool!

Uses for NDLs

NDLs can have many uses, but I would imagine the primary reason most NDLs are created is to send links to users in other mail systems. I know in the past that the Exchange Connector used them and of course CoexLinks does this too. I know several companies that also use NDLs on their intranets, allowing users to launch Notes documents directly from the browser.

These applications aside, I think that NDLs can be very handy from a productivity standpoint. In the old days, I used to have a single directory that I would use to store NDL files that linked to documents and views I used all the time. If I was in the middle of a task and needed to switch to one of those elements, I would just Alt-Tab to that open directory window and click the necessary NDL. If you spend some time thinking about the items in Notes that you use frequently, you'll probably come up with a pretty good list. Creating NDLs for each of these elements is a simple way to speed access to them.

You might wonder why you would use this method over, say, just creating a document in Notes where you store all of your links. This is probably just as good an option as using NDLs, but I chose this approach for two reasons. One, it was faster for me to Alt-Tab to the open window rather than navigating to another Notes document and two, it allows me to have access to these elements quickly even when I'm not in Notes. In fact, if Notes isn't open, invoking the NDL will open the client and then navigate directly to that element. From a productivity standpoint, this seemed to work very well for me. However, my life wasn't quite complete until I found ActiveWords.

NDLs on steroids...Combining them with the power of ActiveWords

Watch out, 'cause I'm going into all out fanboy mode for a minute. One of the greatest software purchases I ever made was a little product called ActiveWords. ActiveWords is a program that allows you to truly take control of your computer. Basically, when ActiveWords is running, it is monitoring everything you type, no matter where you are. When you type a word or phrase that you've setup as an ActiveWord, you can immediately trigger an action to happen. For example, when I type 'xl' and then hit the space bar twice, Microsoft Excel launches. If I type 'gm' and double space, my browser launches and takes me to Gmail. Whenever I want to insert my signature into a document, I just type 'sig' and bam...it appears. ActiveWords even has a cool module that corrects common spelling errors as you type! There are many types of actions that you can associate with ActiveWords. You can use it to substitute text, launch programs, open directories, etc. I don't want to turn this into a big ActiveWords commercial, but trust me when I say you need to do yourself a favor and head over to their site! Check out the demos and then download the free trial. It really is a revolutionary product.

Anyway, back to the point of the post. Combing ActiveWords and NDL files has allowed me to become even more efficient when working with Lotus Notes. Basically, when I have a commonly used link, I create the NDL file, place it into my NDL directory and then I associate an ActiveWord with that NDL. I can be most productive when my flow state isn't interrupted when trying to find information and I find that this combination is incredibly powerful. Let's say I'm working on a document and I need some detail about one of the servers in my domain. In a traditional scenario, I would have to open the NAB, navigate to the Servers view and then find the info I was looking for. Using NDLs and ActiveWords, I can maintain my context and just type 'server' and trigger ActiveWords (I do this by hitting space twice, although you can change the trigger in the options). The 'server' ActiveWord is setup to open 'LNServers.ndl', so as soon as I trigger it, the NDL is executed and the NAB opens right to the view I need. If you consider how often you access common elements in Notes, this simple action can add up to some significant time savings.

As with most of my posts, this one was written in response to an e-mail I received. Perhaps you'll find NDL files to be as useful as I have. If you have another approach that you use for accessing commonly needed elements in Notes, please feel free to share in the comments. If you have any other tricks for being really productive in Notes, I'd love to hear those too. If you're interested in a live demo of ActiveWords, please don't hesitate to ask. You can find me at the upcoming ILUG 2007 and Lotus Developer 2007 conferences. Cheers!

P.S. I have no stake in ActiveWords except for being a very satisfied customer. It's a software package that performs one particular function and does so exceedingly well. I highly recommend checking it out. I believe the purchase price is very reasonable for the value it adds.

Labels: , ,

permalink | leave a comment

Thursday, April 19, 2007

SnTT: Improving The User Experience With Wizards

I seem to get a lot of my blog post inspiration from questions I get asked by other developers. Someone asked me the other day about a dialog-based wizard in one of my applications. Specifically, they wanted to know how I displayed the dialog box without any buttons (OK, Cancel, etc.). I told them that this was a parameter that can be specified in the call to the dialog box and that it was an option introduced back in R5! As you can imagine, they were quite surprised. :-) It's certainly a good idea to take a look at the documentation once in a while. I've always thought that the Notes documentation (at least for development) was quite good. In fact, I tend to browse it from time to time just to see if there's something I've missed.

Anyway, I was going to use this opportunity to talk about designing a wizard with a programmatic tabbed table, but a quick search shows that some very smart people have already talked about this. So, rather than re-hash what Chris and Bill already detailed so well, I thought I'd just take a minute to explain the reason why I use a wizard-based approach in many applications.

I know it's hard to believe sometimes, but your users don't really care about the work of beauty that is your backend code. They're not interested in how it works, that you're using the latest ajax technique or that you've been able to optimize the database to fit 20% more data. Nope...they care about one thing when using your application...how easy it is to get in, get their work done and get out. I see my ultimate goal as a designer to make the UI of my applications so transparent that users "just get it". You want to try to get the interface out of the user's way so they can just perform the task at hand and get on with what actually makes the company money.

Especially in Lotus Notes, this is oftentimes easier said than done. Many interface elements are unintuitive (I'm talking about pre-Notes 8, of course), menus offer a confusing array of choices, the context menus are too long :-), etc. Whenever I am faced with a design that is going to require the user to either a) have some advanced knowledge of the Notes client interface or b) require several steps that would invariably mean that I would have to write documentation, I immediately turn my thoughts to building a wizard.

Let's take a very common example: importing data into Notes from Excel or some kind of file. We do this all the time. I decided a long time ago that never again do I want to try to explain the steps of importing data "the hard way" to a user. You know what I'm talking about.

1) Make sure you know where your spreadsheet is on your hard drive.
2) Go to the File menu and choose 'Import...'. No, the File menu. See it up there in the top left corner of your screen? No, below that little icon...Yep...that's it.
3) OK...now in that dialog box, select 'Lotus 1-2-3' as the file type. Wait, you did save your spreadsheet in 1-2-3 format, right?

We've all been there...

Enter the wizard. Wizards are a great device for walking a user through a multi-step process. In the case of importing data, I put the burden of work on myself as the developer rather than the user. In my mind, the user should be able to just say "Here's my file; now go do the work!". Yes, this entails more effort for the developer and I'll say yet again that I believe 100% that this extra effort is worth it. I understand we live in a RAD environment, but that doesn't excuse us from making the user experience the best it can be.

There's a million and one ways to do something like this, so I won't be displaying any code. I would like to show you some screens to illustrate what I'm talking about though.

In one of my applications, this is the first screen the user sees when they select the option to perform the monthly processing task.

Here, they are prompted to begin the import. Because of timing issues with the ERP system, they need to do this step manually, after they receive notification that the import file is available. Behind the scenes, my code is checking if the file is really there, verifying that it is valid, performing the actual import, etc.

Once the import is complete, I want the user to make sure that the data looks OK. It could be that the technical processes all worked correctly, but perhaps the data is bad for some reason. This step allows the user to apply their specific business knowledge to make sure it is safe to continue.

In the final step, the user kicks off the agent that does all the heavy lifting. Although there are many things going on here, the user's job is easy from a standpoint of interacting with the application. "Click three buttons and I'm good to go."


Going back to the application I mentioned at the very beginning of this post, here are some screens from a dialog-based wizard.

Notice that removing the buttons from the dialog makes it look nice and clean and certainly "non-Notes like". (Hint...using simple photos in place of clipart or plain pages can help make a design look more polished and professional. Bonus points are given if the photo helps convey the meaning of the current context.).

In this particular application, it was necessary to allow the user to import e-mail addresses from their contacts and their mail file into the database. Again, we made the multiple steps involved to do this seem really easy to the user, which makes them really happy. Users perform this task infrequently, so an additional benefit with this app is that by having the wizard available, the user doesn't have to remember how they did the import the last time or (even worse) have to dig through their mail file to find the instructions!

Wrapping up, the purpose of this post, as with many of my rantings, is to try to encourage you to keep the user experience in mind as you build your applications. Off-loading the hard work to the technology is what makes us valuable and allows our users to be more productive and do value-added work. In the end, this is a win-win situation for us all.

Labels: , , ,

permalink | leave a comment