« Notes Developers Making Changes to Production Apps | Main| NEW! Script Browser 3.00 »

A Recommended Notes Development Environment: Part 1

In my last post, Application development in production anyone? I discussed the pitfalls of developing in production. Mike Wetherbee, in his post Lotus Notes Environments--One-Tier, Two-Tier, Three-Tiers and More! expanded on that and discussed Notes environments. I would like to take it further and explain what, in a perfect world, a Lotus Notes development environment should be. (more)

Three servers: (See image below) Development server:
  • Same Domino version and OS as production.
  • Should have a logical directory structure (I.E folder for source code, Sandbox folder for developers, etc)
  • Does not need to be as robust as production. (Could be partitioned with test server then hardware needs to be same as production).
  • Developers have full access to their own databases and templates on Dev server.
  • Administrators have full access to development databases and templates.
  • Should not be replicating with production (Except NAB if in same domain)
Test Server:
  • Same Domino version and OS as production.
  • Same directory structure and security as production.
  • Same hardware as production (May be partitioned with Dev server).
  • Developers editor access to production databases and no access to templates
  • Administrators have full access to production databases and templates.
  • Test users have the appropriate access to test the applications.
  • Should not be replicating with production. (Except NAB if in same domain)
Production Server:
  • Developers have no, or editor access to production databases and no access to templates.
  • Users have the appropriate access to the application.
  • Administrators have full access to production databases and templates.

    Coolidge_10_30_07.jpg

    This has always worked great for me, and it should for you as well. Feedback, suggestions, war stories are welcome. In part two I will discuss ways of moving code from dev to Production, and all the things to think about along the way.

Category

Comments

1 - I would add a Pre-production environment when possible. It's not a must, but in my experience it would really help in the testing phase.

The problem lays on the creation and mantainance of the environments:
- Developers create the minimum amount of users needed to test their code. That is, all is configured to perform as expected.
- UAT contains all the users necessary to perform unit and integral tests, but rarely mimics the entire Production environment configuration.

Pre-production would solve this issue, but moving code to production would be an odyssey.

2 - HI Pablo thanks for your input. I must say I have seen UAT environments that do not match production, but that is why my recommendation is that the test environment MUST match, this is critical to ensure the application will function in production. Adding another environment just adds to the level of complexity, as you stated

3 - The post is great, concise, almost perfect.

About Test Vs. UAT i agree about the fact UAT is complex to achieve and that a test environment must match production.

When possibile when it's possibile i tend to take some production data to the test environment (so we also get the real complexity of production, not just test data).

So the process is:

1. Develop
2. Copy data from production to test
3. Apply template changes
4. Apply data updates trough upgrade agents
5. Test
6. Take into production template changes
7. apply data updates with the same upgrade agents.


4 - Server/Domain cross certification does increase convenience, but it also diminishes the walls between the environments. My gut feeling is to make sure any dev or test environment is not trusted by production.

5 - Part two?

6 - John,
Do you work with TeamStudio CIAO! How would you apply that product to the diagram you have provided? Can it be used to both watch changes to the Development nsf and the promotion of templates? Recommendations?
Thank you.

7 - @Larry
Yes CIAO will work in both cases you have mentioned. It does watch the design as well as have basic promotion capabilities.
Feel free to contact me off-line if you need more help

John

8 - John, how do I contact you off-line.

9 - Just wondering on your thoughts on using 'Live' Personal and Confidential data in the Development and Test environment. We're putting together a close fit of separate Dev & Test environments mentioned on this blog. However, one policy standard we have to abide by is not using Live Personal and Confidential data in the Dev and Test environment(with a procedure in place in case we need to use Live P&C data in order to resolve a support issue) In the main, all our developers are happy with these guidelines as ultimately we're treating customer data with respect and adhering to Data Protection guidelines.
Just wondering if anyone else has experience of similar working practises and also wondering if there are any Data Sanitizing products available to randomize the Personal&Confidential data contained in a database?

10 - @Larry Sorry been off site call me @ 1-866-695-2246


@Steve. Personal/Confidential data is not recommended. This is fairly common. I have written agents in the past to "sanitize the data" they are not too hard to create. as for Live data that is not as above, I think is fine, less work for me and I get truer results in testing. Again only If it is NOT confidential or personal.

Feel free to contact me to speak about it

John

11 - @9 Steve - Using 'real' data in test is a very bad idea. I worked for a company (some while ago) where we used real customer data in our QA environment. We accidentally sent out our beta release to 6 customers WITH our customer data in it. This was long ago, so there were no legal issues that came up. It was tremendously embarrassing though.

We solved that problem rather easily though, but randomly sorting each column of data and reloading it into our test system. This allowed us to quickly get a lot of data without having to create it. It was mixed up enough to remove any chance of identifying real company information. We even added records from our prospect database so you couldn't even be sure you were identifying a customer. Easy solution to what could have been a very ugly situation. And if that happened today, I'm sure it would be a lot uglier, and most likely more expensive than it turned out to be for us then.

Scott

Post A Comment

Feeds

Custom Button Custom Button

Category Cloud

Disclaimer

The views expressed by the authors on this blog do not necessarily reflect the views of Teamstudio, those who link to this blog, or even the author’s mother, father, sister, brother, uncle, aunt, grandparents, cousins, step relations, any other blood relative - and sometimes not even the author himself or herself.

Comments on this website are the sole responsibility of their writers and it is assumed those writers will take full responsibility, liability, and blame for any libel or litigation that results from something written in, or as a direct result of something written in, a comment. The accuracy, completeness, veracity, honesty, exactitude, factuality and politeness of comments are not guaranteed. Oh, how they are SO not guaranteed.
en-us,en;q=0.5OFFCCBot/1.0 (+http://www.commoncrawl.org/bot.html)38.107.179.214www.getthemostfromnotes.comHTTP/1.180Lotus-Domino/tsblog.nsf/d6plinks/A_Recommended_Notes_Development_Environment_Part_One