Friday, October 12, 2007

Java rant from Steve Yegge

I have missed it all these days but I am rolling on the floor laughing at Steve Yegge's hilarious blog post..err.. Tech News

"you can combine the names of Gang of Four Design Patterns to form new Computer Science concepts that all Java programmers understand, such as the ObserverFactoryBridge, the BridgeFactoryObserver, and the well-known FactoryObserverBridgeChainOfCommandSingletonProxy, beloved of Java programmers everywhere. Java experts at Sun say they're not sure how many combinations there are of the twenty-three pattern names, but there are "definitely a lot of them"

"Man Dies Waiting for Eclipse to Launch
A software engineer in San Jose, CA was found dead at his desk yesterday, apparently having died while waiting for his Java editing program, Eclipse, to finish its boot process."

Man, That's funny..

Monday, September 24, 2007

Concurrent reading - Three great books

I have been reading two great books concurrently. One of them deals with the process of building a product and the other one deals with how do you make a product out of the working software that you have.

1) PeopleWare - Productive Projects and Teams.

How to build a product - which most of the time boils down to how to build a great team and manage them. I will paraphrase Joel Spolsky's review of the book here, since it correctly summarizes what you will get out of this book.

"As summer interns at Microsoft, my friends and I used to take "field trips" to the company supply room to stock up on school supplies. Among the floppy disks, mouse pads, and post-it notes was a stack of small paperback books, so I took one home to read. The book was Peopleware, by Tom DeMarco and Timothy Lister. This book was one of the most influential books I've ever read. The best way to describe it would be as an Anti-Dilbert Manifesto. Ever wonder why everybody at Microsoft gets their own office, with walls and a door that shuts? It's in there. Why do managers give so much leeway to their teams to get things done? That's in there too. Why are there so many jelled SWAT teams at Microsoft that are remarkably productive? Mainly because Bill Gates has built a company full of managers who read Peopleware. I can't recommend this book highly enough. It is the one thing every software manager needs to read... not just once, but once a year".

2) Building a successful Software Business.

This is a book about selling the great product you already built. Everything you need to know about marketing/selling a software product - in fact anything other than building the product itself.

  • Do you wonder what goes on after you build the product?
  • Does the word marketing, run circles around your head.
  • Do you know the various channels through which you can market your product
  • Want to know how to evaluate a sales pipeline - and factor it into your projections.
  • What cashflow is and how to manage it.
  • If so, this book is for you. It is a bit dated(written in 1993) ; However as anyone ever been in business knows - the business aspects of a business don't really change that much.

3) The third book is a great book by Rod Johnson from Interface 21, regarding the development of Java Web Applications - without using EJB.
Ever since I have been looking at EJB from some years ago, I have been wondering

  • Why all this verbosity?
  • Why so many constraints on where my objects should inherit from?
  • Why so much emphasis on EJB and components - instead of pure Objects? What happened to Java being Java?
  • Why so much repetition, everywhere?
  • Why so many transfer Objects everywhere?
  • Why is so much type casting, which defeatsthe whole purpose of Java's strong typing?
  • Why so much glue code to connect/wire services/components
  • Why so much emphasis on RMI?
  • Why do I need to deploy to test a "Hello World"?
  • Having been trained in C and Assembly during my college days, I was wondering why so much emphasis to dumb down programming and drive everything from XML files.

    Then I started playing with light-weight frameworks and understood the motivations of EJB and how things can be simplified. I have been postponing reading this book for a long time and finally got my motivation to pick it up .

Market principles applied to the Telugu movie industry

Recently I have been reading some books about General and Software marketing, when it occurred to me that some of the marketing principles are also applicable in an entirely different context - the Telugu movie industry and actors.

For those who don't know, I hail from a state called Andhra Pradesh in India , and my native language is Telugu. This post is about the various leading actors and we analyze their presence with respect to marketing principles - positioning, segmentation and differentiation.

Let me define the players in this market

Leading Male Actors :- Chiranjeevi, Venkatesh, Nagarjuna, BalaKrishna , various others.

The movie genres are pretty similar to other genres all over the world, with some genres having no parallel in HollyWood. These genres based on audiences are Young/Teens, Family dramas, Action oriented, Young Adult and mature adult.

You can segment the market further by

  • gender - male vs female dramas

  • feminist oriented

  • Ideology driven - religious vs communist vs secular movies

  • Locale - rural vs urban

  • Tone of the movie - comedy vs serious etc.
All the leading male and some leading female actors occupy various positions in this multi dimensional market.

Chirnajeevi is considered the megastar of Telugu film industry. He is considered a very versatile actor who can don any kind of role. As such he has a considerable presence in the industry and he occupies a leading market position in almost all segments. His movies exploit all his histrionic talents in various measures - a feat not easily pulled off by other actors. He has produced blockbusters in all the genres he has acted. You can consider him either first or second in all the dimensions (Remember Jack Welch's GE Way)?which is the reason behind his wide appeal. This is the reason Chiranjeevi's movies have a story line which also normally has a wide appeal across all age groups.

Of course, becuase of his wide appeal and positioning, Chiranjeevi is not the best and first choice when a producer wants to make a movie to cater to specific audiences. The presence of Chirnajeevi leaves some few niches big enough to support a number of other players, who specialzie in one or two particualr niches/genres.

Nagarjuna filles one of these niches very well. He started off as a young action hero but over the years has positioned himself as somone whose movies appeal to young/young adult/urban upcoming professionals and young/teenage girls. He used his natural strengths - good looks and styling to position himself. Even Chiranjeevi could not command as much loyalty as Nagarjuna does in this segment at a similar stage of his career. He rarely plays rural characters and supplements his weak comedy skills with the help of other comedians in his movies. Lately he has been donning mythological roles too because of the void in this space(There are not many other actors who can handle a mythological role).

Venkatesh's core base is married women and families with two kids. Again he started off as an action hero but because of the crowded market place, he could not sustain himself in that category. Over the years he repositioned himself with his skillful choice of roles. His movies show him as a protagonist from middle class with family repsonsibilities. Most of his roles have an emotional component to them, and the protagonist always make some sort of sacrifice for the sake of his family - wife, brother, sister, mother, uncle etc.

Then there are smaller segments such as comedy/funny movies. These segments used to be dominated by ChandraMohan/Rajendra Prasad/Naresh and Ali. However this segment has died down with the advent of cable TV and the comedy TV shows and comedy has since then been an integral part of other movies, but not a separate segment anymore.

Geoffrey Moore says in Crossing the Chasm that every market matures to have one Gorilla, Two Chimpanzees and a number of monkeys. I think the same could be said about the actors in the Telugu Film industry.

Coming back to the book which started me thinking along these lines - It is a book named Building a Successful Software Business BY Dave Radin ; More one some of these books in my next posts.

Friday, August 17, 2007

One pitfall of using Scripting languages

It seems Facebook source code leaked the other day. And for those of you who don't know, Facebook uses PHP. Even though the problem was apparently due to a misconfigured server, it nevertheless exposes the problem with interpreted languages in the web world.
Nick Cubrovic (founder of OmniDrive) has a great post on preventing PHP leakage.

May be this is the reason , a number of enterprises still stick with compiled languages like Java on the web.

Thursday, August 02, 2007

Systems vs Products

Yesterday night I was at the Silicon Valley Product Management Association(SVPMA)'s monthly meet and had the opportunity to hear Adam Richardson from Frog Design speak about managing Systems vs Products. Frog Design is a strategic and creative consultancy, which works with companies to design product strategies and designs products for their clients based on those strategies.

The main topic was about the management of the technology eco-systems(the technology eco-system around technology products), rather than just the products themselves. Let's call these eco-systems "System "

Some key take away from the talk were

  1. It is not about a product in isolation anymore. These days systems matter more or aw well as products sold in isolation.
  2. Systems are hard to manage because they are abstract. Most products ( at least the physical one or those with some form of UI) are tangible - Whereas the eco-system around a product is abstract.
  3. Systems are hard to manage because they cut across organizational boundaries and functional business units. In other words, a slightly dictatorial approach to building systems works better than the democratic approach. Steve Jobs and Apple are a great example in this regard. Without Steve Jobs, the various functional units inside Apple could not have collaborated to build such a good eco system around the iPod.
  4. Since managing systems is harder than managing products, a company which does it right has built a great barrier to entry. The iPod has built such a good eco-system around iTunes, Mac, music and cool marketing that it is hard to replicate that experience easily.
  5. Product Managers should ask themselves what sort of organizations they are in , in order to pull together the various functional units- top-down vs bottom-up, faith-based vs proof-based organization really matters.
  6. In the early stages of a market, when the user experience has not been standardized, you can have a closed system with high margins. However, once the user experience becomes standardized and the market matures, open and modular systems tend to work better and your profit margins fall. And at the far end of a mature market i.e. when the user experience of your product overshoots the expectation of the market is when you run into the Innovators' dilemma.
  7. All the stages mentioned above are fuzzy i.e. think hard about what stage of the market you are in.
  8. Feed the system vs product mind set right into your MRD, at the very earliest stages of a product development. Once it becomes a PRD, it is very hard to change the product mindset to a system mindset. May we should call this a SRD??
In essence this was great talk.
Thanks to SVPMA organizers/volunteers who made this happen.

Tuesday, July 17, 2007

SOAP and finally some REST !!

Since I work in the EAI/Web Services field, I am not new to the REST vs SOAP debate; For a while, I have been thinking that it is more of a choice in a web service design
Fortunately I came across a very good article on the REST vs SOAP debate yesterday and now realize that the issue is much deeper than that;
It seems to me that debate falls along the lines of other common debates between - practicians vs theorists, generalists vs specialists, strongly typed interfaces vs weakly typed interfaces , KISS vs complicated , bottom-up vs top-down and so on.

Why is it that we in the Software Industry always seem to have to deal with so many philosophical arguments, unlike other industries? I guess this has to do with Software being much more malleable , than , say most metals.

Monday, July 02, 2007

Networking in Silicon Valley

If you are in Silicon Valley, there are a number of avenues to meet interesting people in Technology. You can attend events on a number of topics of your interest and they don't cost that much to attend. Here are some of the organizations which I attend whenever I get time.

a)SD Forum -
SD Forum is very much useful when you want to keep in touch with the latest Technical trends in the industry. They have various SIG's (Special Interest Groups) which you can attend and many startup founders present their technology in the relevant SIG's.

They also serve as incubator to companies and I heard that Sugar CRM incubated in SD Forum offices.

b)TIE (The Indus Entrepreneurs)
c)SVPMA(Silicon Valley Product Management Association)
d)Churchill Club

Thursday, June 28, 2007

Compilers courses separate the men from the boys

Steve Yegge has a recent post on the importance of compilers in a computer science curriculum.

"One reason many programmers don't take compilers is that they've heard it's really, really hard. It's often the "capstone" course of a CS program (OS often being the other one), which means it's a sort of "optional rite of passage" that makes you a Real Programmer and puts hair on your chest, regardless of gender or chest-hair preference."

"Designing an effective undergrad CS degree is hard. It's no wonder so many ivy-league schools have more or less given up and turned into Java Certification shops."

Sad but it seems this is true. Compilers course is very hard and I know it damn well, having taken this under Prof.Wei Chung Hsu in my Masters at the Univesity of Minnesota. We designed a small compiler for a language appropriately named C-- ; Our compiler could produce MIPS assembly language instruction set , which we would optimizie in the final phase for reducing redundant loads and stores , which we would then run though a MIPS simulator(SPIM, I believe) for execution.
In fact, one reason I took the course was that I wasn't happy with the way compilers was taught in my Bachelors, and I knew that I would never get a chance to learn them again in my professional life.

If some Software Engineer/CS student understands compilers, I would rate him very highly.
The only courses tougher than compilers at University CS programs are the ones dealing with Complexity Theory, Turing Machines and automata theory.

Tuesday, June 26, 2007

Netscape founder Marc Anderssen may have joined joined the blog world late, but he seems to make up for lost time by coming up with great posts after posts. A must read for anyone aspiring to be an entrepreneur.

If you want to know how to approach VC's , or how to become a VC backed entrepreneur , it is a must read.