43
© 2013 RunningNotes COLLABORATION PARTY OF ONE: WHEN YOU'RE BOTH THE ADMIN AND THE DEV Kathy Brown, PSC Group Jess Stratton, Solace Learning

Collaboration Party of One

Embed Size (px)

DESCRIPTION

When your administrator and your developer are one and the same, and they’re both you, things can get confusing. As the administrator, you’ve got a lot of power. Frequently, the role of administrator is to lock things down, keep the server running smoothly and tune performance. As the developer, you want a lot of power. You want unlimited agents to run anytime you want, as frequently as possible, with little to no limitations! So how do you reconcile these opposing needs when you have to play both roles? We’ll show you how to use separate IDs, location documents and other failsafes to make sure your party of one is successful!

Citation preview

Page 1: Collaboration Party of One

© 2013 RunningNotes

COLLABORATION PARTY OF ONE:WHEN YOU'RE BOTH THE ADMIN AND THE DEV

Kathy Brown, PSC GroupJess Stratton, Solace Learning

Page 2: Collaboration Party of One

© 2013 RunningNotes

2

Agenda■ Introduction■ Avoiding Pitfalls of Going It Alone■ Reaping Rewards of Being On Your Own

Page 3: Collaboration Party of One

© 2013 RunningNotes

3

Who Are We?■ Your Collaboration Hosts

─ Jess Stratton‒ IBM Lotus Domino Consultant (both a developer and admin)‒ Trainer (anything anyone will let me teach)‒ Tweeter (@NerdGirlJess)‒ Blogger (momelettes.com, anywhere else anyone will let me write)‒ Autocrosser (MINI Cooper S, anything else anyone will let me drive)

─ Kathy Brown‒ Application Developer (and admin dabbler)‒ Author (Lotus User Group Dev Tips Newsletter)‒ Tweeter (@RunningKathy)‒ Blogger (runningnotes.net)‒ Runner (daily, since June 1 2009)

Page 4: Collaboration Party of One

© 2013 RunningNotes

4

Why Are We Here?■ If you're here, you are probably the developer AND administrator at your

organization.─ Congratulations! You're probably one of the most popular people at your office!

■ You probably have ALSO learned the danger of dabbling at one point or another.─ Your ID file? The one you log in with? It's probably the single most powerful ID file in

your office.─ You can quite easily cause a time-paradox, the results of which could cause a chain

reaction that would unravel the very fabric of the space-time continuum and destroy the entire universe!

‒ (Not really. But you can write some pretty destructive agents!)─ We'll help you minimize these dangers.

■ However, you've probably also discovered that being both the administrator and developer is Pretty Darn Awesome.─ If you haven't, we'll tell you why it's awesome!

Page 5: Collaboration Party of One

© 2013 RunningNotes

5

Sound familiar?■ When you hear people talking about their teams of IT people, dev

teams, and admin teams, you probably feel like their offices look like this:

Page 6: Collaboration Party of One

© 2013 RunningNotes

6

Page 7: Collaboration Party of One

© 2013 RunningNotes

7

And then there's you...■ You're alone.

■ The admin and dev all rolled into one, and so you feel a bit like this:

Page 8: Collaboration Party of One

© 2013 RunningNotes

8

Page 9: Collaboration Party of One

© 2013 RunningNotes

9

The Good News■ When things break, you don’t have to wait for anyone else to fix

them!

■ You can write code to do your own monotonous, repetitious admin tasks for you!

■ You are a well-rounded individual who can probably tackle anything anyone can throw at you!

■ At parties, once people find out you know anything about computers, you will become the most popular person there!

Page 10: Collaboration Party of One

© 2013 RunningNotes

10

The Bad News■ When things break, it’s probably you that broke it in the first place.

─ The silver lining: You won’t waste time blaming other people or arguing.

■ It’s easy to forget your “higher powers” and you can do some real damage carelessly!─ And surprisingly fast...

■ You can’t even make it to the office bathroom without your entire organization stopping you for questions on the way.

■ You should never, EVER, under any circumstances, tell anyone at a party that you know anything about computers.

Page 11: Collaboration Party of One

© 2013 RunningNotes

11

Agenda■ Introduction■ Avoiding Pitfalls of Going It Alone■ Reaping Rewards of Being On Your Own

Page 12: Collaboration Party of One

© 2013 RunningNotes

12

Pitfall 1: Your ID file can and will be used against you!■ Imagine this scenario:■ You are currently playing the Developer role, making a change to a

database.─ Maybe you are getting ready to upload it to the server. It really doesn't matter.

■ When, suddenly, the phone rings!─ “Can you reset my password?”─ “Can you get rid of these replication conflicts?”

■ Your brain wasn't made to switch multitasking roles this quickly.─ OOPS! You ran the wrong agent.─ You may have also been in the wrong database when you made that change.

■ Bottom line: It's too easy to do damage when you are being pulled in fifty different directions!

Page 13: Collaboration Party of One

© 2013 RunningNotes

13

The Solution for Pitfall 1■ You need TWO ID files.

─ One is used for mail, other daily use and Admin tasks.‒ It has your super-bionic ultra-powerful administration rights.

─ The second ID file is for development.‒ It is to be used on your Sandbox server.

• We will talk about THAT later!

■ Even though you are one and the same person, assume the Business Process is still that of a Dev-Admin hand off!─ Use your developer ID to make changes on the sandbox server.─ Use your admin ID to sign or bring those changes over to the production server.

■ This system of checks and balances will help avoid missteps.─ And will help your multi-tasking mind correctly break out of each task.

Page 14: Collaboration Party of One

© 2013 RunningNotes

14

Solution Bonus!■ Users can use your Developer ID's Inbox as a request for support/

features.─ This will keep them completely separate from your daily Inbox!

Page 15: Collaboration Party of One

© 2013 RunningNotes

15

Pitfall 2: Not switching IDs because it's too inconvenient!■ When things are too inconvenient, we don't do them.

─ This is true for ANY process, home, work or otherwise!

■ It's HARD to remember to do a File-->Security-->Switch ID!─ And, it's kind of a pain. We understand.

Page 16: Collaboration Party of One

© 2013 RunningNotes

16

The Solution for Pitfall 2■ Create a separate Location document that ONLY works for that ID

file.─ And, that automatically switches to the ID file when you switch to it!

■ Create the Location document:─ File → Locations → Manage Locations─ Select New...

■ BONUS: Working sets!

Page 17: Collaboration Party of One

© 2013 RunningNotes

17

Solution (cont.) - Creating Location docs

■ Give your new Location an easily identifiable name:─ Developer─ Sandbox─ Playground─ App Dev

■ Fill out all other fields as normal:─ Servers – This should be your playground server!─ Mail File – Your dev mailbox for feature requests/bug fixes─ etc.

Page 18: Collaboration Party of One

© 2013 RunningNotes

18

Solution (cont.)■ Go to the Advanced → Basics tab

─ Edit the “User ID to switch to” field.‒ Click the flashlight icon, and browse to your developer ID.

Page 19: Collaboration Party of One

© 2013 RunningNotes

19

Solution (cont.)■ Now, when you are ready to do development work, all you have to do

is switch Locations !─ Your Notes client will take care of the rest!

‒ It will put you on the right server.‒ It directly connects you to your dev mail file.‒ It will switch your ID file.

─ It's an easy switch, do it right from the bottom right of the Notes client.

Page 20: Collaboration Party of One

© 2013 RunningNotes

20

Pitfall 3: Locking Domino

■ You can lock yourself out quite easily.

■ The Security tab in the Server doc─ Who can run agents, etc.─ Who has Full access Admin?

Page 21: Collaboration Party of One

© 2013 RunningNotes

21

Pitfall 4: Not Creating Design Failsafes!

■ Readers fields without using ACL roles can ruin your entire day.─ Readers fields Best Practice: create Roles in the ACL.

‒ “[Reader Admins]”:”[HR]”

■ Don't forget to put the Servers, and the Admin in there!─ That's your OTHER ID file, remember?─ Preferably, you use Groups:

‒ LocalDomainServers‒ LocalDomainAdmins

■ If you do lock yourself out, make sure you have access to an ID File that has Full Access Admin rights!─ (See Pitfall 2)

Page 22: Collaboration Party of One

© 2013 RunningNotes

22

Pitfall 4 – Design Failsafes (cont.)■ Poorly designed elements can really slow a database down.

─ These are issues that will affect server performance – also your job, remember?─ They can also come back to haunt you when it's time for a server upgrade or hardware

change.‒ Hardcoded values!

■ Design elements you need to avoid:─ Too many sorted columns.

‒ Too many secondary sorts!─ @Today in views.─ Hardcoded server names and user names.

‒ Instead, pull the current server name programmatically from the DB file info.─ Field values that pull their information from other field values that pull their value from

a value on another document that pulls that value from a Group that pulls their values from other nested Groups.

‒ Remember: It will be YOU that has to do all that tracing when a department head leaves.

Page 23: Collaboration Party of One

© 2013 RunningNotes

23

Pitfall 5: Not Creating a Sandbox Server

■ One that mirrors your environment─ It's easy to create a sandbox server.

‒ If you haven't, it's the first thing you should do when you get home─ It's less easy, but very important to make your sandbox mirror your production

environment!‒ User Groups/Roles/Access‒ Replication‒ User data‒ Nightly agents running‒ Everything!

Page 24: Collaboration Party of One

© 2013 RunningNotes

24

Pitfall 6: Being Disorganized■ It is easy to think you don't have to organize/communicate/

document because you are the only person doing the work─ But you are the only person doing the work so you probably have a lot of work to

do!─ Your admin tasks and duties are piling up and vary greatly from the dev requests

and bug fixes that are also piling up.─ It's very easy to lose track of what needs to be done and with no one else to

remind you, it's even MORE important to organize and document

Page 25: Collaboration Party of One

© 2013 RunningNotes

25

Solution to Pitfall 6■ Have a method for tracking administrative requests like adding new

users■ Have a separate method for tracking development requests and bug

fixes■ Good news! Notes applications exist for both of these purposes!

Page 26: Collaboration Party of One

© 2013 RunningNotes

26

Pitfall 7: Not Building a Network.■ No, not a Domino network!

─ You've already built that.

■ A network of PEOPLE.─ Other admins, developers, admins AND developers, members of the Lotus

community.

■ You need sanity checks, and people to bounce ideas off of.

■ Where would you find those people?─ PlanetLotus.org─ Twitter─ Lotusphere─ Other LUGs─ THIS ROOM!

Page 27: Collaboration Party of One

© 2013 RunningNotes

27

Be Social!

Page 28: Collaboration Party of One

© 2013 RunningNotes

28

Agenda■ Introduction■ Avoiding Pitfalls of Going It Alone■ Reaping Rewards of Being On Your Own

Page 29: Collaboration Party of One

© 2013 RunningNotes

29

Reward 1: Make Your Own Administration Process!■ What is the Administrative Process again?

─ It's Domino-created batch files.─ The admin selects what users or databases need the tasks run against.

‒ AdminP runs the tasks on them.

■ Sound familiar?─ It should. After all, it's just variables, right?─ And/or agents that run on selected documents?

■ Have you ever created a piece of code and thought, “This could be quite useful if I ever needed to do it again?”─ Why not genericize it and create your own AdminP database?

Page 30: Collaboration Party of One

© 2013 RunningNotes

30

Reward 1 (cont.)■ Gather together your most often used admin routines.

─ Reporting─ Updating values in documents

■ Turn them into generic routines.─ Create a form to add your variables so that you can use it on any server, on any

database.─ Add fields for things like:

‒ Server name‒ Database name‒ User name‒ Field name‒ Field type

Page 31: Collaboration Party of One

© 2013 RunningNotes

31

Reward 1 (cont.)■ PS – when it's finished, think about putting it on OpenNTF.org!

■ Time for a demo!─ The Automated Admin─ Admin Power Tools

Page 32: Collaboration Party of One

© 2013 RunningNotes

32

Reward 2: You Can Run Agents on the Domino Directory!■ Updating phone numbers in Person docs■ Stripping leftover ID files out of Person docs■ Updating Internet addresses (if your Internet domain changes)

■ How to make changes to Domino Directory via code:─ First, do it in your Sandbox, of course!─ However, when it's time to implement it for real:

‒ Make sure your backups are current!‒ Create manual local replica on your workstation.‒ Temporarily disable replication in Replication Settings for that replica.‒ Run your agent.‒ Check for desired results.‒ Re-enable replication and replicate it back up.

Page 33: Collaboration Party of One

© 2013 RunningNotes

33

Reward 3: You Can Code Your Own Toolbar Buttons!■ These are especially useful for revealing hidden design elements!■ You can display things like:

─ All agent names in a database.─ All form names in a database.─ All field names on a form.

■ What's the value in displaying all field names on a form?─ Once you know the field names, you can change the values!

■ Create a set of toolbar buttons that will help you out, and always keep them visible.─ Here's one I use daily:─ @Command([ToolsRefreshSelectedDocs]);@True

Page 34: Collaboration Party of One

© 2013 RunningNotes

34

Reward 4: You Know What Your Servers Can and Can't Do!■ An admin may insist on shorter agent run times but you know you

need that 5 extra minutes and that it won’t kill the server■ You don't have to have admin lockdown■ You can create the necessary compromises between security and

performance

Page 35: Collaboration Party of One

© 2013 RunningNotes

35

Reward 5: You Can Optimize Code For Your Architecture■ Your servers can be a finely-tuned machine that runs like the Paris Opera Ballet!

■ Schedule nightly agent runs around your server tasks.─ Updall runs at 2AM by default─ When do your backups run?

■ When does your server run program documents like Compact?─ Schedule your nightly agents around these!

‒ 11PM‒ 5AM

■ You know all the servers that belong to a cluster.─ Make sure you specify the “Server to run on” for your scheduled agents!

‒ Otherwise, you could find lots of mystery replication conflicts.

■ You know if/when/how often users replicate

Page 36: Collaboration Party of One

© 2013 RunningNotes

36

Reward 6: You Can Upgrade On Your Schedule!

■ If you need the latest features, upgrade!■ If you need to wait for a fixpack, wait!■ No need to convince anyone why you want to upgrade or wait■ Word of Caution!

─ It's great to be up-to-date on the latest features, but beware of jumping in as any mistakes you make will hit you twice as hard as both the admin and the dev

Page 37: Collaboration Party of One

© 2013 RunningNotes

37

Reward 7: You Can Make Yourself Happy!

■ Use tools that satisfy both the admin and the developer in you:─ Like the Agent Profiler to identify bottlenecks in your code!─ And Application Monitoring in DDM!

Page 38: Collaboration Party of One

© 2013 RunningNotes

38

Reward 7: Make Yourself Happy (cont)

■ Use Application Probes in DDM to find your problem Agents and help make your apps more efficient.

■ You can set up the following probes:─ Agents and Web services ranked by CPU usage─ Agents and Web services ranked by memory usage─ Agents and Web services that run longer than expected─ Agents whose start times have fallen behind schedule (applicable to Agent

Manager only)

Page 39: Collaboration Party of One

© 2013 RunningNotes

39

Reward 7: Make Yourself Happy (cont)

■ To set up Application Probes:─ Open Monitoring Configuration─ Change to the view “DDM Probes”─ Select “New DDM Probe” or find the canned existing probe and enable it

‒ Probe Area: Application Probe‒ Probe Type: Agents Ranked by CPU Usage

─ You can even choose web agents (run by HTTP) or Agent Manager agents!─ Rank four levels of warnings based on how long the agent takes to run.

‒ ie. 600 CPU seconds = Fatal

■ These warning levels will then be spit out into DDM.─ Along with the agent owner.

‒ Which, frankly, would be more helpful if you didn't already know it was you.

Page 40: Collaboration Party of One

© 2013 RunningNotes

40

Reward 7: Make Yourself Happy (cont)

■ Let DDM tell you which databases need Full-Text Indexes!

■ Remember this from your Notes logs?─ 01/18/2012 07:23:34 PM Agent Manager: Full text operations on database 'C:

\Lotus\Domino\data\apps\customersrv.nsf' which is not full text indexed. This is extremely inefficient.

■ DDM will tell you which databases get the most queries─ Seeing the total number of FT queries on a database can quickly pinpoint which

databases should have an FT Index.─ It's the same error, except once it appears in Domino Domain Monitoring, it

actually contains a COUNT of the amount of times the error occurred.‒ A great way to tell you which databases will benefit from having an FT Index.,

Page 41: Collaboration Party of One

© 2013 RunningNotes

41

Reward 8: You Can Restore When Needed!■ You'll know what version is safe to roll back to, both server and

application─ Working in a team environment a lot of communication is required to roll back

when necessary‒ What version? What features/fixes will be lost? When did it work last?

─ As admin and dev, you'll know what is broken and why, and how far to go back to fix it

Page 42: Collaboration Party of One

© 2013 RunningNotes

42

Reward 9: You Can Prioritize!■ You can decide what's most important

─ A dev on a team can get frustrated when they think their admin is focusing on “unimportant” tasks instead of upgrading that server

─ An admin on a team can get frustrated when their dev is writing some “unimportant” application instead of that agent for server maintenance

■ You know which task takes precedence and no one will argue with you!

Page 43: Collaboration Party of One

© 2013 RunningNotes

43

You Don't Have to Go Home, But You Can't Stay Here■ Fill Out Your Evals!

■ Contact us:─ @NerdGirlJess─ @RunningKathy

■ Get Social! Have Fun!