Monthly Archives: January 2016

Good, Better, Best Requirements

I have gathered and documented thousands of requirements for hundreds of applications over
the years.  Good requirements are easily understood by the IT team and are testable.

I recently found a great post by David Shaffer called “It’s the clipboard2Requirements fault! A Recipe for Requirement Clarity “.  He really provides a clear concise method for developing solid requirements.  Below are a list of questions from his article that I highly recommend any analyst consider when gathering and documenting requirements.

For each requirement you ask the following questions:

  1. Is the requirement written in S-V-O format? (Subject-Verb-Object)
  2. Is the requirement written in active voice using a strong auxiliary verb?
  3. Does the requirement focus on the business need rather than a technical solution?
  4. Is the requirement easy to understand by all audiences?
  5. Is the requirement simple, short, and unambiguous?
  6. Will an example improve the understanding of the requirement?
  7. Will a visual figure or wireframe improve the understanding of the requirement?
  8. Can the requirement be tested?
  9. Does the requirement contradict any other requirement?
  10. Does the requirement describe how it must be implemented (Ex: display in alphabetic order, ascending/descending order, required/optional field, alphanumeric, numeric, etc.)


What are some questions you normally use when gathering requirements?

4 Types of Email Notifications

Emails are part of the business landscape so including them in your Salesforce applicationemail1 makes sense.  Designing the look of the email and its contents is important so that the emails provide users with the right information at the right time.

So what are some typical scenarios that result in email notifications?

  1. Acknowledgement – when a user submits a request, CASE, etc
  2. Status Update – providing user with status of request, CASE, etc
  3. Escalation – providing user with information on an escalation
  4. Information – providing user with information

Design Considerations for Salesforce Email Templates

Every email should include the following:

  • Reason person is receiving the email
  • ID / Link back to the Salesforce record which resulted in the notification (if appropriate)
  • Relevant information
  • Next Steps for person receiving the email (if any)
  • Next Steps for Company/Group (helps to set user expectations)
  • How to contact us

In the process of creating your templates consider the following:

  • Pick the appropriate email template type based on what your email recipients can handle and the level of layout control you require.
  • Maximize your subject line
    • Keep it concise but informative
    • For mobile recipients some researchers feel the first 35 characters are key
  • Use Merge Fields to personalize content
    • Be sure the merge fields you will be using have data. The merge field will not appear in the email for a record where there is no data in that field.
    • Email templates give you access only to the fields that are accessible to you via your page layout and field-level security settings.
  • Configure your email Deliverability Settings — Information about these settings can be found here.

A great place to see how to create a Salesforce Email Template is the article “How to create an email template in Salesforce” at


How do you use email notifications in your business?

Using Salesforce to Manage Users’ Requests – Part 2


In order to manage users’ requests it is important to have a defined process where all requests are handles.  The steps needed to define and implement a process are:metrics1

  • Determine the what
  • Determine and implement the how
    • Input channels for submitting a request
    • Salesforce object to use (CASE or custom)
    • Fields (existing and new)
    • Usability (Page Layout(s), Existing fields to use, etc)
    • Data Quality (validation rules)
    • Setup appropriate components within Salesforce
  • Determine communication

In Setting up a Request Management App – Part 1 we addressed the “what”. In this post we will be addressing the how at a very high level except for the setup which will be covered in Part 3.  Additional posts will provide a deeper dive into some of the areas.

Input Channels

As part of designing your request management process and application it is important to understand how you expect users to submit their requests into the system.  A user can use any or all of the following channels to make a request for information, report an issue or request an enhancement.
Input Channels

  1. Face to Face
  2. Phone
  3. Instant Message / Chat
  4. Email
  5. Webpage
  6. Salesforce

For input channels 1,2 and 3 the Salesforce Administrator will be the one creating the request in the system.  For input channels 4, 5 and 6 the user will be creating the request in the system.

Through continued training and good feedback and status information for requests you could reduce or perhaps eliminate input channels 1 – 3 so that the Salesforce Administrator is not manually creating requests.

Which Salesforce Object to use?

The design decision around what Salesforce object to use as the center component of the request management application can be affected by several things

  • what version of Salesforce your company uses
  • how deeply you are currently using CASE
  • do you have resources with the skillset to do customizations

Using CASE

The ideal design option in my opinion is to use the CASE object.  It provides inherent functionality to allow users to email or submit a request via a webpage and have a case automatically created.

Use Custom Object

If you feel that the risk of using CASE for request management is too great due to how your organization is currently using this object, consider creating a custom object instead.  With this option you will have to handle functionality related to processing emails and requests submitted via a webpage yourself.

What Fields

Regardless of which option you choose, CASE or Custom Object, you will need to design the fields to be created on the object.  In Setting up a Request Management App – Part 1 we defined a number of pieces of information that we would need to acquire at the beginning or during the request management process.

Here are some things to consider when creating fields:

  • Make the field name meaningful and concise as possible
  • Use the appropriate datatype
  • Include a description FOR EVERY FIELD!!! (See Mike Gill’s post Admin Commandment 1 for more information as to why this is important)
  • Include help text as often as possible. Make sure it is written with the user in mind.

User Experienceusability1

The area of User Experience (UX) encompasses many components and too involved to go into in this post; therefore, we will focus on just usability.

A solution to a problem can be achieved in many ways.  Some ways are efficient but are not very usable to the people who will be actually using it.  As Citizen Developers we have a great advantage on designing for usability because in many cases we will be using what we are designing!

So what to consider with regards to usability?

  • Is information grouped together and labeled in a way that will make sense to the users?
  • How many clicks does it take to do common functions or to access common information?
  • Is the help text actually helpful to the users?
  • Are the messages displayed to users (error, informational) useful and provide enough detail for users?
  • How easy is it to use the solution?
  • How quickly can users perform tasks?

Data Quality

The old adage of “Trash in is trash out” applies to data.  Bad data in from imports, data load process and other sources results in bad data out in reports or down the line to downstream processes.  So how can Salesforce Citizen Developers achieve high quality data when designing a solution?

  • Understand the data that is going to be loaded and how the data will be mapped into your solution
  • Create alerts to notify key users of any data quality issues
  • Stop bad data from being entered using validation rules and required/read only flag on page layouts as needed
  • Create and distribute reports and dashboards specifically focused on data quality

Other Design Decisions

There are so many decisions to be made when designing a request management process it can be overwhelming.  One method to make sure you hit all the important items is to walk through the process on paper or whiteboard.  “Wear” the different hats (user, citizen developer, manager, etc) to be sure all the information each needs is defined and the process (statuses) make sense.

Email Notifications

Emails are sent for a variety of reasons.  As part of the design you will need to determine when you want to send out an email, to whom will it be sent and what will it say.  Some possible scenarios are:email1

  • Acknowledge Submission
  • Status Update
  • Escalation

Support Process (Status Progression)

Where a request is within the support process is usually indicated by its status.  What statuses to use, what each means and how a request moves between them is important.

A very simple status progression is shown below.  Request comes in with status of NEW.  As it is being worked its status is IN PROGRESS.  When it is completed the status is COMPLETED.  During the process the request could be cancelled.

Simple Status Progression

Escalation Rules

For each type of tracked request we have a defined an expected completion time which feeds into our key metrics and which also has been agreed upon by the users.  Escalation rules are there to make sure every request is worked within the expected timeframe.

How will escalation process be handled within the request management system?

  • What criteria will be used to determine escalation?
  • To whom will escalation notifications be sent?
  • Will ownership of escalated requests be changed? If so, how?
  • Will requester be notified of the escalation?
  • What are the ramifications for an escalated request?

Email to CASE / Web to CASE

Input channel of email or web form requires some design work.

  • Email to Case Routing setup (priority, origin, create a task)
  • Web Form (where will this form be put?)

Questions for You

What are some design tips not covered in this post that would help Salesforce Citizen Developers create a request management application?



Using Salesforce to Manage Users’ Requests – Part 1

In order to manage users’ requests it is important to have a defined process where all requests are processed.  The steps needed to define and implement a process are:

  • Determine the what
    • type of user requests are to be handled in this processNowServing
    • key metrics will be tracked for this process
    • information for each request the user must supply
    • non-user supplied information is needed
  • Determine and implement the how
    • Input channels for submitting a request
    • Salesforce object to use (CASE or custom)
    • Fields (existing and new)
    • User Experience (Page Layout(s), Existing fields to use, etc)
    • Data Quality (validation rules)
    • Setup appropriate components within Salesforce
  • Determine communication
    • Reports and dashboards
    • Training
    • Release Communication

In part 1 of Using Salesforce to Manage Users’ Requests we will be addressing the “what”.

Type of User RequestsDM Gears1

Users may ask you for many things which can be grouped into the following general types:

  • Information: how do I do something, how does this work
  • Issue: can you fix my problem
  • Functional Need: I need system to do this

In your request management system you will need to decide if you want to handle all three types of requests through the same system.  In some organizations production problems (issues) may already be handled through a different application or process.  For this series of posts we will assume that our request management app will handle all three types.

Key Metrics

If you don’t measure your process, metrics1
you can’t manage or improve your process.

With every process and system you need to define your success criteria so you will know if what you created is meeting everyone’s needs and performing well.  You must therefore identify some key metrics upon which you will monitor and evaluate the request management process and app.  As you are considering what to measure remember that every metric should lead to a management decision.

Some suggestions are shown below.  The KPI Library is a great resource for ideas on metrics.

  • Time to Completion by request type

For each type of request define what an acceptable completion time will be and communication that to the users.

Example:  Information requests will be completed within 72 hours; Issues will be acknowledged within 1 hour and addressed within 24 hours; Functional change requests will be acknowledge within 4 hours, vetted within 3 days and completed within 2 weeks.

  • Hours to Complete by Request Type

For each type of request capture number of actual hours worked to complete it.  This information can be used in a metric called

  • Percent of requests by priority

This metric reflects the size of the potential risk of urgent changes on the quality and performance of the change management process.

User Supplied Informationclipboard2

What information should a user be required to provide when submitting a request.  The information will probably vary depending on the type of request.

For all requests I suggest gathering the following:

  • Requester’s full name and contact information (at least phone and email)
  • Type of request (Information, Production Issue, Functional Need)

Below is a suggested list of information based on request type:

  • Information
    • Question
    • Why do you need the information
  • Issue
    • Description of Issue
    • When did it occur
    • Name of application (if you are supporting several applications)
    • Attachments for screenshots
  • Functional Need
    • Name of application (if you are supporting several applications)
    • What business problem are you trying to solve?
    • Why does this problem need to be solved?
    • How many users are affected?
    • If there currently a workaround? If so, describe workaround.

Non-User Supplied Information

As requests are processed additional information is needed to support our key metrics as well as to manage the process.  This information would be supplied by someone other than the user.

Below are some suggested information:

  • When (date) was request submitted
  • What is the request’s priority
  • Who owns the request / who is working on the request
  • When (date/time) did a person start working on the request
  • When (date) did the request get completed
  • What is the status of the request
  • What was the answer (if request was Informational)
  • What was the solution (if request was production issue or functional need)
  • Who approved work on the request (If request was production issue or functional need AND your process requires approvals)

Stay tuned for the next part in this series where we will explore the “how”.

Questions for Youbusiness-man-question-mark1-300x282

Have you implemented a process to manage user requests?  If so, what types of requests do you track and what information do you capture?