Evaluating Design 2 for Accountability

Design 2 for reference

Design 2 for reference

What do you think? whether the accountability of Design 2 has improved, reduced or just the same?

If I ask you a question as to who is responsible or accountable for a behavior like "Reserving a ticket".. do we have an answer for the same?

I hope you now have the answer...

It's the RCE (Reservation Control Entity) which is now accountable for the behavior called "Reserving a ticket". Neither the actor nor the individual domain entities are accountable, it is the control entities that are modeling the behaviors of the system which are responsible for the individual behaviors of the system.

By introducing the control entities, we have incorporated behavior level accountability within our system.

Hence we can say by introducing Control Entities as a level of indirection "The Usability, Performance, Structural flexibility and Structural Security have improved while behavioral Flexibility and Security continues to be a problem".

Although we are saying that the Usability of this system as increased by a great factor as compared to the first design, but its not the best

Can you think about certain problems wrt usability in this system design?

The system which we are discussing currently only has around 5-7 different behaviors, but in any realistic system, there are more than 50 behaviors and the maximum limit could be anything depending upon the complexity of the system.

Lets talk about the Employee portal which is there in within any organization today.

Can we think about the number of behaviors/functionalities of an Employee Portal?

Normally when I ask this question to my participants, I get answers like 20-30 behaviors

But are there only 20-30 behaviors offered by this system?

I feel an Employee Portal is a system which allows different types of employees to manipulate (create/edit/delete) different types of resources (leaves, tasks, activities, schedule, remuneration etc ) within a company.

Presuming any mid side company will have atleast 15 types of employees each capable of manipulating 10 different resources each of the company.

These portals will have at least 100 behaviors as the system has to cater to all types of employees within the company. If your system has 100 different behaviors, then be assured the system will have 100 control entities within the system.

If your employee portal was designed like the way designed in the design 2 then for every behavior there will be a control entity and as you can see in design 2 the control entities are available to all the actors, and for the actors to use these control entities the actors have to know about all the control entities and will have to keep a reference to all the control entities.

So for the actor to keep a reference to all the control entities, I design this Portal in such a way that I come out with a single web page with 100 hyperlinks or 100 buttons each pointing to the control entities representing different behaviors of the system.

How will you react as a user to system wherein you are interacting with a page with 100 hyperlinks and you are supposed to choose twenty links or buttons meant for you?

Probably for the first day you wont say anything but a day will come when you will question as to why do I need to see the 100 behaviors when I am only supposed to use only twenty behaviors.

I feel you will remember that showing unwanted information to the user reduces the usability of the system.

So now you would be able to understand as to why my participants said that there are only twenty behaviors within the system?

The reason my participants believed that the system was only offering twenty behaviors is because the system was designed to only show them twenty behaviors which they are authorized to use irrespective of the hundreds of behaviors which can be delivered by the system.

Its not just true with software systems or information systems, these principles are true for systems belonging to any stream of systems engineering.

Lets say there is a manufacturing plant which has 100 machines within the same and 100 workers are supposed to operate these machines. Since these machines have to be switched on and off, I provide a single circuit board with 100 switches to operate the machines and I ask my operators to come to the board, choose the switch and get the work done.

As you will realize that we will come across the same problem, making the operator choose one switch out of 100 switches is a big problem for him.

Or very simply we can conclude that showing unwanted behaviors to the users also reduces the usability of the system by a great factor.

Lets understand that usability itself can be of multiple types viz Structural Usability and Behavioral Usability.

Introducing control entities in design 2 had hidden the structural complexity of the system from the end user, but as the unwanted behaviors were exposed to the end user, behavioral usability continues to be a problem.

We can summarize saying that by introducing control entities as a level of indirection we are able to increase the structural usability, flexibility and security along with performance and accountability while behavioral usability, flexibility and security continues to remain a problem.

Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer