The Undisciplined Notes Developer
Bookmark :
For my first post I would like to draw your attention to this article by Jeff Atwood.
This references Scott Koon's blog entry on developer discipline. I basically want to echo the sentiments expressed, and say that nowhere is this more relevant than in the Notes/Domino development world. I would argue that Notes developers have always had a tendency to a lack of discipline, largely because the way Notes itself grew up permitting, or what some would say encouraging, a do-as-you-please approach.
But what do I mean by discipline in this context? Well, I think it is fairly well summed up as "spending the time and effort to do things in an orderly way in accordance with best-practice." This means in each project actually planning for, and doing, requirements gathering and evaluation, design, and testing. It means having in place and using a robust change management process, source code control, version management and release cycles. It means having and enforcing coding and documentation standards.
Now you may say that your timescales are always so tight you can't do all of this. I say that not to do this is always a false economy.

Comments
Especially in shops with mixed technologies, the question is not IF we should have good discipline, but HOW?
Is it really effective to store a .ntf into VSS, CVS, Subversion, etc?
What if an app update had 100 changes, 99 of which were perfect and one failed. You cannot roll back just one change when working a binary, like you can (carefully) with text-based source. Nor would you want to keep 100 binaries to allow such function. Where is the appropriate middle ground?
Likewise, where do we draw the line between code and data? I've seen great apps with profile docs that control the program logic. Do you store versioned profile docs?
So it is all fine and dandy to declare that we should all follow best practices and be good little disciplined developers.
But unless you give details on HOW Notes people would do so, it is a fairly empty sentiment.
I look forward to continued posts here that may shed some light on these details...
Posted by Dave Armstrong At 02:49:53 PM On 09/19/2007 | - Website - |
Thanks for the comment. In response to your early points about options for source code control and version management in Level Notes, the answer is yes, as far as I am aware, Teamstudio does provide the only element level (rather than file level) solution. Our product is capable of roll back for an individual form, view, subform, agent, profile doc etc. to any previous version of that element. It also handles database level versioning and can be successfully integrated with other systems.
However, all of that is beside the point really. It is far from ideal, but you can establish an effective version management system for Notes .ntf files in ‘standard’ file based version management systems such as the ones you mention. In truth, you can even create a perfectly viable manual system that is reasonably robust.
What I was trying to say was that the disciplined developer will expend the time and effort investigating the issue and devising a system for (in this case) source code control and version management that provides necessary and sufficient control for their Lotus Notes designs. This is what ‘Just Enough Governance for Notes’ is all about – doing enough to meet the business needs, be more effective, mitigate risk and comply with regulatory requirements within the Lotus Notes environment. The undisciplined developer will just ignore the issue and hope it goes away.
I take your point about making such statements without backing it up with ideas about how to do it is an empty gesture, and in upcoming posts I and my colleagues will be offering more practical advice about tackling key issues.
Posted by Matt Fyleman At 08:46:31 AM On 09/20/2007 | - Website - |
I am sure once in eclipse IBM could pretty easily do this.
It would be great then I would not need to run 2 systems CIAO and CVS.
Or if CIAO supported non notes elements that would be cool.
Thinking about it maybe with Domino in Eclipse CIAO will do that as I would like CIAO to be an eclipse plug-in and utilise the eclipse framework for dialog boxes etc...
Posted by Neil At 05:41:30 AM On 09/27/2007 | - Website - |
Squillions of lines of LotusScript with no comments to tell you what it was meant to do.
Notes is just another development environment and it's false economy to cut out the spec. Later on down the maintenance cycle some poor sap will be struggling to work out what the code was meant to do, then fix the bug. Using comments to say what the code is about is very good practice as far as I'm concerned.
(I recently saw a 10 year old Notes system with no comments at all in the LotusScript, how the **** is anyone going to pick that up & fix/change it.)
Posted by sue At 06:18:25 AM On 09/27/2007 | - Website - |
Posted by Greg At 08:56:36 PM On 10/02/2007 | - Website - |
Anything that takes weeks or months to develop deserves the full documentation write-up and complete use of all controls. Hands down.
However lets not forget that Lotus Notes is a RAD tool meant for nimble turnaround. If the full weight of the "traditional" SDLC process is put on projects that take only hours or days development are we doing anyone a favor? Does a developer 2 years later need documentation for a 2 form and 6 view app? Would anyone ever choose Notes as a solution if it cost as much time and money as a .net app?
Posted by Brian Vincent At 05:04:34 PM On 11/29/2007 | - Website - |
1) RAD does not have anything to do with deployment. Just because you develop it in 2 hours doesn't mean you have to deploy that change instantly.
2) You make the assumption that the SDLC is a heavy bureaucratic process - but it doesn't have to be. No one can argue that the change you made doesn't have to be tested because testing is a continuum of activities. Sure, fixing a spelling error (which I am often found doing
As for the documentation comment - why shouldn't that application have documentation? Who developed it and for what purpose? Who owns it? This is all documentation that should be required for applications in production. If you don't have this, you don't manage your server or IT department very well. What I suspect is happening is that you *DO* have this documentation, but just isn't as formalized as it should be.
Final point is that non of this has to be expensive or time consuming....in fact , as an example, Agile practices don't ignore any of the SDLC, but help with processes that allow change to happen fast.
Posted by Craig Schumann At 10:14:28 AM On 11/30/2007 | - Website - |