*angry* Why must have Domino developers reinvent the wheel?

Hi folks!

Yes, of course, we do reinvent the wheel just every day, because business budgets are not available :wink:

But what I mean is, that Domino has so much nice and pretty good features, Lotus/IBM restrict access to some features, they have already implemented!

Just for my last and very frustraiting example (sure there are many more examples since release 4.6x):

As you know, Lotus/IBM has give the community the very cool MIME LotusScript classes in release 6. But there is just one simple and very easy method, that they have not give to the public:

Set NotesMIMEEntity = NotesRichTextItem.ConvertToMIME

Ok, it’s surely no simple task, but the code for doing that exists since R5!!! The router as well as the Notes client are able to do this on-the-fly when sending messages!

Is this a marketing decision? Are they anxious in not selling new releases? Or is it just forgetfulness?

Marc

Subject: what if it doesn’t exist?

i may be wrong but perhaps in this case the simple answer is that the code is just not there, at no point does the client or server directly render CD to MIME, they both do MIME to CD (or just render it as is).

the router task on the other hand does because that’s one of it’s jobs, converting messages into MIME to get sent out to the internet. moving code from one program to another is not exactly an easy thing to do without breaking something.

i’m pretty sure the client has a seperate router task (not part of core code) as well when sending internet mail but i could be wrong.

Subject: RE: angry Why must have Domino developers reinvent the wheel?

I too, before I joined IBM, had noted that there were a lot of features for which the code already obviously existed, that just weren’t being exposed for developers to use.

Now that I’m a member of the Lotus development organization, I can see why that happens. It’s really a matter of cost/benefit analysis.

We have only so many developers, testers, support staff and tech writers available to turn something into a developer-usable feature. On the other hand, we have a practically unlimited supply of feature requests.

If you haven’t done it, it might not seem obvious, but implementing something as a programming language feature requires a considerable amount of time and effort, over and above the time and effort involved in doing it one time to work in a specific situation internally.

You have to plan exactly how the feature is going to work, and not make a mistake. It has to continue to work the same way going forward, to be supported in all future versions. The planning effort may be significant, because you have to hear from the sort of people who need to use the feature, consider their input, and come up with something that’ll be acceptable to as many as possible.

You have to formally spec out how the feature will work, so that the testing group – a different set of folks – will have a basis to create test cases.

You have to create the test cases. The test cases for a language feature must be much more thorough than for internally used code, because we can predict exactly how internal code will be used. The only thing you can be sure of when you add something to LotusScript is that developers will use it in ways you never intended nor foresaw.

The developers have to review the test cases to make sure they provide good coverage.

You have to be prepared to execute them against all future versions of the product, and to hold back release of the product if the feature breaks, until it’s working, so as to avoid crunching existing applications.

You have to document the feature, which involves a third group.

You have to be prepared to support the feature forever, which may involve training support staff, writing support procedures and technotes, or even adding support staff indefinitely. You must be prepared for the increased volume of service calls that will result from people trying to use the feature for the first time, who have either not read the documentation, or have read without comprehension (or when the documentation was in error or incomplete, as very occasionally happens).

Given the amount of planning and effort that has to go into making a capability into product, the development managers have to make a tough call for any feature that’s being contemplated. They have to consider not only the cost/benefit – are we going to make back in increased sales/customer retention what we spend on this feature – but also the opportunity cost. If we set our people to work implementing this, what other possibly more valuable features and bug fixes will not get into the product in time for the next release? It’s not like we’re sitting around looking for something to do here.

As a developer, you have a particular perspective on the product that differs from that of our development managers. Your feedback is important, as also is the feedback of administrators, IT managers, and the business people who actually make buying decisions. In fact, customer feedback is considered more important in this regard than suggestions from IBM’s developers. You guys are out there on the front lines; you know what you need better than we do. I can put in a suggestion that this be considered as a feature (or add your input to it if the feature is already in consideration), but my suggestion doesn’t carry much weight unless a customer is making the case for it. If you can make a good business case for the addition of this feature, I will put in the feature request, but you have to be the one to make the case – I can’t speak for you. You can send me email about it if you wish.

Put yourself in the position of an IBM development manager who will make the decision, and frame your arguments in terms that are meaningful to IBM from a business standpoint. Keep in mind that these people try to put themselves in our customers’ shoes to figure out what will sell. It may seem obvious to you that a particular feature is very desirable, but you have to make the case that there’s a decent-sized audience for it besides yourself personally, that would make it more important than other things we could spend our time doing.

For instance, is there a particular class of application, with at least moderate business value, that can’t be done without the feature, or that would be doable with much less effort? One of our big selling points for Domino is that the development time is less for a comparable application, than for our competitors who shall not be named. Increasing our lead in this department would probably help our sales. Or, if there’s an application that our customers are paying for now, that they could develop in Domino (or get from OpenNtf.org) if only the feature was available, that reduces TCO, another selling point. If the feature would allow the development of applications that are easier to use than is now possible, that increases end user satisfaction and productivity, which is also a selling point for our customers.

You might not get what you want – there are a lot of people arguing for their requests, and the managers can’t go along with all of them – but all of us Lotus developers are putting in overtime developing stuff that we hope and believe is going to be most useful to our customers.

Regards,

Andre Guirard

IBM Lotus Software

Domino Access for Microsoft Outlook team

guirard at us dot ibm dot com

Subject: oh, domino for ms access?

will it use MS Access instead of DB2?

Subject: Sorry, corrected .sig. :slight_smile:

Subject: Don’t hold your breath

Using a desktop-oriented database that has to be coerced in to being multi-user, whose future at MS is pretty uncertain, vs. an enterprise-class database that can run on anything from a handheld to a mainframe?

Subject: RE: Don’t hold your breath

Domino for Microsoft Access sounded more like there is going to be a new platform for Domino… Fortunately that turned out not to be the case.

As for DB2 from handheld to mainframe – for me it sounds more like there are a number of products that incidentally share the same name and share a subset of features and APIs. But if they really can be administered in the same way and work together then who cares.

Subject: angry Why must have Domino developers reinvent the wheel?

To share my opinion, I don’t think it is necessary a result of no marketing, but I think it is a result of the IT industry being cheap. I do not mean it in a negative way, but many IT organizations want to cut budgets/lower costs. An end result is that training for these organizations is not THE priority. LDD is an attestment to this. There have been many posts of people wanting to x but they are new or are not able to go through the training.

Myself, I took the time in R6 to learn the new features rather than take a R6 developer update class. The investment was huge – my free time-- but in the end I think it paid off because I was able to land a better IT job recently.

I totally agree with you Marc with the reinvent the wheel, but I think the result is for IT organizations being short sided. I don’t think that marketing-wise it is going to be effect (if you mean television commercial or billboard ads; e.g. my non-IT friends think the Microsoft commercials showing how someone made a powerpoint presentation that can self update was stupid. I think the marketing would be better via technical articles or having update IBM offered classes which go over these new items. When I did my R5 development update class MIME was not covered. Other topics such as HTTP development or the group scheduler design element were more important (in IBM’s mind) than MIME; to wit, there were not any MIME or lotusScript question on the R5 development update exam. The ā€œother side of the coinā€ though will the Lotus Notes / Domino developer community know how to find these resources if IBM marketed them. My guess would be no if a potential domino developer newbie did not know there is a LDD.

This is my take…

Subject: RE: angry Why must have Domino developers reinvent the wheel?

Joe, I think you missed the original point a bit. The problem isn’t that there’s all sorts of neat features within Domino that folks don’t get trained on, it’s that many of these things are never exposed by IBM in the first place.

IBM has never considered Domino to be an application development platform. You see neat features like iNotes that make the Domino platform do great things, but those APIs are never exposed or documented to allow Domino developers to use those features in their own applications.

How many years now have we been crying for a decent file upload applet? Or the ability to have HTML in a rich text field render natively in the Notes client?

Instead, we get packaged features from IBM and their idea of the Domino developer is someone who will tweak the edges of those applications. No, thank you.

If, in IBM’s world, you want to do real development, there’s a package out there called WebSphere that they’ll be happy to sell you. There’s a ton of stuff you can do with it, because it’s an open and exposed platform. (Well, J2EE is and the beauty is that once you get experienced there you can ditch that bloated pig and free yourself from IBM or any other vendor.)

Domino stopped being treatled like an appdev platform once R5 came out and the new features started being packaged in whatever ā€œproductsā€ IBM released on top of it, instead of being made part of the standard, documented API.

Cheers!

Luke

Subject: RE: angry Why must have Domino developers reinvent the wheel?

Isn’t your frustrations more because you are not getting APIs that you want? The initial topic is that IBM is not marking the features you can use within Domino natively. I agree it is not apparent, but there is documation out there about that is new and what is being offered. Unfortunately the document is not necessary in a red book format, but it is still there. I can not atest to the API as I don’t use them.

I don’t agree with your point that Domino is not being treated like an appdev environment. Because they are allowing more options to developers and extending LotusScript classes to Java and Javascript. If it was not being treated as a serious app dev environment, we would not have seen features. Moreover with any company I am sure there is not a grand staff of coders to work on every feature request as well.

I agree there is much for improvement.

Subject: RE: angry Why must have Domino developers reinvent the wheel?

Extending LS classes to Java? I’ve heard IBM go on for years about how Java was so important to them, and now 8 years after the first Java API we still don’t have the UI classes mapped and have to do AWT to get any semblance of foreground stuff.

Your claim that if Domino wasn’t treated as a serious appdev platform we wouldn’t see new features at all is extreme. Product management needs to keep new stuff coming, but there was nothing in R6 from R5 that made me sit back and go WOW! There were a number of @-formula revisions, but a lot of that was doing what they should have done for R5, only 3 years too late.

How many of the neat things used in iNotes have been exposed and documented through the API, wether it be LS, C++ or Java? I tried writing a java server add-in this week at home and found the process miserable and completely undocumented.

Andre raises a good point about the standard cost-benefit analysis exercises that go on at IBM and the litany of tests and steps they need to go through. It’s why Notes has pretty much stagnated over the past five years, and it’s why folks like myself have moved on. The only reason I have any interest at all is that my personal web site runs on Domino. Professionally, it doesn’t exist for me.

I will say that had the some cost-benefit exercise been applied by the folks at Lotus 15 years ago, Notes would never have existed, and it’s why IBM has not been able to incubate and launch a decent software product in 25 years.

Luke

Subject: RE: angry Why must have Domino developers reinvent the wheel?

I think that you are overreacting just because the features that you want were not the ones chosen to be put into Domino.

The features that you have mentioned would be of limited value, so I can see why IBM would choose to put their work into other areas.

Specifically, why would you write UI in Java to begin with? Use the Notes UI for Client apps, JavaScript for Web Apps. If you were to re-write UI functions in Java, you really would be reinventing the wheel.

Likewise, why do you need a method to convert to MIME? As you said, the router already does it. Let the router do its job. And if you need it for some reason other than mail routing, why does it have to be MIME? Choose another format.

I am not trying to criticize your points, but I am trying to point out that IBM has made valid choices in its feature set. If you feel something is missing, you may want to look at your design – there is probably another way to reach your goal.

Subject: RE: angry Why must have Domino developers reinvent the wheel?

Limited value to you, maybe. Your post seems to be based on the premise that IBM is smarter than all of the application developers that use Domino. Why would I want to do something that IBM didn’t think was important? Because my needs and goals’ are different from IBM.

Why do I want to write UI Java code? Because I want to run code in the Notes client where there’s no native LS API, and there’s only Java code to do it. (And don’t get me started on the LS2J kludge). IBM obviously doesn’t agree with you on the JS for web apps, since they support native JS form validation in the NotesUI.

Your premise appears to be that if IBM didn’t want to support something, I obviously shouldn’t be doing it, or there’s something wrong with my design. Apparently so, and I’ve recitified that problem. I’m not alone.

Luke

Subject: RE: angry Why must have Domino developers reinvent the wheel?

You are rephrasing my premise in a way that adds a judgmenetal quality I did not mean.

My premise is that if IBM decided that the feature in question was of limited enough value that their time/effort was better spent on other features, you should look into getting your tasks done by another method, whether your original plan was valid or not.

There is always more than one way to get something done. If the way you selected doesn’t work, find one of the others.

Subject: RE: angry Why must have Domino developers reinvent the wheel?

Fair enough - my apologies.

And you’re right, there are many ways to skin a cat. :slight_smile:

cheers!

Luke

Subject: RE: angry Why must have Domino developers reinvent the wheel?

No sense to argue over anything. I just will remind you that new features are extended beyond @ functions – there are many lotusscript changes and the database resource as well. The database resource alone is a good leap from DECS.

But you don’t necessary see that. Fair enough, you have your views, but I don’t think you can sit back and say there is nothing new in R6 or R6.5.

Subject: angry Why must have Domino developers reinvent the wheel?

I think you may be wrong about the reason there is no ConvertToMIME method. There was a feature in the R5 betas called ConvertToHTML (or something like that), and it was pulled, so it certainly wasn’t that it was technically unfeasible. I think the issue was more that giving people half a hammer may be worse than giving them no hammer. I have a fair amount of experience in this area, since our Midas Rich Text LSX does have a ConvertToMIME method, and it has taken a tremendous amount of work to make it customizable enough to meet real world needs. It sounds good to simply do what the router does, but the router is taking a very constrained situation and dealing with it. Using the same function in a different sort of database with different requirements forces different decisions, and IBM may not have been ready to take on the implications, which may be much greater than you think.

Besides, you might need to blame me instead of IBM. IBM frequently sends people to us to do HTML generation, MIME generation, exporting and that sort of thing, including big corporate customers who work with IGS, so part of the reason they may not have added the functionality is because they had a BP providing that service who relieved a bit of the pressure for them to do it. Maybe not, but maybe so.