Wednesday, December 06, 2006

An Ode to Extreme Programming (XP)

For those who admire XP (eXtreme Programming) or are intrigued by it, here's a music video from a team who seems to have done it - and lived to tell the tale. Its a wonderful way to drive messaging within a group or company.

If you sift out the grammatical disruptiveness of the translation, you will realize that the latter part of the song is quite profound. Life is all about improving yourself, breaking out of self-imposed barriers for a better tomorrow.




Simple and inspiring. This song's been playing in my head all day long.

Monday, December 04, 2006

Yahoo v/s Google: Who has the right Answers?

Google announced that it is shutting down its Answers service. Yahoo Answers, on the other hand seems to get more popular by the day. The chart below from hitwise says it all.



Yahoo Answers relies on the community to provide answers (like Wikipedia), whereas Google had researchers answer them. Look at which one was more popular: the wisdom of the crowds. This seems counter intuitive - getting an answer from an expert at a subject should be more valuable. The bazaar style prevails again.

Sunday, December 03, 2006

At Bangalore Barcamp

I spent the better part of my weekend at the barcamp in Bangalore, held at the ThoughtWorks office. Day 1 had about 200 people. I haven't woken up this early on a Saturday morning in a long time, but I had to get there to book my speaker slot. Mine was the first presentation for the morning, on Web 2.0 Business models (or, where's the money, honey?). I was flattered when I saw the room full of people, and even more so when the organizers decided to move me (and my audience) into a bigger room to make place for everyone who wanted to attend. I had a great audience, so there was some discussion around whether online advertising is a really sustainable revenue model, what value propositions would really work, and whether we are looking at a Bubble 2.0 in the making.

My slideshow




Me presenting (Photo Courtesy: Arun)

Sowmya Karmali's session

Day 2 had lesser people, the "more serious crowd", according to someone. There were more informal gatherings, people hacking at something, blogging, podcasting, everyone airing their opinions. This is what you get if you get some geeks together on a weekend and give them enough food to eat.

Some interesting sessions I attended

  • Jon Boutelle's talk on building scalable web applications with ruby and s3
  • Marco's talk on Agile Software Project Management
  • Kiruba's talk on Proto.in
  • Card walls and Dancing by Deven Tolia
  • Building Ajax web applications using GWT
  • YourTube: Create your own video sharing site using OSS by Pradeep (motu)


More shared media:

Slides for (some) sessions here and here.

The flickr photo pool here.

One problem I commonly face at events is getting oversized T-shirts. I have a size L. Anyone who wants to trade a size M for a size L please let me know :)

A couple of sessions I attended deserve separate posts, those are coming up in a bit.


Monday, November 20, 2006

Will the real Zoho please stand up?

While browsing today, I found a site called Zohho.com, that claims to be a mobile social networking site. Make new friends and find old ones by sending them sms. Novel idea, although I personally think it is very intrusive. But thats not the reason I'm writing this. Look at the name! Sounds way too much like Zoho, a company I admire and have blogged about in the past. Dont do this, guys! You're damaging the brand value of both companies. I mean, if you are serious about your business, do not choose to be a me-too (name-wise). It is so un-cool, almost parasitic in nature.

I wonder if the Zoho guys know about this, and if they do, are they doing anything about it?

Update: Apparently they do. Arvind from Zoho sent me mail that their legal department is going to send them an anti-cybersquatting cease and desist notice shortly. I will update this post as this develops further.

Further Update: Zohho is now renamed to Wohho. The name issue got resolved quite quickly and amicably. Zohho.com also redirects to Wohho. Now I do not mind linking to their website.

Saturday, November 18, 2006

Busy Weekends Ahead: Foss.in and Bangalore Barcamp

Two very interesting events coming up in the next two weeks (weekends, really). Foss.in and Bangalore Barcamp.

For the uninitiated, Foss.in is a gathering (literally - there are scores of people) of people interested and/or associated with Free and Open Source Software in India. It is happening this week: 24-26 November. I went there last year - thats where I got hooked onto Ruby on Rails. Let me see what bites me this year. There's an Andrew Cowie session, that I will attend for sure. Be sure to register if you are interested.

The Barcamp is happening on 2-3 Dec, look here for more details. Barcamp is strictly for noisy, opinionated geeks. All participants, no attendees, they say. Piece of trivia: The name Barcamp came up as a response to O' Reilly's annual, by invitation meet called FooCamp. The House of Lords and the House of Commons, if you will. Pass the word around for the commoners to meet, and ask them to register here.

Another piece of trivia: foobar, acme corp are called Metasyntactic Variables. Wow, I didnt know it had a name. Think of all the people I could have confused via my design document or spec.



Wednesday, October 11, 2006

Sowmya's favourite "new" companies

Startups are in fashion again - thanks to Web 2.0, the second wave of the Internet or whatever you want to call it. Everyday my RSS feeds throw up links to companies I've never heard about before. I’ve compiled a list of my favorite new (I deliberately refrain from calling them Web 2.0 – I don’t want to spark off that debate.) companies. I am curious as to where these companies are headed. I admire the guts, worry about revenue models, marvel at the idea, love the underlying technology, and wish for growth. I hope they just don’t get acquired and merged (some are, but continue to retain their identity), but continue to challenge the Goliaths. I suppose some will, but Dear God, not all of them. This list is in no particular order, doesn’t contain detailed product or company reviews. I’m just declaring my love for them.

Six Apart: These are the guys who make Typepad, MovableType, Vox and LiveJournal. I personally think Typepad is the best blogging engine available, if you are a professional blogger. Any corporate looking for a hosted blogging engine should seriously consider Typepad/MovableType. I just signed up to Vox for my personal blog. Combining blogging and social networking is quite powerful for an individual as well as for a community of users. That’s what makes Vox promising.

37Signals: Just creating a framework like Rails is enough to get me all ga-ga about these folks. For a living, they create productivity software tools for small businesses and individuals: the Fortune Long Tail, if I may call it. BaseCamp is the flagship product: it’s a web-based project management tool. They follow it up with more lightweight, collaborative and cheap tools like a collaborative Writeboard, and a chat tool (Campfire). The DNA of these tools: lightweight (web based), collaborative and simple.

ROOT Markets: In the Gold Rush, it was the toolmakers that made the money. Take Levi’s for example. ROOT Markets is a company focused on Attention. (If you aren’t aware of what Attention is, in the internet sense, then you should read this article.) They have an exchange called ROOT Exchange which is like a trading platform for online leads. This is one company that could make it big, as a platform provider.

Pluck: I love my Pluck RSS reader. It’s tucked into my browser (IE and FF), has a client side install that subtly informs me of new feeds, and helps me categorize my feeds. I see my list of subscriptions in a neat tree on the left and the feeds (summaries) on the right. Google Reader now does something similar, but I’ve been using Pluck for almost a year and a half, and I haven’t got a reason to move, until now. [See update at the end of the post.]

Zillow: Started by ex-Expedia employees, this company recently received 25 million USD in second round funding, (a total of 57MM till date). They provide free estimate (or Zestimate, as they’d like to call it) for property buyers and sellers in the US. At first, I thought that what Expedia did to travel agents, Zillow was attempting to do to real estate agents. Apparently not. They think of real estate agents as one of their consumer group, because a real estate decision is a more calculated one than a travel decision. This is the best part: revenue generation is through online advertising. Will they be a billion dollar (value) company by making money through ads?

Zoho: With a name derived from “SOHO”, this company creates office productivity tools with an aim to create affordable software for business. Zoho Writer and Zoho Sheet are in direct competition to Google Docs and Spreadsheets. I wonder if this is on Yahoo!’s shopping list. One big reason this company is on my list is that these products are “Made in India”. Lage raho, Innovation. Zoho’s challenge is going to be promotion: How do they compete with the marketing prowess of Google?

Flickr: Photo tagging and sharing. Got acquired by Yahoo. Subscripton-based revenue model. One of the best communities. But all that is known. The reason I feature it here because of their interestingness solution. When you search for photos, you get them sorted by most interesting. Flickr has managed to algorithmize (if I may use the word), interesting. A photo’s interestingness quotient is based on a combination of how popular the tags associated with it are, how many views, how many comments, how recent and so on. Doesn’t this remind you of Google’s PageRank?

These are my top Web 2.0 picks. If you think there is a company that should be included in this list, drop in a comment. There’s a good chance that I may not have heard of the company yet, and will certainly take a look at it.

I conclude this post by mentioning two companies that I have admired almost all my life. (These have nothing to do with the Web).

Bose: Has a unique, hard to clone DNA. Lives and breathes sound. So focused, it rubs onto you. You read their brochures and you see the underlying passion that goes into creating such world class products. The only thing they’re not too loud about is promotion. You don’t see in-your-face ads from these guys. And when you do, it’s the product that gets the max screen space, not some celebrity or model.

National Geographic: I’d do anything to work for NatGeo – anything: Narration, production, program design, cameraperson. I’ve admired this company ever since I was a kid and would read the magazine in my school library. There’s so much learning and discovery in what they do, I don’t know if any other company has so many new things happening everyday.

Update:
Pluck is withdrawing its support for the RSS reader from Jan 07, to focus on its (revenue generating) products. Browsers (FF 2.0 and IE 7.0) now have built in support for RSS reading - thats the way of the future, I guess. I'm going to move to Google Reader (second best, imho). Goodbye Pluck, it was good while you lasted.

On a friend's recommendation, I'm going to add Jobster to this list. Again, a clear business model, and really a shift in the way one would think of job sites. It is a focus shift from a traditional “upload and search for resumes” to a “create your online profile” one. Well funded, and steady revenue growth already, and 10% of Fortune 100 as customers.


Saturday, October 07, 2006

@ 95th percentile of Nerdiness

I just took this fun test that calculates how nerdy I am, compared to the others who took the test. Well, turns out that I hit 95th percentile. Just because I know my computer's IP address, know some chemistry, have a messy room and can recognize Isaac Newton. I admit I am a bit of a geek, but 95th percentile is a little unbelieveable. I've deduced that not enough people are taking this test (for the statistics buffs: sample size not large enough), so a little propaganda wouldn't hurt. I'll re-take the test 3 months later and see if I get the same scores. I got a cute little badge to show off, though. Here it is.

I am nerdier than 95% of all people. Are you nerdier? Click here to find out!

I'm going to put it up as part of my profile and see if that scares people away ;). Thanks to ashwin for pointing me to this one.


Monday, October 02, 2006

My Blogger Template, Rehashed

Anyone who's edited his/her blogger template will identify with the sense of achievement I'm going through right now having edited mine. Here's whats new (and credits to people who I took help from).

I moved to a 3 column layout, thanks to some help from my friend Ashish. From there I got to Pam's site, where I also found the basic code to get me started.

I liked some of the styles that were in my previous template "TicTac Blue" (available on the blogger templates page), so I re-used some of them. Credits to Dan Cederholm for the images I still continue to use.

Many Blogger users crib about the lack of support for Categories. There are plenty of hacks available as a workaround till we see Blogger support it. I liked the one from David's site. Its simple to integrate and use. Until the new Blogger arrives, at least.

For those who prefer reading email to feeds: I signed up to FeedBlitz so you can subscribe to my blog. Every time I add a new post, you'll get a mail, with the full content. There's also a link in the email that takes you to the comments page.

TODO in my next iteration of template editing: Add my Blogroll. Search. Directly add my site feed to commonly used feed readers.

Looking for suggestions and feedback.



Thursday, September 28, 2006

Acquicor gets Jazzy

Acquicor (AMEX: AQR) in the news again. Woz and gang have agreed to buy Jazz Semiconductor for $260 million, in an all cash deal. Gil Amelio will be CEO of the merged entity. This deal will be put up for approval by the shareholders, and will be completed only if at least 80% votes are in its favour. Jazz Semiconductor, incubated in 2002, is a CMOS wafer manufacturing firm. Numbers: The valuation comes at an EBITDA multiple of 19. Jazz had a net loss of ~15 million in the first half of 2006, hence the EBITDA rather than the P/E.

Acquicor had a webinar conference (recording available on its website) to discuss the merger, in which Jazz claims the main objective behined the acquisition is the access to Acquicor founders' network and to public markets. Gil also touched upon the non GAAP financial measures (adjusted EBITDA) to do the valuation.

I'd posted earlier on Acquicor, just about the time it went IPO. I'm going to watch this company for a while, so you may see more posts about this. My main objective is to understand the functioning of a blank check company, rather than comment on the valuations and other deal aspects.

This 260 million will come partly from Acquicor's trust, part from a line of credit (65M) and part from the selling shareholders (80M) if necessary. This means that Acquicor will have to part with about $ 115 million from its trust account, that had around $ 160 million. Will Acquicor go back to the market to raise more funds, or will it make a smaller acquisition next? This company is definitely on my watchlist.





Friday, September 22, 2006

The Ten commandments for an Agile Developer

I'm not playing God, just being Moses.

I'm putting down things that I feel are important for any developer in an Agile project. For me, any project that involves iterative planning and continuous integration is agile enough to begin with. One can see enormous benefits just by following principles like feature-driven development (FDD) and test- driven development (TDD). You dont have to go from zero to XP or Scrum to be agile. In fact, I think agility is a continuum and each project needs to find its sweet spot on it.

A lot is said and written about the need for self-managed development teams in an agile project. I interpret "self-managed" in a psychological way - I think it is a frame of mind that you need to be in, day in and day out, throughout the project. It requires rigour and a sense of self discipline. This may raise the hackles of developers who think discipline chokes innovation, and it takes out the "cool"-ness out of programming; I'll turn the argument on its head and say that to be truly innovative, you have to be disciplined about your fundamentals.

The rest of this article is about those ground rules. I'm not advocating any Agile process over another - follow whatever processes your project has decided to. This list is a daily to-do list. Over time, these things will be next to breathing for you as a developer (Do you realize how many times you hit Ctrl-S in 5 minutes?). They're really so simple, I should have called this the Zen way of agile development. I've seen its benefits, and more importantly, seen the mayhem caused when these rules arent strictly followed.

Write tests before code. Use a testing framework - there's one available for your language. Writing tests first ensures that you write just enough for the functionality of your program to work, nothing more. We often spend a lot of time writing that one extra method with that one extra parameter just in case you need to use it tomorrow. None of this happens if you first write a unit test before actually writing the code. How many tests should you write? The minimum required to make the code feature complete and secure. Use test suites liberally to create user scenarios involving a set of features. Execute these in your coffee break (Heck, why does the computer need a break?!).

Build from source on your local machine. Every day, before you start work, take the build from the build server (you should have one, btw). Treat every checkin as sacred, especially when fixing a bug. Gone is the era when you could say "it works on my machine". They dont even joke about it these days. Before you checkin, make sure you run the build scripts locally. If it takes too long to make a build, it is the build process that needs fixing (good ruse to ask your manager for a better machine ;) ).

Be lazy (automate everything you can). I mean, thats what the computer is supposed to do, right? Take the repetitiveness out of a job. So, please put the computer to work at the True Purpose for which it was invented. You can build, deploy, test, report bugs, clean-up just by pressing some shortcut key combination. There are plenty of tools available to do this - lots of them are open source too, so there's no limit to how lazy you can afford to get. I'm not going to go into details of how to automate a project (too long, and out of scope for this article), but here's an excellent book that tells you how to: Pragmatic Project Automation.

A feature in the (daily) build is worth two on the (drawing) board. This is about planning how to write your code. Rather than having "database days", where you do all your table design and "UI days" to layout all your screens, have "Create User days" where you write just that one feature - end to end. At the end of the "Create User days", someone who installs the build should be able to actually, create a user in the way your product spec says it should.
Not only is this more gratifying for you as a developer, the whole product starts taking shape much earlier, allowing for mid course changes that may come along because of end user requests, market changes, and... innovation.

Write meaningful comments. If your product is worth something, there'll be modifications to the codebase for years to come. Be polite, and write a line or two about how your method implements the feature. Rather than say /* this method authenticates the user */ (that should be clear from the way you name the method), say /* this method checks the user credentials against the LDAP server. It assumes that the LDAP connection properties are specified in a file called LDAPProperties.xml*/ It takes less than a minute to type that out, and everyone who reads your code - whether to enhance it or to use an API will bless you for it.

Honour change. Change == Good for the product. I deliberately didnt say "accept change". I think we all are mature enough not to crib when requirements change, but we still think of change as something that throws our well made plans awry. In an agile process, assume that change will happen no matter what you do. Plans will change with each iteration, features will change as users start using them, code will change as you refactor and/or integrate. In fact, it is this ability to respond to change that is one of the core tenet in the Agile Manifesto.

Love thy neighbour's code. Code reviews are one of the best software development practices I've seen. A code review can catch a lot of "thingies" early that would otherwise grow up to be "bugs". Especially in a time crunch, we tend to make some easily catchable and fixable errors (we're all so human). Loving your neighbour's code also means understanding it enough to be able to fix a bug in it. Get yourself into the habit of doing code reviews and getting code reviews done. Like debugging, it is a skill that is constantly honed with experience.

Communicate, mate! Key sucess mantra for many things in life - whether it is marriage, a football match or an agile project. If you changed a piece of code in the build, tell the rest. If you are stuck with an algorithm, ask for help. If you think you arent going to meet your deadline, say so upfront. If you found a tool that would save everyone's time, communicate. If you have the next big feature idea for the product, communicate. I think the first thing a project manager should do in an agile project is to setup a communication platform. This could be a wiki, a mailing list, a list of phone numbers, a notice board - or all of them. It is super important that everyone (including the customer) is aware of the status of the project on a daily basis. Use all the
tools you can to make communication better.

Refactor...when you need to. Developers love to refactor - there's always a better way to write that class. Refactoring code should be a part of every project because of the iterative nature in which the code was developed in the first place. Your only objective in the first iteration is to get the feature to work. In the next, you can revisit the same code (or identify common pieces of code) and refactor it into a design pattern, optimize the resources it
uses and so on. (A good refactoring catalog is available online, most of it is from Martin Fowler's book.)How much to refactor really depends on your priorities at a given time. I think it must be done once, and once is good enough.

Stay with the standards. Use standard ways of doing things wherever possible - tools, coding conventions, patterns. Remember, innovation comes at the next level - the level of your product. Follow a coding convention in the project. I dont care about line breaks and where you place your curly braces and whether it is iCount or i or count, but I do care about what you name your class, what package structure you use and where you place your resource files. Dont re-invent the wheel. Scout the open source world for solutions to some common problems, implementation of design patterns (warning: check the licensing model of any external software you use before you use it). Its okay to make an exception if you are consciously doing so.

Well, this is it, my torchlight on the path of coding Nirvana. I told you it would be simple. Amen.


Monday, July 10, 2006

On Motherhood

I first thought I'd give this a fancy title, something that would appropriately reflect what I felt (and still do) on becoming a mother. I quickly gave up.

Labour is the most painful thing in the world. Period. But the result is worth it. Period.

The image of the first glimpse of my baby will be etched in my mind forever. I could conjure a corporeal patronus just by thinking about it.

Having a baby is the perfect example of disruptive change I can think of. Imagine, suddenly one day there is this new person, who is with you 24/7. Its like a whole new world that opens up. Your priorities come crashing down with a 2-tonne anvil attached. I have trouble waking up to an alarm clock clanging next to my ear, but if my son lets out as much as a whimper, I'm up and out of bed in a shot. Having newbie jitters? Of course I am!

I've noticed another thing. Motherhood is universally uniting, in a sense that now women - complete strangers but moms, presumably- come up to me and we talk about mommyhood like there's nothing else in this world. There probably isnt.



Wednesday, April 19, 2006

What happens when black holes collide?

In a recent study, astronomers have discovered 2 supermassive black holes heading towards each other, and could merge to create a force that can pull in several stars.

Ever wonder what happens when one black hole gets in the way of another? Easy answer- the one with a higher gravitational force will "swallow" the other. But thats not all. As they merge, they emit gravitational waves that can travel through space at the speed of light.

NASA has simulated this event and has discovered the pattern in which these gravitational waves travel, using concepts from Einstein's Theory of Relativity. Some out of the world (almost literally :) ) images from the simulation here.
Now that a pattern has been discovered, scientists can detect those in space. While at one level it will provide some proof to Einstein's theories, it could provide important insights into the way we think about the universe.

It apparently took NASA a lot of computing horsepower to complete the simulation:


Earlier trials failed since the equations based on Einstein's general relativity theory were so complicated that they made supercomputers crash; the enormous gravity of black holes cause disturbances in time and space, making time stop and space shrink and expand.

NASA researchers have managed to transform the theory into mathematical algorithms and run through it through Columbia, the fourth most powerful supercomputer in the world. Its 2,032 interconnected 512 Intel Itanium 2 processors ran for 80 hours, in an operation that would have taken 18 years for a single processor to perform.

Something like what it took to find the answer to Life, the Universe and Everything?




Monday, April 03, 2006

The Live Web

Web 2.0 is on the cover of this edition of Newsweek. Nothing in it that if you are quite familiar with the concept of what's called Web 2.0, but if you are just wondering what all the fuss is about, then its a good read.

I still wonder about where the money is, though, but I'll reserve that for a later posting. :)

Thursday, March 16, 2006

Acquicor: Money for Nothing?

3 ex-Apple execs raised $150 million bucks for their company, Acquicor Technology. What does Acquicor do? Well, um... nothing much. Just scout around for the right company to acquire. In the meantime, the money sits in a trust account, gets invested in US Govt. bonds and maybe some money market instruments.
Acquicor is a special purpose acquisition company (SPAC) or, more commonly a 'blank check' company.

The company has only 3 employees - its founders: Steve Wozniak (ex-Apple founder), Gilbert Amelio (ex-Apple CEO) and Ellen Hancock (ex-Apple CTO) - None of them are full time.
Why didnt they just start a VC fund, one may ask. A simple calculation of shareholders equity shows why: The founders invested at $0.004/share, and other (public) investors are paying $6/share. Which means that the founders have netted a cool $30 million each. Getting a $90 million performance fee on a $150 million fund, would have been much, much harder - even if you were Steve Wozniak :) Actually, the only way to pull off an Acquicor is by being a Steve Wozniak. The company is based on the premise that the reputation of its founders (or employees, if you like) and their network of contacts can get them funds and investment opportunities. It says so in their SEC filings.

Look at the business as a whole: It is a 3 person company with no full time employees, no products or sales, guaranteed ROI to shareholders is just about the Govt. securities rate. The founders also promise to return any funds that remain unused for 18 months back to the shareholders - they dont have enough skin in the game. What did the investors see in this company? I think it is the opportunity to gain VC-like returns by investing smaller amounts by riding on the reputations of the founders. It remains to be seen what course this ride takes.