Tuesday, July 28, 2009

Revisiting Open source versus Commercial Software

I was actually reading an earlier post by myself on Open Source versus Commercial software. The example I had taken was interesting. The realization that dawned is that best transportation systems are ones that offer choice.

So, I can take my car from my house, and still hop on a train to reach my office. This is possible because the train station probably offers a "Park and Ride" facility which follows parking standards, so that I can safely leave my car behind. Doing that with software licenses would require standards, where I can switch between one or the other based on convenience or my perceived value for that software.

Monday, June 29, 2009

Reviving the economy

Understanding Economic Development Organizations

These days there is a lot of talk and focus on economic recovery. A lot of the funds being distributed by the Obama government are being distributed in the name of Economic development programmes. So what does it actually mean? What does it mean to say that there is an economic development programme.

The meaning of Economic Development

Economic development generally means improvement in quality of life for a people living in a certain area. These quality of life indicators could mean access to well-paying jobs that allow people to grow and attain their full potential. It also could mean access to good schools and hospitals and other social amenities.

It is interesting to see that at all levels in the government as well as various industry groups, there are paid employees engaged in the profession of economic development. Their role is to attract investors, businesses and in many cases skilled individuals to choose the jurisdiction they represent as the ideal destination.

The job probably started with someone providing information to interested businesses from within the Ministry of Commerce. As the art and the discipline grew, professional bodies such as the International Economic Development Council (IEDC) were formed. Prominent real estate agents also like themselves to be called economic developers as to traditional planners and development economists.

The primary focus of economic development practice currently seems to be attracting and retaining businesses.

However, the challenges facing any economic development agency are pretty huge. They cannot forecast to any level of accuracy who the next individual/ company looking for information might be. Consultants and potential customers expect more and more information available directly on the Internet in a manner that is accessible, trustworthy and still compelling.

As many recent studies have shown, the decision process is getting shorter but a lot more information actually changes hands. If your jurisdiction's information is not readily available or accessible then you may be losing business.

The importance of focus

Jurisdictions also seem to be questioning how they are perceived by outsiders and residents alike. Many areas have undergone branding exercises to correctly position their jurisdiction in front of the potential investor.

What kinds of systems are needed to support economic development initiatives?

In my mind, the economic development organizations wear several hats. These include the following:

a. A Sales and Marketing Organization
b. A Venture Capitalist
c. A lobby group
d. A development agency

I will examine each of these roles in subsequent blogs.

Saturday, May 2, 2009

Is Productivity to blame?

What could the economic downturn be telling us.
Everyone has their own perception of the economic downturn. In most cases, the same individual may hold multiple perspectives. I too have a few perspectives about this recession.

Today I will write about one of my such thoughts. I can't help feeling that one of the leading factors that lead to this downturn is our increasing productivity. The thought of an empty To do list dreadens me. At office, I find myself spending a lot of time doing other things because if I spend all my time working on "real work", I would be done in half a day. This is probably because it takes lesser time for me to do stuff than it used to take a few years ago.

On the other hand, I get paid more to do the same work than I used to be paid a few years. A lot more. If I extrapolate this to other people and other sectors in the economy, it could mean that people were being paid more for doing less work. Where does this lead us?

I think, may be I don't need to sit in the office for eight to nine hours. Maybe if I just came to office for six hours, I would be able to leave as well. Where do I spend the additional time. If I spend time to upgrade my skills, I would be paid even more to do even less. This in my mind is the cause of the inflationary economy. Since not everyone is benefiting equally from this productivity increase, there would be others who are going the other way. Getting paid less and less to do more and more work. I am sure there are many others in my predicament.

How do we spend our time so that it keeps us busy without leading to inflation? Maybe get out of the money economy for a while and spend time working in the non-money or re-wiring the economy to reduce external costs to environment and society.

Saturday, February 28, 2009

Role of a Solution Architect

Once again I found myself reading about the role of a solution architect in this MSDN blog

The truth is all the comments sound reasonable, but my experience teaches me a slightly different perspective. The role of the solution architect gets clarified when working on large projects. On small projects, the role gets mixed up with the 10,000 other functions that need to be performed.

In my view the role of the solution architect is to understand and interpret the problem that needs to be solved and then define the solution form. No clear solution can emerge without clearly understanding a problem. Thus, the domain of the solution architect is

1. What needs to be built?

2. Why does it need to be built?, Thats it!

3. How it needs to be built is the role of the technical architect or lead designer. Here the solution architect needs to collaborate with lead designer or technical architect.

In many cases, the last role is filled by the solution architect, but from my perspective this is an additional responsibility.

About the how
The how is never a mathematical problem and everyone will come up with their own interpretation based on the resources, time, budgets, skills of developers, familiarity with technology and so on. The how part is where solution architects need to let go and not control everything in the project. Let the lead designers and developers feel responsible for delivering the solution.

So, what is coding?
Also important is the role of coding. While many compare the software design process to the process of constructing a building... where architects design and programmers construct, most programmers I know will be offended by this description.

Reason being programmers are also designers. In my humble opinion, the roles are closer to dynamics inside an architecture office. In an architecture office, the lead architect would spend days and months understanding a project and in the process create several pencil sketches and hand drawings, (even models), to arrive at a form (solution). Once a form is confirmed, the remaining architects and designers would work out the actual plans using CAD or 3d modeling software. The important thing to note is that both stages are needed. While the initial conceptual stage is important to understand the form that is being sought, without the latter stage the actual construction cannot begin. There is no way the pencil sketches and paper models can be used to begin construction. In this analogy, the role of the solution architect is that of the lead architect, who by themselves or with assistance of a team explore the forms that could be adopted in solving a client's problem.

The second process is in my opinion the role that programmers play. Except there is no separate construction stage in software development. The designers (programmers) create the finished product or solution and work with deployment and/or implementation engineers to get it deployed at a client's site.

Should solution architects code?
Solution architects should not code the project they have architected. They may code something to prove a hypothesis to themselves, but that should never make its way into production source code.