Originally posted on blog.notesonsiebel.com on March 26th, 2007 by stuandgravyI’ve interviewed a bunch of Siebel techies and have evolved a few favourite questions, all based around the same theme: attempting to uncover technical breadth while avoiding obscure ‘gotcha’ questions. Things like this:
Q: How would you update a second field every time a first field is changed?This is a great question: simple enough that a junior dev straight out of a tools course should come up with a few options and have some idea how they weigh up, but broad enough that a senior techie can lead you into detailed discussions about performance vs maintainability, good practices, upgrade issues, etc etc.
If the candidate’s running out of steam, leading questions can coax them toward more inventive answers.
- What if the second field is in a different business component?
- What if there are multiple fields to be updated?
- What if the second update needs confirmation?
- What if the update still has to happen for batch (EAI/EIM) updates?
To the answer: I reckon the following is not a bad list to cover-off, but there’s still a few missing…
+ minimal config
+ real time
+ robust (mostly!)
- require srf update
Runtime Events to Workflow Process
+ most things possible with native, compiled Siebel Operations
+ declarative, flexible, upgradable without srf update
+ long-running workflows for multiple consecutive events
+ real-time, optional asynchronous
- no loops (almost) without custom business services
- overhead of instantiating the workflow first time (then cached), which can have a big impact on mobile users
+ simple to write
+ low overhead
- not declarative, requires srf release
- higher level than vanilla C++ services (so slower, in theory)
- limited possibility to interact with the user
+ opportunity for full manipulation of DOM, real-time interactivity
- maintenance headache (generating script, keeping versions current)
- interpreted at run-time (so slower, in theory)
- limited speed, memory space etc
Workflow Policy to Workflow Process
+ fully robust database-level trigger
+ fully asynchronous
- not real time, interactive
- not declarative, requires DBA maintenance