Saturday, July 23, 2005

NOW, cheaply, and without taking much trouble?

I was going through the BLOG of Grady Booch "Monday, July 18, 2005 Grand Challenge" at http://www.booch.com/architecture/blog.jsp

The words "NOW, cheaply, and without taking much trouble" registered deep within me.

As managers, we try to keep things simple, or at least look simple. Reasons we can attribute to many factors, but fact remains all the processes & tools etc, even considering, are not yet "NOW, cheaply, and without taking much trouble"....

Looks like, miles to go before I can sleep?!

Some common problems in software development

1. Customers are kept at bay (at times, because customers are assumed to be ignorant or too demanding and at times, because too much of knowledge of inside realities may affect their confidence in the solution .... in either case, it is better to expose the reality to the customer under controlled environment. Customer has right to information, right to be educated and right to make informed decisions
2. Casteism (certain roles like testers, technical writers etc are considered to be of lesser value ... of course, the situation is improving at least in isolated pockets .... only a teamwork can lead to a quality product)
3. Defering a risk for a later day or delegating it to someone else; delegating does not absolve any one, least of all the organization, of any risks, damages or guilt
4. Covering up the ignorance; considering the pace, at which the industry is evloving, it is not practically possible for any one to acquire in-depth knowledge on all related areas and it boils down to "almost always seems to mean knowing who knows what and figuring out a way to bring them to bear on your client’s
issue.”. Organizational culture and environment, and in turn, customers should accept this reality and move towards what can realistically be done
..... More to add, ... may be some other time

Imperatives of successful software development

Manage
1) Risk
2) Complexity/Size
a) Conceptual integrity of solution vis-a-vis problem: Essential
b) Structural integrity of solution: Accidental
c) Work
i) Progress
ii) Activities
iii)Work products
2) Environment (Platform, Language, IDEs, Tools, and Process): Accidental
2.1) Resources (time, team, machine, software, and other Work products)
2.2) Reusable software assets (Patterns, Framework, Components, Idioms, and Automation assets)
3) Change (requirements, environment, and team ie. no, skills, attitude, ...)
4) Communication across all stakeholders (including customers & users)

Success of art and software development: a few loud questions

What makes a software success? What makes software development success?

I know both are not the same; though, may be related in some ways.

What makes a product success? What makes an artistic creation a success?

What makes music a success?
Lyrics, Tune, Visuals, Choreography/Actors, Context ....

Art is playing to an audience or playing for the self?

Answers to these questions at various levels are different...

Monday, June 27, 2005

Software factory at work!?

One of my customers, with whom I am working very closely for last couple of months is actively into many a things which are part of software factory .... seems to be great and quite interesting .... makes a lot of difference and it works!

Give me the methodology!

Quite often, I find people asking me the methodology that I advocate and what they should adopt; whether it be for requirement management, architecting, analysis & design, testing etc.

In my experience with various customers and various kinds of project suggest that there is no single answer that can apply to all such cases and yet be specific to the detail.

Many of ‘so called’ methodologies are steps evolved based on local successes, being generalized or it becomes too exhaustive like an encyclopedia. What always works is something is evolved based on these global experience to sent the specific need.

I keep getting this kind of questions and I keep asking …… what is the problem?

What? What? What? Why? Why? Why?

Back again....

Hectic pace of work kept me away from blogging for couple of months by now.

Hopefully, I am getting into relatively easy pace as the initiatives, which I was working on, has picked up the critical momentum and would require only a moderation from side.

Typically, I engage with the customers who are developing software to solve some of their problems related to software development. It often requires a combination of mentoring on tools and finetuning the software development process.

Most of my customers are not global software giant but are big in their own way. They play an important role to ensure the world runs on software smooth. They develop software for business spanning airlines, plantations, healthcare, banking etc

On top of this comes the IBM Rational assignments which are essentially training on the IBM Rational tools and methodologies. All of them happens to be of advanced nature rather than structured training offered by IBM Rational.

That makes the job challenging and enjoyable

Monday, April 04, 2005

About architecture

http://www.iasarchitects.org/blogs/index.php?cat=1

Learning by denial

Quite often, we become victims of our own knowledge!

Early stage of our learning, we move with doubt, caution or skeptism, depending on the topic, our previous knowledgebase, source of new information etc. However, soon the knowledge gets embedded in our very being and is taken for granted ... source & validity rarely questioned, by the self and we resist questions from others as they seem like a question on ourselves.

1+1 is assumed always to be 2, while we know that it could be different depending on the context, ... also, 1 and + are only notations for something. Till this realization comes, 1 the notation and the 1 the notion are intertwined.

Here, comes the importance of denial. In Indian approach, we say the realization (of the supreme Brahma, from the point of knowledge pursuit) can be only by denial (Ne/ethi... ie. Na Ithi ... That is "not that'). Disassociating ourselves & knowledge to its source

Saturday, April 02, 2005

Limits of 'Science'

Quite often, we find many arguments being claimed as scientific implying authenticity of the statement.

What is often forgotten are limits of 'science' the way we define.

In science, we consciously choose some specific techniques which can be classified as 'divide & conquer' or 'abstract'; and often their combination (in any case, the big picture is lost). This restricts the space in which our theories operate and hence its validity. Further, our hypothesis are validated with deduction, contradiction or induction. Most logical, in the general sense of 'logic', being the former and least being induction as induction is more of an extrapolation. Quite often the dependence on a priori knowedge even for the former limits the validity of hypothesis testing.

These limits the scope of science to a limited space, data (pure data from the limited space is often hard to come by, in the attempts of scientific approaches in daily life) on which our theories are based and However, we apply or extend theories quite often these limitations are overlooked and scientific premises are presented and accepted more like gospel truths, abusing the very value and sanctity of 'science'.

Monday, March 28, 2005

About consulting experience: Health practice & Software Engineering

There have been many hypes in the market and, therefore, many die-hard loyalists for all of them. They often advocate and consume solutions at their own discretion. Quite often, it may work out as well; but at times, it also proves to be fatal.

Would you say that it does not happen so in medical field? I agree that it is true; by and large…. But, there are many instances of patients allured by the glossy advertisement and scientific-like reasoning….. Often, less educated, rural folks are the gullible victims, though once in a while.

Part of the reason there is that we are more careful in our decisions; after all, it affects life of our own or our dear ones.

I would say, from my experience, is that caution is rarely exercised in software development. There was a trend towards that immediately after the dot-com collapse; but now that the market has recovered, it is all back to the same old practices.

Decisions are driven by the hypes; rather than the compelling need to solve a business problem; in my experience, a business problem is rarely solved by a particular medicine alone; it involves a combination of factors; people, process, methodologies, tools, … and they influence each other. Die-hard loyalist of one may deride another; vendors of new technologies may suggest these as things of past. But, no matter, what tools, processes and standards come in, if caution is thrown to winds, result would always be a chaos.

I shall be more specific; for instance, object oriented approach & UML has been around for almost a decade. But, percentage of successful adopters are far too low if you pose a fundamental question like ‘Why did you adopt this approach? Did you actually derive that benefit from this adoption?’. I just took object oriented approach as an example just because of the hype (that was) around it; you could replace that with automated testing, total quality management, business process re-engineering, CASE tools, ISO, CMM, CMMI …. Often, these are used for marketing, by the producers of the technology naturally; surprisingly by consumers as well!

Be warned that market is set for yet another transition; in terms of processes, methodologies and tools. I shall probably discuss some time later, as and when the time permits. I do not mean to deride or belittle the quality of new solutions; they do provide definitely a quantum jump. The point is, jump to what? Do we really need it? Can we afford it? In terms of cost, learning, ….? Can we defer? Can we gradually adopt?

Innovators and creators of the technology has all reason to hype up as they need to leverage their the competitive edge but for the followers, it is invariably a constant chase of a mirage, the hard way. Almost as one seems to learned something and is ready to put into use, the very core of what he learned is undergoing a change….. but for what benefit? Is it realistic? Is it the solution that we really require? What would be involved to make the transition? Believe me, it is never instantaneous…. Because, as of now, every organization, every project, every team, every customer has their own specific differences…. Retention of the knowledge and assets will not happen at the click of a button!

Well, in medical service, usage, positive & negative effects, contra-indications etc of a specific medicine is well-documented and available, at least with the doctor. He, or she, is supposed to where one can effective, where one may not be and where it could be counter-productive! What is our equivalent?

Argument could be that hazards of a wrong medical practice is too high, to tolerate slip. When we take pride in pervasiveness of software, it is high time for us to accept that, quite often than not, ours is no less…. Only difference probably being that damage is incurred much later and we could probably diffuse it in time …. In reality, we never get prior information for disasters and, in the world where the developer works more than 10-12 hours a day, we rarely have time to complete our work; leave alone anticipate and diffuse a problem; the moment a code is shipped out, focus shifts to the next functionality to be coded or bug to be fixed!

Marketing hypes around new solutions would continue to be around for time ahead as well. Also, the pace at which changes happen would continue to be too fast to absorb. Unbiased information would continue to be hard to get. Given these facts, what are our choices? …. We cannot be blind to changes; as changes will any way become more and more inevitable, as the time goes by …. Anyway adopt? That is like, self-medication without any knowledge of effects and contra-indications of medicine.

I am intentionally not proposing an answer; My intention was only to share the concern …. If you share my concern, ponder over; solutions may seem obvious but it is truly not; it is not all that easy…. Had it been, solution would have naturally come … do share your thoughts …. If I have got you thinking on this, I would consider that the purpose of writing this is met.

Monday, March 14, 2005

Hectic schedule; just getting back to routine

Had a hectic schedule for last two/three months .... travelling around the country with training & consulting assignments

My team members have started picking up the threads and hence, I look forward to some slackening in the pace .... and hopefully, sometime for the blog!

With the Atlantic release from IBM & forthcoming VSTS release of Microsoft, market is set for a quantum leap into a new era in software engineering.

Nevertheless, the basics would remain essentially the same .... process, methodologies and tools are more of a means to an end; rather than an end in themselves ..... This fact often gets lost in the marketing din

Hope, as an industry, we would learn from the mistakes of the past....

More in subsequent blogs... I am yet to recover from exhausting assignment that I went through

Monday, February 07, 2005

Back to basics ....

Too tight a schedule to blog ....
Just a thought lurking in my mind...

It is just basic fact of data processing that when rate of change of data far exceeds rate at which data gets captured, captured data overtime tend to loose its completeness and integrity over time .... Have we forgotten that basic fact in the practice of software engineering?

Only thing that gets churned out is code, because without which software does not get developed .... Changes in requirement, design, plan etc remains often in the mind .... less and less as the time pass by

Sunday, January 09, 2005

Moving software engineering from hype to reality: a long journey





http://www.theserverside.net/news/thread.tss?thread_id=30082

Friday, January 07, 2005

Software Engineering Consulting Business & Me!

I have just finished a short assignment with one of the best software development house in Kerala, if not the best. That they are is my personal
rating. Of course, I believe, that matches with the popular perception as well .... It is visible in their interactions, process adherence, team synergy, technical competence, product quality, quality of documentation etc .... That is to say, that commitment is total; rather than in pockets .... and it is real; rather than hype ... In fact, I find them staying away from hype.

Even with this maturity, I find them on the verge of a time bomb .... ie. Information Explosion ... defeating its very purpose!. The nagging question is, how much to engineer? How much to doument? To ensure quality, repeatability & productivity? Beyond a point, too much of process, engineering & documentation becomes counter productive ....

While it is tempting to venture into advices, to draw an ad hoc line between agility & engineering .... What is alarming is that, this phenomenon is pervasive ... It is repeating itself, from an organization to another, from a project to another, from team to another

I would call for a judicious, well thought over balancing act, rather than dogmatic alignment to one camp

This brings me to a question as to what do I do in my engagement? What is my consulting work is like?

When I started my career in software development, a very few people in this part of the world knew what it is and I spent a lot of my time explaining to what it is all about .... and helping many to get into it

Now I am into software engineering consulting .... yet something not very well known to many!

Academic & scientific knowledge has its place in day to day business as against an open ended, in depth research in pure science
Technology as an application of science & enabler has its place
Engineering as a scientific & systematic approach, with well-defined review points, probes, measures and control mechanisms has its place
All these should help in the individuals involved and in day to day running of the business, making it success and ... in turn, the society we live in and the mankind at large

Filling this gap wherever I preceive ... taking knowledge from business to academia & back ..... That is the role I play
Not very common ... rather unchartered water .... quite challenging, interesting

End of the day, I am exhausted but thrilled of having gone one step ahead!

Sunday, January 02, 2005

Descarte's Meditations

I am here quite alone, and at last I will devote myself sincerely and without reservation to the general demolition of my opinions

... Once the foundations of a building are undermined, anything built on them collapses of its own accord; so I will go straight for the basic principles on which all my former beliefs rested

Ref. Catherine Wilson, Descarte's Meditations - An introduction', Cambridge University Press, 2003

Saturday, January 01, 2005

At an IBM event on RUP & active software in 2004





http://www.saayujyam.com/08.jpg

Lokaa Samasthaa Sukhino Bhavanthu!

Another year has gone by ....Though it is a dawn of just another day, conditioning brings in many feelings...

A feeling of nostalgia ...A feeling of satisfaction ...A feeling of lost opportunities ...

Hope of better days ahead ...A resolution to be a better person ...A time to make corrections, A time to surge ahead with renewed energy...

On personal front, my mother's health condition took a turn for worse .... somewhere in the fag end of 2004 but has improved since .... yet that there is much yet to happen, continues to hurt and haunt me

Last year 2004 was officially satisfying to an extent considering that the team has proven itself in the field and on papers, after a long sustained effort over more than a year. It is a proud moment for me, having been able to duplicate success of Rational, in a small company ... with a team of different background
At the State, National, International levels, what has met a mark is a stream of disasters ...Kumbakonam tragedy, tsunami .... More than just the disaster, what was disturbing about the Kumbakonam tragedy (read Black Friday, at Kumbakonam in http://www.saayujyam.com/Musings.htm) was that even education has become a business commodity and profit in business has found priority relegating the concern for quality, basic amenities and security to back seat

While disasters happen, it hurts when we find that many things that could have been done to avert the problem or lessen its impactSame holds true with tsunami ..... Somewhere hidden in the news papers is the message that a working telephone connection in the island of Java could have helped in communicate the world about the impending danger.. and another message that India may have had an early warning had it been a signatory to some association of Nationals for seismic alerts....
What disturbs is when we have very advanced systems like satellites for communiting across the world and even into space, sometime even simple things like telephone line is not yet everywhereRich countries & poor countries, rich gods & poor gods, rich people & poor people ....Are we talking about technology & science for the purpose of technology & science .... or for benefit of mankind ... or a some previleged ones?Yes .... people with money often gets what they want ..... but that should not preclude the basic facilities for everyoneHave we lost somewhere down the line?Are we not any longer human?Have we lost our capability to react?Have we lost our power to make difference?Or is it only for stage shows?

It is all the more significant now that software is playing a crucial role everywhere and software engineering is heading for significant progress in 2005A lot of things were happening behind the screen in companies like IBM & Microsoft .... and open source is, as well, very much around in that spaceA lot of noise is expected in 2005 on the concept of software factories, model driven architecture/development, collaborative development environment etc2005 looks promising from that angle, where many things that were not possible yesterday become possible and for larger massIt provides a new business opportunities and challenges
While negotiate our way into the new world amidst all the din, I hope we will not loose the human touch ... a feeling and caring for another human beingI am not refering to giving alms to the begger around the corner (There are many views on that and I do not want to comment on that ....) But I wish, I pray that we do not loose our compassion for another life, caring for someone struggling .... our ability & willingness to contribute to make the difference

That is what I believe would make all the difference to the individuals and world at largeTechnology, Science & Business has its place ... but we should not forget that we are human in the first place

Wish you all a happy & prosperous new year