Whats a Business Architect

TOGAF divides enterprise architecture into 4 domains: Business, Data, Application and Technology. The most illusive to define being the business architecture domain, the business architect role is often reduced to that of a business analyst’s thus missing the added value a business architect can bring into an organization. A business architect is the most important role when it comes to the future of the organization, as he works on the “what” part of the future while technology most work on the “how” part. A business architect also serves to bridge the gap between the different silos making sure there is a wholistic vision that incorporates all the needs of the organization and the IT strategy to match it.

Lately I came across what must be the best business architect’s role definition in “Be the Business : CIOs in the New Era of IT” in this must read for any aspiring CIO the author defines a business architect as someone who architects the future vision of the business; someone who looks at where the overall enterprise is going. Business architects need to be able to think strategically, but equally as important, they need to make that strategy actionable. She goes on to list what she looks for in business architects, “They can think conceptually, abstractly, and they speak the language of the business. But I’m also looking for people who have a systems architecture background, so that they understand how systems work together. It’s a tough skill-set, and because of that, we augment the team with some outside resources.”

I believe as more organizations become more technology centric and with the unique vantage point IT has across all silos and domains the role of the business architect is going to gain prominence over the next few years as a cross functional blended executive who is able to both represent business within technology circles as well as representing technology within business circles.


BSS Next Horizon, Intelligent BSS

Business support systems (BSS) is one of the main pillars of any telecom it has been around and evolving for a while now and we are at the point where is the next horizon is just around the corner. BSS was founded on the premise that the telecom knows whats best for the customers, products and services are built based on what the telecom expects would fit most of the customers similar to mass produced products where the most common dominator is sought after, a product which is acceptable by most, loved by some, hated by a few.

Globally the new trend is tailored products, with millennial having high expectations and a sense of individuality that mass produced products fail to satisfy, this trend can be seen with the rise of tailor made custom products that rely on a social angle to sell, allowing the customers to express their individuality and their custom built fine tuned products.

Forbes article on millennials

To meet these new expectations telecoms are shifting towards a more nimble stack that would allow for customer tailored products and rapid services release, telecom vendors are picking up the trend and are proposing a smarter more intelligent framework such as Huwaei BES (Business Enabling Systems) and Ericsson’s DBSS (Digital BSS).


ROADS is a concept Huwaei is promoting which in my opinion is a very concise way to describe what the next generation BSS should include.

Real-Time: Promos, Product Recommendations, Order Fulfillment should all take place in realtime.

On-Demand: Products and services can be tailored to match the customer’s need on the fly, Soft bundles that can be built on the fly as needed with a micro-services flexible architecture to cope with it.

All-Online: Anything the customer needs should be possible to do online in a channel agnostic way, with an Omni-channel approach to empower the customer to conduct his requests using the channel most suitable to his lifestyle.

Do It Yourself: Customers should be able to manage and use their accounts with Minimal to no manual interaction with provider, as with google products customers should be empowered to resolve any issue or requirement they have. Customers also should be product and services definition process.

Social: Social friendly product that is compatible with the social infrastructure that currently makes the internet. Customer should be able to exchange or even sell their surpluses through social channels. Gasification features that drives engagement and increases customer loyalty should be built into the product’s DNA.

This concept along with others allow the telecoms to meet the new challenges posed by a shifting market in which the customer needs are drastically different to what was the norm for the last few decades.


Automating the Nespresso Coffee Machine part 2

In this part I explain how to hook up api.ai agent with particle using hook.io as middleware.

Hook.io will get the invocation call from api.ai and acts based on the action and action parameters by calling the correct function on the particle cloud. The responding with the api.io payload to be displayed to the requester.

The first step is building a new hook on hook.io and pasting the following script, modify the access token and device id.

module['exports'] = function coffeeNator (hook) {
 var myResponse;
 var Particle = require('particle-api-js');
var particle = new Particle();

 function output(data) {
 hook.res.end(JSON.stringify(data, true, 2));

 var token = 'YOUR TOKEN';

 console.log(hook.params.result.parameters.action + " coffee request recieved");


 var fnPr = particle.callFunction({ deviceId: 'YOUR DEVICE ID', name: 'warmmachine', argument: 'D0:HIGH', auth: token });;

 function(data) {
 console.log("success called warmcoffee succesfuly");
 // output('Function called succesfully:', data);
 myResponse =new MyResponse("Warming coffee machine for you","Coffee Machine Being Warmed","Coffee Machine");
 hook.res.writeHead(200, {"Content-Type": "application/json"});

 hook.res.end(JSON.stringify(myResponse, true, 2));

 }, function(err) {
 output('An error occurred:', err);

 myResponse =new MyResponse("Warming coffee machine for you","Coffee Machine Being Warmed","Coffee Machine");

 }else if (hook.params.result.parameters.action=="make")

 var fnPr = particle.callFunction({ deviceId: 'YOUR DEVICE ID', name: 'makecoffee', argument: 'D0:HIGH', auth: token });;

 function(data) {
 console.log("success called make coffee successfully");
 myResponse =new MyResponse("Making coffee for you","Coffee Being made ","Coffee Machine");
 hook.res.writeHead(200, {"Content-Type": "application/json"});

 hook.res.end(JSON.stringify(myResponse, true, 2));

 }, function(err) {
 output('An error occurred:', err);

 myResponse =new MyResponse("Making coffee for you","Coffee Being made ","Coffee Machine");


 console.log("****************end end end end end end ");

 function MyResponse(aSpeech,aDisplaytext,aSource){
 this.speech = aSpeech;
 this.displayText= aDisplaytext;



function warmCoffeeMachine()

 console.log("machine is warming");

function makeCoffeeMachine()
 console.log("machine is making");

Automating the Nespresso Coffee Machine Part 3



Step 1: 

Follow the steps in my previous blog entry to connect the Nespresso machine to the internet using particle photon and a servo.

Step 2: 

Now we build an API.AI agent to handle the natural language request translation, this would require building an agent and training it to understand the requests and how to translate them.

Create Agent

Each agent should have a specific domain, in our case the agent’s domain will be home automation.


Create new Intent make.coffee

The intent is the action flow for the agent, it will include the agent training set and the expressions it is to expect and the parameters it expects to gather before invoking an action. In our case the device to use and whether to warm the device or actually make the coffee.

Create Entities 

Here we create the entities (also serve as parameters) that the intent will use.

I defined two abstract entities, device and action.

I then created 1 device instance :Coffee machine and listed all the synonyms i usually use to refer to it.

Two actions were then defined : Warm and make, also with all the synonyms usually used to refer to them.

This slideshow requires JavaScript.

Configure intent make.coffee

Now we go back to the intent and add the user expressions (commands) I added some expressions such as :

  • can I have some coffee please
  • heat up the Nespresso machine
  • prepare the Nespresso machine
  • make me some coffee please

Make sure that the entities are mapped in your expressions. If not you can click on any of the terms and manually map it to the correct entity.


The next step is to define the required parameters for the actions, scroll to the actions section and expand it and add the required entities, in this case we have two required parameters : Device and Action. Also add what should the agent prompt the user if a parameter is missing. For instance you an ask the user for action if it was not picked up from the initial interaction or the device if it was not mentioned.

Fill the action field with a name that can be used by the backend code to execute the user’s request such as : coffeemachine, this will be used by our backend to understand how to execute it along with the parameters.


entities_Action_prompt .png


Scroll down to the full filment section and tick the use webhooks checkbox.



Go to the response section and add a response such as : “working on it.” This will later be replaced by the webservice response, or if the service timed out.

Test Your agent

In theory the agent is ready now to translate requests so its time for some QA, the test scenarios you should try are a fully completed request and a partial request to check whether the more info question prompt would be triggered or not.

The JSON interpretation of the request should include in the result object the request interpretation in this case

Action ->  warm

coffee_machine ->  coffee machine

This slideshow requires JavaScript.

Integrate with FB chat 

This will allow you to talk with your bot through facebook chat. Follow the steps here-> How to link api.ai with FB chat.

Step 3 :

In this step we  set up the webhook endpoint that this agent is going to use as a back end

Go to the fulfillment tab and fill in the url as acquired while building the hook.io service (part2).

Now you are ready to go, test your bot again and you should get your coffee made for you.

Automating the Nespresso Coffee Machine part 1

I like drinking coffee first thing in the morning, however preparing coffee in the early morning is not something I’m a big fan of, so I decided to use my particle photon to automate the coffee making process. Thus turning my normal Nespresso machine to an IoT enabled machine.

The steps for this build are quite simple, it requires the following components :

  • Particle Photon
  • Servo
  • Power Bank
  • Paper Clip
  • Rubber Band
  • Velcro Tape

To build it connect the Servo to the photon, noting that the data pin must be connected to one of the PWM enabled pins, in my build I used Pin D0.

Use the paper clip to twist and attach on the servo keeping it in place using the rubber band, this serves as the push rod that’ll press on the coffee maker’s button.


Attach the servo to the Nespresso machine using velcro and tape, you’ll need to adjust the servo angles on the code to work with your machine and how the servo is attached to its body.

Connect it to IFTTT service and enjoy your coffee, Personally I then created a DO button on my phone to press the first thing in the morning.

Continue reading

Toxic Technology Behavior

Over my career I observed this behavior in more than one company; the only difference between one company to another is how prevalent this behavior is. Its a cancer that slowly spreads in the company kicking out all the none toxic behavior until the entire organization seizes and productivity drops to zero.


  1. Always create a dependency on someone else.
  2. Always leave an open action item pending on someone else.
  3. Make sure to include as many people into the project as possible. i.e. Generally speaking if a project includes more than 10 people it comes to a stand still.
  4. Raise open ended questions to external parties with little or no background on the project on hand. ex: looping in security team/compliance.
  5. Make sure that the last email in the chain is not addressed to you.

The main directive here is to make sure that the project is always late, because of other people of course, and is not delivered. The product of an undelivered project can not be assessed and the more critical it becomes with delay the importance of the people handling it increases.

The worst thing about this toxic behavior is how the number of people practicing it seems to increase exponentially, with the good employees either turning or simply leaving the organization.

Digital Telecoms Explained

Digital is the new frontier in the telecom industry with digital transformation projects becoming a commonality among telcos, but what exactly is a digital telecom ?

A good starting would be defining what is NOT a digital telecom, A telecom that requires direct interaction between customers and its employees can not be classified as a digital telecom.

A telecom that requires direct interaction between the user and its employees can not be classified as a digital telecom.

A digital telco is a telco that allows customers to enjoy the service without having to think or deal with the telco itself. In the digital world a service provider biggest differentiator is being invisible. Digital telcos don’t try to improve the quality of their call centers they eliminate them all together.

Call centers have no place in the digital services era. The services offered to the customer should be built from the ground up to cater for self-service, customers shouldn’t need anybody to help them complete certain tasks, CallCenters were created in a time when the technology fell short from achieving true customer autonomy certain tasks were simply too hard to automate and thus required that human touch.


Too hard to automate? have someone do it

Technology has gone a long way since these days and digital experiences are now possible and accessible. A good example of a digital experience is gmail, it requires little effort from the user with minimal friction with the service provider, gmail users rarely if ever require any support from Google, there is little a user can’t do online using few clicks.

Digital telcos are typically cheaper to run and operate as most of the operational expenses are minimized or even eliminated, this allows for cheaper rates and affording a higher customer acquisition cost (as in pampering potential customers). Digitizing the user end experience can be conducted by focusing on the following fronts:

  1. Online :
    • No interaction with employees should be required, Everything should be available online.
    • The sale process should be offered online with most of the sales happening through the online channel.
  2. Mobile :
    • Customers should be able to fulfill all of their needs using their devices, no task should be too hard or too complicated to be conducted using the customer’s mobile device. This requires building everything from the ground up with that in mind, customer’s should be able to see his account information, buy services, even terminate his line using his device.
    • The entire experience should be contained within a single application, even when the customer transitions to a web-shop this should be done transparently and offering a consistent look and feel.
  3. Digital Store :
    • Since most of the sales is targeted to be conducted online the digital store should be in the center of the customer experience.
    • Drawing from the accumulated knowledge by eCommerce sites such as amazon and ebay to offer the customer a truly tailed experience based on his usage history and segmentation.
  4. Social:
    • Social networks can be seen as a platform rather than websites, value can be derived by building on top of them.
    • Social promos can be created (such as Member Get Member promos) to motivate users to organically share their experience with the product.

A good example of a digital telco is the company I’m currently engaged with, feel free to check out the experience we are offering http://www.Jawwy.sa