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...