Use Cases in PRPC – Part 3

Continuing on from Use Cases in PRPC – Part 2, the following tables will give Pega Business Architects an idea of how to use PRPC’s “Use Case Rule” to capture details about your Software Use Case.

Continue reading Use Cases in PRPC – Part 3

Use Cases in PRPC – Part 2

In Part 1, we took a look at Pega’s definition of a Use Case and what the Application Profile Wizard allows Pega Business Architects to capture. In Part 2, we shall now take a look at four different types of Use Case and how they relate to PRPC.

Business Use Case
A technique for describing (in technology-agnostic terms) a repeatable business process which is invoked by business actors (people or external systems), often working in collaboration, in order to achieve a specific goal (or goals) that provides clearly defined business value to the actors (e.g., process a customer order). A BUC can describe both manual steps, such as greeting a customer, as well as steps which are expected to be supported by an IT solution, such as recording customer details. The term “Business Use Case” is just another way of saying “business process”.

PRPC Constraints on BUCs
It is not possible to model start-to-finish business processes (Business Use Cases) within PRPC because the tool can only model what is to be implemented in PRPC.

Software (System) Use Case
A technique for describing the repeatable interactions between a business actor (e.g., a person or external system) and the To Be system in order to achieve a result of clearly defined business value to the actor. A SUC will describe what the system will do for the actor but not how it will achieve it. A SUC will not describe any actions outside the actor/system interaction. A SUC is implementation-agnostic and does not make reference to screens, screen elements (e.g., buttons and drop-down lists) or screen activities (e.g., “clicking”).

The PDN refers to SUCs as “Comprehensive” use cases, but does not give any guidance on whether or how to model them. See Use Cases in PRPC – Part 3.

Atomic Use Case
This is a concept used in PRPC which equates to a single step in a SUC. Pega urges the use of Use Case Rules to capture details of AUCs. See Use Cases in PRPC – Part 4.

PRPC Constraints on SUCs and AUCs
The structure of the Use Case Rule is more suited to traditional UML SUCs, rather than individual steps within a SUC. This can lead inexperienced analysts to try to enter a lot of detail about an individual step which may not be relevant, e.g., “pre-conditions”.

Technical Use Case
A technique to describe, in implementation terms, how the To Be system will achieve what is described in the corresponding SUC, in order to provide the business value described in the SUC. There may be a TUC for a whole SUC or a TUC for an individual step (AUC) within a SUC. Technical Use Cases are outside the remit of the BA. See Use Cases in PRPC – Part 5.

PRPC Constraints on TUCs
There is no Rule in PRPC specifically for documenting TUCs, nor does the PDN mention them. However, the Use Case Rule can be used.

Use Case Linking
PRPC does not allow Use Case Rules to be linked to each other. This is an area for improvement in Pega’s traceability model. However, you can use the Usage field of a Use Case Rule’s History tab to note what “child” UCRs it relates to.

The SUC author analyst can note any AUCs which sit under the SUC (forward linking). SUCs can have more than one AUC because AUCs are individual steps within a SUC. Each AUC can relate to more than one SUC, which indicates re-use.

The TUC author can note any AUC or SUC the TUC relates to (backward linking). Each TUC should relate to a single SUC or TUC. Not all AUCs will require a TUC.

Use Case Categorisation
PRPC does not cater for different levels of use case and this is another area for improvement. However, the following prefixes can be used in the names of Use Case Rules:

  • Software Use Case: SUC
  • Atomic Use Case: AUC
  • Technical Use Case: TUC

Related posts:

 

If you think you have excellent communication skills…

I am willing to bet that in the business world, at least, everyone puts on their CV (resumé) that they have excellent communication skills. They can’t all be right.

  1. If you think you have excellent communication skills but you put your personal details at the top of your CV (resumé), think again.
  2. If you think you have excellent communication skills but you put slides like this into your presentation, think again.
  3. If you think you have excellent communication skills but you read out loud to your audience something they could read in their own time, think again.
  4. If you think you have excellent communication skills but you don’t engage your audience at least every ten minutes, think again.
  5. If you think you have excellent communication skills but you don’t mostly listen, think again.
  6. If you think you have excellent communication skills but you haven’t bothered to rehearse your presentation, think again.
  7. If you think you have excellent communication skills but you can’t project your voice to the back of the room, think again.
  8. If you think you have excellent communication skills but you think spelling, punctuation and grammar are less important than the message itself, think again.
  9. If you think you have excellent communication skills but you think your audience is failing to grasp what you say, think again.
  1. Understanding what your audience needs to know, and in what priority, is key.
  2. Presenting heavy text in a slide show means you have no idea how people absorb information.
  3. People can read to themselves faster than you can read to them. Moreover, your voice distracts them from reading it and they can read it better in their own time. What’s more, you insult their intelligence by reading out loud to them as if they are toddlers.
  4. The human brain can only passively listen to your voice for about ten minutes. After that it starts to switch off unless you prompt it to participate somehow.
  5. Excellent communication is knowing what to say, how to say it, to whom and when. If you don’t spend most of your time listening, you cannot know those four things.
  6. If you have something important to say, practise saying it. Otherwise, you’re telling your audience you didn’t think they or your topic were worth the trouble.
  7. What? Do you want only half your audience to hear what you have to say?
  8. Persuading your audience that you are semi-literate does not strengthen your message.
  9. A failure to communicate when you have a captive audience is your failure, not theirs.

Care about your audience, not just about your message.

Kind regards,

Declan Chellar

Businesses, you may need to fire some of your recruitment agencies

I am frequently contacted by recruitment agents who claim to have read my profile.

Today one contacted me with a job which the agent claimed matched my profile. The following are the mandatory skills. I have crossed out the ones I don’t have:

  • Certified System Architect on Pega PRPC V 5.x or 6.x (Please add Certificate)
  • BS In Computer Engineering
  • 2-7 years of Pega Experience (Please list projects)
  • One end-to-end Pega project with 5.x and higher achieved
  • Oracle 10gr2, Java2, Weblogic 10.3.2 (11 gR1)
  • Web Services Architecture (XML, SOAP, WSDL, XSD, etc..)
  • MS Visio, Linux & MQ Series 6.1
  • Pega Usual Services & Connectors
  • Unit & Integration Test
  • Banking Domain knowledge

A cursory glance at my online profile would rule me out. I have now ruled out ever dealing with that recruitment agency (among others).

I work with some very conscientious recruitment agents who go to great lengths to ensure that I am the right consultant for their client, but if my inbox is anything to go by, most of them are lazy, keyword-searchers. Chances are your company is using such an agency.

I can recommend some good agents if you are interested.

Related posts:

Explore the underlying business need

On so many projects, I have seen software developers thrown into meetings with the business SMEs with the task of understanding the “requirements”.

On some occasions I have been delighted to see developers with the ability and techniques that truly enable them to think in terms of business needs. Mostly, however, I have witnessed techies simply documenting the problem they are presented with and instead of trying to understand that problem, they focus on coming up with a solution (often using only convergent thinking to come up with a single solution). The underlying causes of this are a general ignorance among managers and technical people of what skills are involved in business analysis, and a failure to give those skills to people who have to perform BA tasks. It takes more than a  familiarity with MS Word and Visio and the ability to speak in whole sentences. This is why so many software projects fail to satisfy their customer entirely, because the people providing the solutions never really understand what the customer needed in the first place.

Sometimes the customers themselves don’t even understand what they need! They only know what they want (hence the emphasis in this business on “requirements”). If you don’t see the difference, then you do not understand business analysis.

Software development requires a different mindset to business analysis. It is a mindset that explores solutions to identified problems or needs. It is a prescriptive mindset. It is a mindset that identifies the solution as a hammer when it perceives the problem to be a nail. It does not ask whether the nail is actually the real problem. After all, the customer might have described the problem as a nail, when it is in fact a screw.

The analysis mindset is investigative and descriptive. It explores the business need, seeking to understand its true nature and how it affects the business. This mindset challenges what the customer says. Is it really a nail? What type of nail is it? What material is it made of? What size is it? What material does it have to be driven into? How does the business benefit from having this nail driven into that material?

Note that I have used the impersonal terms “software development” and “business analysis”, rather than “software developers” and “business analysts”. This is because both mindsets can exist in a single software developer and both can exist in an individual business analyst. They rarely do, in my experience. However, if I were to build my ideal three-person software development team, it would consist of:

  • a strong BA who is also a competent developer and tester
  • a strong developer who is also a competent BA and tester
  • a strong tester who is also a competent BA and developer

Full systems lifecycle development experience is invaluable to any team member on a software development project.

Projects which take an agile approach to software development ameliorate this problem. However, the problem is not eliminated unless agility is support by two other factors:

  1. Business analysts have already explored and modelled the underlying business needs (i.e., the business architecture is mature).
  2. Software developers have been trained in the mindset and techniques of business analysis.

Takeaways:

  • Make sure the people who analyse the business have been trained in the mindset and techniques of business analysis.
  • Don’t simply document business requirements, understand and challenge the underlying business needs.

Kind regards,

Declan Chellar

BPMN in Pegasystems PRPC Flow Rules

There is a perception that Pegasystems PRPC can be used to create BPMN-compliant process models. However, I consider this perception to be incorrect.

This slide show takes you through my reasoning, but I can sum up my conclusion with a golf analogy:

No matter how good your 3-iron is, you can’t turn it into an 8-iron by scratching on the number.

Don’t get me wrong: the PRPC Flow Rule is an excellent tool (a really good 3-iron, if you will) – but there is more to BPMN than the shapes themselves.

Note: the Pega Developers Network does not claim that you can model BPMN-compliant models within PRPC, but some Pega Business Architects have made that inference.

Kind regards,

Declan Chellar

Related posts:

Process, data, decision: the triumvirate of business modelling

Many analysts have a grounding in grounding in one main area of business analysis, such as process modelling. However, a company’s business architecture cannot stand on a single leg.

In fact, three legs are required:

  • Process model
  • Data model
  • Decision model

I have seen many software development projects where none of these is in place before the project starts, with disastrous consequences. In some cases, only the process models are driven out and while data requirements and individual business rules are documented, they are not modelled.

If process is the highway network and data are the cargo to be moved around that highway, then decisions are the engines that move the data around the highway.

All three models should be mature (though not necessarily perfect or immutable) before software projects start. Where companies pay any attention to these models at all, of the three they tend to focus on process modelling. Businesses tend to skip over logical data modelling, often because they are not even aware of such a thing or its benefits (I explore this further here and here).

However, the one which seems to suffer the most from being ignored is decision modelling. Business decisions are relegated to being documented late in the day as requirements of a specific software system and often in pseudo-code, rather than natural language. The result is that they are often not re-usable across areas of the business (or even across software implementations in the same area of business) and they are not easily manageable by the business as a single asset at the enterprise level (despite what your process-implementation or rules-engine software vendor might tell you).

Business decisions are what drive businesses, yet in software development, they seemed to be treated as the poor cousin from out of town.

While it is good to be an expert in only one of these three key business models, as a business analyst you need to be competent in all of them. After all, who wants to sit on a stool that has fewer than three legs?

Kind regards,

Declan Chellar

Data model, data model, data model!

If you are a business process analyst, you need to print out the image above and stick it somewhere visibile whenever you are building process models.

Process analysts often forget that business processes (certainly in the context of software development) work by moving data around an organisation. If  the business has not modelled its data, point out that it should. If you are unfamiliar with its data model, ask about it. If you don’t know the basics of data modelling, learn.

Process names typically evoke business entities: “Take Order”, “Add Customer”, “Update Account”.

You cannot be sure everyone involved in analysis the process is talking about the same things unless these entities are defined in a data model and that definition is understood by all.

Moreover, you cannot accurately define data requirements if they are not based on a robust data model.

Yet I continue to be surprised at the number of companies that do not have a model of their business data.

Now read these earlier posts:

Kind regards,

Declan Chellar

Adding new requirement types to PRPC

In a previous post I lamented the limited list of default requirement types that PRPC provides. However, there is a way to extend that list.

A few months ago I was working as a Pega Business Architect and I asked a Pega Certified Lead Systems Architect (a former Pega employee, in fact) if he knew a way around this limitation. He was not aware of one, but promised to look into it and after some experimentation, his solution was as follows:

  1. Create a Ruleset call [Organisation]-AppDefinition
  2. Set Pega-AppDefinition as a pre-requisite to this new ruleset
  3. Create a field value property called pyCategory within the Class Rule-Application-Requirement in the rule set [Organisation]-AppDefinition
  4. Set the “Field Value” of the new property to whatever new requirement category you want (e.g.: “Data Validation”) and save the new property
  5. Set the “Description” and “Localized Label” also to the same new requirement category (e.g., “Data Validation”) and save your changes
  6. Repeat steps 3 to 5 for each new requirement category you need

Any time you add a new field value this way, the value is added to the “Category” drop-down of any new or existing Requirement Rules.

The LSA explained to me that steps 1 and 2 above effectively create a requirements framework, which you can re-use across applications by including the [Organisation]-AppDefinition ruleset in each application.

More recently, in preparation for Pega’s Certified Methodology Black Belt exam, I discovered in a training manual that Pega had already documented a similar approach (although it does not seem to be in the PDN). Pega’s approach is essentially the same as above, except it leaves out the first two steps. In other words, you would have to add your new requirement types to each application separately.

If you do try either approach, please do send some feedback here via the comments.

Kind regards,

Declan Chellar

Requirements vs Design

Scott Sehlhorst (@sehlhorst) has written an excellent article titled Requirements vs Design – Which is Which and Why? Some of my own thoughts are in this post, but read Scott’s article first to get the context.

Scott seems to gather the problems a business sees with its current model (e.g., inefficient practices, outdated rules, failure to comply with the law) and any opportunities which have arisen (e.g., because of changes in the law, new markets opening, the availability of new technology) and to which the business would like to adapt under the heading “market requirements”. I would be uncomfortable calling these “requirements” because I see them instead as observations of the current state of affairs. But all I disagree with here is the label.

He goes on to talk about analysing the problems and opportunities in order to produce a set of goals. I would refer to such goals as “business needs” which have to be satisfied in order to mitigate the problems and take advantage of the opportunities. Scott would see such goals being documented within a Product Requirements Document, whereas I do not see business needs as product requirements, since not all business needs are going to be satisfied by building a particular product. Some will be satisfied simply by changing the approach to staffing or by modifying a manual process. I do agree with him that goals (business needs) are the outcome of what he calls “ideation” and that they need to be documented. Again, we don’t seem to be at odds with regard to the underlying concepts, just the terminology and documentation.

I would document the problem/opportunity statements, the analysis of each and its consequent business goal all together in the same place. Subsequent to that, I would expect to see a “future state” model of the business which reflects how the business needs to change in order to attain those goals. Only if part of that future state needed new or enhanced software would we start talking about product requirements.

I disagree that “design constraints” are requirements. However, that could also be down to our different use of terminology. Scott seems to use the term to refer to constraints imposed by the business, e.g., product look-and-feel, performance, accessibility. I refer to such constraints as “non-functional requirements”. NFRs are always provided by the business and as such are business requirements.

In my head, a design constraint is imposed by the solution design (a term also used by Scott and I happen to use that term in the same way) or by the chosen technology (e.g., a configurable BPM tool). The following are examples of what I would consider design constraints:

  • Use of a particular set of coding standards
  • Use of a particular messaging layer
  • Use of an “out of the box” GUI that comes with a particular technology

If by “design constraints”, Scott means what I call NFRs, then I agree that his design constraints are requirements. However, what I call design constraints are usually not requirements, although they can be. The last example I provided above could be a design constraint imposed by the business because they want to get maximum ROI out of the tool they have licensed by avoiding customised GUIs.

[Edit: In his comment below, Scott points out that NFRs, such as coding standards, could be imposed by the development team, and I agree. It is merely my preference to label constraints coming from the business side as NFRs and those coming from the technical side as design constraints. In the end, Scott and I are talking about the same thing.]

The solution design can also generate technical requirements. TRs are not of interest to the business but they are not simply design constraints. A TR means that some functionality must be built in order to realise the solution design, but the business has not requested it. Such functionality is invisible to the business.

I think it is essential for product requirements, solution design and choice of technology all to be traceable back to business needs. However,  business representatives often provide product requirements which are at odds with the stated business needs or which are not traceable back to any stated business needs. Many times I have challenged requirements, asking “What is the business need here?”, only to be met with blank expressions. In some cases, there are no documented business needs. I have often found that requirements analysts fail to actually analyse the product requirements and merely document them without understanding the underlying needs.

Those who procure a particular technology (e.g., a customisable workflow tool), often do so based on a slick sales pitch, rather than its ability to realise the business vision. Programmers, too, often fail by simply building what was required, never questioning whether the solution really satisfies the needs of the business, even if it fulfills the product requirements.

Thus, for me, business needs have primacy over requirements (see the image below). The latter should always be sub-ordinate to the former (as should the solution design and the chosen technology) and good analysts will think and work accordingly. Unfortunately, a lot of analysts choose to behave merely as requirements stenographers. [Edit: Scott knows this, of course, so this paragraph is dedicated to you junior analysts reading this post: Think! Challenge! Understand! Don’t merely take notes.]

Everything should focus on supporting business needs

I assume you have read Scott’s article by now, but I suggest you read it a few times. I prefer the terminology that I use (Well, I would, wouldn’t I?), but believe I agree with Scott’s underlying principles.

If I have misunderstood any aspect of Scott’s article, I’m sure he will set me straight and I will update this post accordingly. [Edit: Which I have!]

Kind regards,

Declan Chellar

Related posts: