Blog Moved

Future posts related to technology are directly published to LinkedIn
https://www.linkedin.com/today/author/prasadchitta

Friday, September 28, 2007

Flexibility & Performance

There are known pairs of opposites called architectural considerations. If there is all the money and time in the world given to a project, then the final result of the project (= product ) will not have any bugs, will be highly flexible and highly performant.

But, the reality is - "there are only limited resources - time and cost" available for building the solution. The "QUALITY" is dependent on the available resources.

It is very important to understand which of the contrasting qualities are important for the product. If the solution should be highly flexible it may not be performing at the highest level. To add flexibility one should introduce additional processing.

A real solutioning process is to strike the right balance between the various demands of the expected solution.

Tuesday, September 25, 2007

Technology Driven Change

Sometimes, customer want to get on to the bandwagon too quickly and want to use a new technology with a huge percieved benifit. There is no real need from a business for a change, the project involves creating a completely new technology stack involving comparitively new technology. (which may not be fully mature and undergoing a lot of instability)

It is always good to experimant with a small proof of concept, understand the impacts of new technology after thouroughly evaluating the benifits. The justification and the business case should include tangible and measurable benifts and there should be full involvement from the business in such cases.

If a programme gets approved without complete buy in from the business it suffers from lack of commitment from the business and eventuall it fails to deliver the percieved benifits.

Ideally any change should be driven by the Business -> technology. What about the new technology completely changes a specific business? That is where the evaluation of new technology carefully fronted by the technologists and business specialists called "STRATEGY" team comes for rescue. Still the change is driven by business not by the technology.

Thumb rule ----- Business Change (whatever the reason including the technology advancement ) should lead Technology Change

Friday, September 21, 2007

The Unix command I like most

The UNIX shell command "who am i" is what I like most. When I type it on a shell prompt I get something like

PrasadChitta pts/57 Jul 23 21:36 (hostname.domainname.com)

Why is this important on a blog named techno functional consulting? Some times when on a consulting assignment one should remember this command.

A consultant should help achieve the goal of the project without any bias. Sometimes the consultants cause more confusion especially during the technology selection, vendor selection phases. There is no fixed rule that only one vendor or technology is the best suitable for a given problem ---

All the business problems are more are less similar - to over simplify - "read, insert, update or delete data from/to the storage".

There are a lot of environmental, operational, security, performance, cost, ... type of non functional considerations which will drive the selection process along with the functional requirements of a given situation. It is really difficult to get an "independent consultant".

That is where I use my favorite UNIX command "who am i" to help me play the correct role as an independent consultant when on an assignment.

Other than my consulting career, I search for the answer for the same question spiritually - that is another reason for the liking of this command.

Tuesday, September 18, 2007

Simple looking Complex problem

Approximately a decade back, after spending nearly two years on an optimization problem, I have ended up with the following problem. This is a variation of combination algorithm.

Assume that there are 'm' groups with each group will have 'nelem(i)' elements where i = 1 to m and nelem(i) > 0 (zero)

The problem is to find out all the possible combinations picking exactly one element from each group. [each element in a group is distinct and imagine it is numbered 1, 2, ... nelem(i)]

It looks very simple in the first look but takes time to solve this problem. If you are a programmer try to solve it for yourself. Just try to write an algorithm for this and you will realize the complexity of this problem.

So, there are certain things look very simple when you first see them. Only when coming to implement the solution the real complexity will appear.

Example output 1:
Number of Groups : 4
Number of Elements in Group 1 : 3
Number of Elements in Group 2 : 2
Number of Elements in Group 3 : 1
Number of Elements in Group 4 : 2
G1:1 G2:1 G3:1 G4:1
G1:1 G2:1 G3:1 G4:2
G1:1 G2:2 G3:1 G4:1
G1:1 G2:2 G3:1 G4:2
G1:2 G2:1 G3:1 G4:1
G1:2 G2:1 G3:1 G4:2
G1:2 G2:2 G3:1 G4:1
G1:2 G2:2 G3:1 G4:2
G1:3 G2:1 G3:1 G4:1
G1:3 G2:1 G3:1 G4:2
G1:3 G2:2 G3:1 G4:1
G1:3 G2:2 G3:1 G4:2

Example Output 2:
Number of Groups : 3
Number of Elements in Group 1 : 5
Number of Elements in Group 2 : 3
Number of Elements in Group 3 : 2
G1:1 G2:1 G3:1
G1:1 G2:1 G3:2
G1:1 G2:2 G3:1
G1:1 G2:2 G3:2
G1:1 G2:3 G3:1
G1:1 G2:3 G3:2
G1:2 G2:1 G3:1
G1:2 G2:1 G3:2
G1:2 G2:2 G3:1
G1:2 G2:2 G3:2
G1:2 G2:3 G3:1
G1:2 G2:3 G3:2
G1:3 G2:1 G3:1
G1:3 G2:1 G3:2
G1:3 G2:2 G3:1
G1:3 G2:2 G3:2
G1:3 G2:3 G3:1
G1:3 G2:3 G3:2
G1:4 G2:1 G3:1
G1:4 G2:1 G3:2
G1:4 G2:2 G3:1
G1:4 G2:2 G3:2
G1:4 G2:3 G3:1
G1:4 G2:3 G3:2
G1:5 G2:1 G3:1
G1:5 G2:1 G3:2
G1:5 G2:2 G3:1
G1:5 G2:2 G3:2
G1:5 G2:3 G3:1
G1:5 G2:3 G3:2

I have posed this problem to several programming experts. Still I did not get a better solution yet!

Friday, September 14, 2007

Simple vs Complex

"There is no simple and correct solution to a complex problem." - but there are always multiple simple and wrong solutions to a complex problem.

Multiple simple (wrong) solutions make up a complex mess over a period of time and actually make the final solution more complicated to work with. Eventually it will end up in multiple technologies, data duplication, lot of backed scripts and unknown programs running to accomplish the task to some extent. Manual work - not to say several spreadsheets and personal databases on the end user computers performing a business critical report generation for company's CEO after getting the data from a high end data warehouse using a best possible OLAP tools.

So, giving a through thought about the solution architecture with a strategic perspective is very essential to a consultant.

Thursday, September 13, 2007

Tactical Trap

People fall into this trap generally after the confusion. Result is a Spaghetti. What do I mean by the tactical spaghetti architecture created by so called "tactical consultants"?

Tactical = Quick and Dirty

For a confusing change people will quickly find a tactical solution making the overall information systems more and more confusing.

Reasons for the tactical solutions are many, but they can be grouped into

a. time and cost constraints and
b. lack of strategic view point

Eventually these tactical solutions will run years in an organization and become critical applications without proper documentation.

Confusion and Consulting

Consulting generally starts with confusion. Some call it as
gap between the requirement and what is available, some call it as a scalability issue, technology advancement, sometimes business change, merger or de-merger, or even sometimes as regulatory requirement or as auditing or safety measure or statutory change ---> In a nutshell CHANGE.

Change causes confusion in choosing the future course of action.

Wednesday, September 12, 2007

Why this blog?

According to me CONSULTING is one art and science. There are no sub-divisions in it. Today in the IT world there are technical consultants, functional consultants, business consultants, architectural consultants and this list goes on and on....

After looking at the Information Technology in research, banking, insurance, Public utility transportation, distribution, metering, manufacturing and government sectors closely being a part of the consulting community, I want to share some of my thoughts on technology areas like c, Unix, CASE tools, Mainframe, Thick Client, Thin Client, databases, file organisations, expert systems, business intelligence, scheduling and optimization, GIS, Asset Management, Work management, ERP and Back office, CRM and front office, Field Force automation, Open Systems, Scripting, Automation, EAI, Standards, Frameworks, Compliance, 6sigma, Enterprise Architecture transformation programmes, business change management, programme management, ITIL, Systems management, benchmarking, configuration management, business intelligence, OLTP and OLAP, data mining, warehousing, ETL, OOAD, UML and Modelling, XML, SOAP, Web services and few more...