Category Archives: General Notes

Citizen Developers Wear Many Hats

As a citizen developer I may be called upon to wear many hats – analyst, designer, developer, tester, trainer.  Each hat requires its own set of skills and tools. In future posts we will explore each area in depth so you will have the tools you need to be a successful citizen developer.

wizardhat2

Analyst Hat

When wearing this hat, citizen developers work closely with business

partners and stakeholders to understand what the business needs to meet its goals and support its vision.  We also work closely with our technology partners in converting high level business initiatives into clear requirements that can be design, developed and implemented.

HatRed1

Designer Hat

When wearing this hat, citizen developers help determine the shape of the solution that will be developed and implemented.

hardhat

Developer Hat

When wearing this hat, citizen developers along with technology partners develop the solution.

BaseballCapBlackTester

Tester Hat

When wearing this hat, citizen developers test what has been

developed to be sure everything is working properly and meets the business’s needs.

 

Hat1

Trainer Hat

When wearing this hat, citizen developers provide training to their users on all the standard and custom functionality available.

 

 

 

Using Salesforce to Manage Expectations

We all have expectations.  Some are little and some are not.  In the world of software development expectations can result in you being a hero or a failure.  So how can you make sure everyone is on the same page as the requested enhancement is developed and deployed and how can Salesforce support this process?

How to Manage Expectations

Do Not Make Assumptions

Each person is coming from a different set of skills and life experiences than your own.  Do not assume that they see things as you do. Meet with the business and tech team separately and together and make sure what is expected, how it might be accomplished, and most importantly… how success will be measured are discussed and agreed upon by all parties.

Communicate, Communicate, Communicate… and oh… Communicate

Communicate with the team frequently using different methods and formats.

Pushing Out the Information

One set of methods are of a category called “Push” where information is pushed to the stakeholders and team.

meeting1

Meetings
We all love meetings, right?  (eye roll)  Sometimes they can be useful if we keep them focused (e.g. have an agenda) and short (e.g. Use a parking lot to stay on point).

  • Daily Status Meeting – primarily useful with the development side of the team. Check in with everyone daily to see how things are progressing and to identify any issue that is stopping or hindering progress.  Try to keep these meetings short and sweet.
  • Weekly Stakeholder Status Meeting – primarily useful with the business side of the team. Provide updates to stakeholders on the progress of the work and discuss any identified issues or risks.

Reports

  • Status Report – weekly report that covers (1) what was done last week; (2) what is being done this week and next week; (3) open action items; (4) Timeline; (5) Budget; (6) current risks, constraints, assumptions
  • Executive Summary Report – similar to status report but at a much higher level of information and may only be needed every other week or so

Pulling Information from a Source

Another set of methods are of a category called “Pull” where stakeholders and team members go to a source and pull the information as needed.

screen-of-code1

Shared Enhancement lists

A list of enhancement requests (projects) which can be viewed by business users and technology team members provides all with clear understanding of the pipeline.

Shared To Do or Task List

A list of assigned tasks for an enhancement request or project provides everyone with a clearer view of how resources are aligned to the work and the level of effort needed to complete it.

Shared Issues, Assumptions, Risks, Constraints List

Every change comes with some assumptions, risks, constraints and capturing them in a shared list will help everyone have a clearer picture of the change.  Issues also can arise as the work progresses so having a shared list to capture these helps to provide transparency to all interested parties.

Push Back As Needed

Part of managing expectations is helping everyone understand what can be realistically achievable given the scope of the work, the timeframe to deliver and the available resources.  If the business wants more or wants to radically change the original request, have an honest discussion about what that would mean to the work already done and the expected completion time.

Using Salesforce to Manage Expectations

Capturing the Information

Capture Enhancement Requests

First thing you need is a way to capture change / enhancement requests.  I have found the easiest method is to use CASE and either provide users with a web page (web to case) or email address (email to case) for them to submit requests.

<Case Example 1>

Make sure your CASE includes fields to capture the following:

  • What problem are you trying to solve?
  • Why do you need to solve this problem?
  • Who is impacted by this problem?
  • How are they impacted by this problem?
  • When do you need this problem to be resolved?
  • Who from the business need to be involved in solving this problem?
  • What systems are affected by this problem?

This is not an exhaustive list of questions and you may have more that you normally use.  The idea is to make sure you capture all the information you need on the CASE as it will be the primary source of information for you and the team.

Capture Issues, Constraints, Assumptions, Dependencies

As mentioned earlier, everyone comes to a project with assumptions or pre-conceptions and these should be captured along with any identified constraints and dependencies.  Also as work is done issues do come up and need to defined in a place open to everyone on the team where they can be seen and worked.

I have played with these four categories of lists for years and currently use something I call “Considerations”.  By having one custom object called Considerations and then using record types for each (Issue, Constraint, Assumption, and Dependency) I can have a single place for all of the information without needing more than one custom object.  Win win in my book.

As an issue/constraint/assumption/dependency is identified, it becomes a consideration related to the case.

Capture Notes

As people are working on the case it is important that they document what they are doing, have done, plan to do, etc.  Also meeting minutes should be associated with the case.

Although Salesforce has a NOTES object, I find it difficult to use because I need to type my notes (meeting minutes, status, analysis, etc) which currently cannot be done on the standard NOTES object.  Never fear the Citizen Developer is here!  I created my own NOTEs object and related it to CASE so that all the great information is captured here.

Capture Tasks

Who is working on what can be easily tracked in Salesforce using activities (tasks) related to the case.  They can be simple tasks or have additional custom fields as needed.

Communicating from Salesforce

Now that you’ve put in place the structure and process to capture change/enhancement requests and all the related information, it is time to provide that great information to the world… or at least the stakeholders and team members.

Reporting

  • Status Report – create a report off of the Notes__c object for a specific case and schedule it to run weekly and be distributed to the project team and stakeholders (“push”) or have interested parties run the report as needed or subscribe to it (“Pull”).
  • Executive Summary Report – executive level reporting could be handled by a dashboard that is run weekly and sent out via email (“Push”), available for executives to run on demand (“Pull”) or (if you want to get fancy) a visualforce page that renders as a tricked out pdf that someone sends out (“push”) or available for executives to select (“Pull”).

Shared Lists

  • Current Assignments – Users can see who is working on what by running a report or by using a list view from Activities.
    • I found it great to create a visualforce page that displays activities and then create a set of list views to provide the information users would need to see
  • Request Pipeline – Users can see the pipeline by running reports or through list views on CASE. Using a set of statuses that have been clearly defined with all team members and stakeholders will provide everyone with an understanding of how many requests are in the pipeline and where each request’s place in the process currently is.
  • Issues/Assumptions/Constraints/Dependencies List – Users can see open issues/assumptions/constraints/dependencies for a case by accessing a related list. For me that is considerations but you could have a separate custom object for each type.

Summary

While some aspects of expectation management cannot be fully supported by Salesforce (not making assumptions, facilitating various meetings), several aspects can be supported very well as discussed in this post.  In my experience I have been able to manage and track several thousand change requests and keep the lines of communication open and humming using CASE and several custom objects (CONSIDERATIONS, NOTEs).

Question to You

How do you manage expectations?  Have you been able to use Salesforce for some of that work?

Resources

What is a citizen developer?

The division between IT and business is blurring and organizations are seeing the rise of a new type of employee – the citizen developer.

A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT. In the past, end-user application development has typically been limited to single-user or workgroup solutions built with tools like Microsoft Excel and Access. However, today, end users can build departmental, enterprise and even public applications using shared services, fourth-generation language (4GL)-style development platforms and cloud computing services such as Salesforce.1

Why have citizen development?

IT Departments are understaffed as business makes greater demands – with more work than they can handle due to inadequate resources and funding so IT focuses on the most critical business needs and allowing others to fall to the bottom of the pile.  Unfortunately those items at the bottom may never see the light of day.  Citizen developers have stepped in to fill this gap.  Use of low-code platforms such as Salesforce have improved operational efficiency, reduced time to market and increased employee productivity.[4]

DIY by SME’s vs. IT’s ability to capture requirements and execute solutions[2] – In some cases a technology solution can be easier to implement and be more on the mark if done by a citizen developer that has deep subject matter expertise on the business and issues being addressed.

Reduced Maintenance Costs for No/Low Code solutions – It can be quite costly to develop custom applications using code.  Usually the development team that creates the application doesn’t stay to maintain it and funding for ongoing maintenance usually dries up.  Citizen developed applications are largely no or low code solutions deployed on SaaS or PaaS platforms.  Such applications usually require less maintenance and can be easily enhanced.[2]

Tech savvy business users are here!  More technically savvy individuals are entering organizations in non-technology functions.  These individuals are interested in taking on more of a technical role.  Given the right platforms, processes and governance these users can become citizen developers.[2]

What’s the risk?

Citizen developers are concerned with solving an immediate problem.  This focus results in a solution that helps business with its issue but may also not fit well into the overall IT ecosystem.[2]

Important parts of the complete development picture are sometimes not considered or defined by citizen developers:[6]

  • Who will support the application?
  • What other tools and applications will need to integrate with the application?
  • If there are bugs or problems, what will the wider impact be?

Making it work

“If citizen development is done properly in partnership with the IT department, then that can work, “ says Mark Driver, a research director at Gartner.  “There is a distinction between people who develop unbeknownst to IT – we call that shadow IT – and citizen developers who work in partnership with IT.”[5]

IT departments will need to evolve to support the rise of citizen development in a way to minimize risk to the organization.  IT provide citizen developers with approved or sanctioned SaaS or PaaS platforms, set security policies, define best practices and take on the role of guardian and mentor to citizen developers.[6]

References
1: www.gartner.com – Citizen Developer definition
2: 4 Reasons Why Citizen Developers May Be the Next Big Thing in Application Development
3: The Advent of the Citizen Developer (graphic)
4: ‘Citizen developers’ are ready to fill the gaps in enterprise applications
5: Can citizen developers bring shadow IT into the light?
6: Citizen Developers will ruin software discuss