Development on the (Traditional Egyptian Café) Style

January 24, 2009

In the Traditional Egyptian Cafés they are serving customers in a very unique way. The waiter is going to customer to collect the order without single piece of paper. After that he will call the person  making the drinks in a load voice: “And give me 1 cups of tea for Mr. X and make it well” as he knows every customer by name. In Arabic its it will be: “ We Ma’ak Wahed Shai Lee A’am X We Salaho”.

Lately I found out that some software makers are using the same technique. The person in charge will go and meet the customer to collect the requirement. As there is no written one from the customers the customer will tell the requirements verbally. Of course customer will forget or miss some points (X1). After that the person in charge will set with the developer(s) and tell them what the customer requirements are. Again the person in charge will miss or forget some points (X2). The developer again will miss some of the requirements while he is developing the program (X3). Finally, the requirements will be X – X1 – X2- X3= fight to figure out is it in scope or a change request. If you tried to tell them that they are better to write the requirements and singe it off from the customer.  There is no time for this, they will answer.

Let me explain also how much extra time they will spend if they didn’t write the requirements. First, the struggle about the requirements as discussed before. Then, imagine if the developer want to confirm something. As he/she don’t have reference to check in it, he will go back and ask the person in charge about the issue. Sometimes the person in charge also has to get back to the customer to confirm it. What if the tester wants to develop test cases?? The person in charge also has to set with the tester to transfer the requirements (and the same thing will happen). What if there is more than one developer involved in the thing. I will let you imagine how they will work and collaborate.

I can only tell these software makers one thing:



Comment it… It will run better

January 18, 2009

In the last period, I had to review some code having performance problems.

As a first step, I am running a profiler. Then, in most cases I got this result:


Extra checks, Unnecessary DB transactions or any kind of unnecessary code requires extra processing. It will not be noticeable in simple test case. It will be raised only if a large number of concurrent users hitting the same area or when huge transactions executed.

Here I think the non-functional requirements are very important but unfortunately most of the time it is not given enough attention. Also stress testing is totally recommended.

For developers, don’t comment it just don’t write it will be much better 🙂