Friday, July 14, 2006

Good Software Company

It had been a long time since I visited Joel website (too busy with my Feedreader with tons of stuff to read, and I kinda forgot to add him in), so I decided to drop by today. A long article captured my attention, “My First BillG Review”. From an ex-Microsoft employee who runs an ISV nowadays, it seems like a good read.

So, basically what did I get out from it?
  • Watching non-programmers trying to run software companies is like watching someone who doesn't know how to surf trying to surf.” Of course, we need a geek with at least some business sense in them. I always had doubt when I see a MBA or a salesman run a software company.
  • When your company had too many layers of bureaucracy, it takes all the fun, control and productivity out of it. In 1994. Microsoft had 6 layers of management (that is considered good), but now it had at least 12. Imagine the productivity boost and fun when you had only 1 layer.
  • A good manager does not have to know every detail of what are you doing, he just have to know that you got it under control. How does it do it? He asks harder and harder questions, until you admit that you don’t know, and then he yells at you for being unprepared. If you manage to answer all his questions? Hmm, it seems like you are pretty good.
  • When you hire too much, there are bound to be not too many gems in them. That seems to be an inevitable state when you are expanding big and good talent is rare as gem.
I think software is really a complex business, with too much technicality and culture which couldn’t possibly be understood by non-programmer. Some MBA/Salesman says that they understand, but in truth, they just don’t get it, and will never get it. The symptoms are obvious, but they are just in the state of denial.

What are the symptoms am I talking about?
  • There is no high ranking technical position in the company (no Chief Software Architect, no Chief Technology/Technical Officer, and no Technical Director); all you have is non-technical people holding post like CEO, COO, Big Ass Salesman, VP, Division Manager, etc.
  • They give weird title like E-Developer (what’s with the E thing), Application Specialist and Application Consultant when all we do is programming. Give us property title like Programmer, Lead Programmer, Software Architect, or cool title like Master Programmer or Chief of Productivity
  • When business is bad, they keep expanding the sales team.
  • When business is bad, they stop/halt product development and R&D.
  • During interview, they don’t have proper technical test to filter the candidates
  • During interview, the guy who interview you is from HR or someone non-Technical
  • There is no IDE, Testing Tool, Version Control, Bug Tracking, Standard Framework, Development Guidelines, Documentation
  • There is no Blog, Forum, Wiki or any collaboration tool for resource and knowledge sharing
  • When you keep switching team/project/task at a very frequent rate
  • When you see only the good one leaving the company
  • When the company loose or don't have a core product/service (end up doing anything that comes in)
Am I too demanding or the local software development scene is just so out of league. If I can find a company worth working for (besides for the big money), perhaps I wouldn’t be struggling with my own venture now. Like they said, if you can’t find it, create it.


Kenny said...

That's an interesting article is interesting to note that Bill Gates is a geek through and through...he used to code a lot, a true family man, a ruthless evil businessman...but he doesn't really squander his money on women, fighter jets and yacht races...unlike a certain Oracle big shot...

d_luaz said...

Yes, he is a geek, read code, comment on technical spec and ask smart technical question.

Come to think of it, I do envy his talent: a combo of geekish programmer and ruthless businessman.

I wonder how he spents his money besides saving the world.