Archive

Archive for February, 2008

What makes a pragmatic programmer?

February 20th, 2008 Umair Aziz No comments

programmerI’ve been reading ‘The Pragmatic Programmer’ by Andrew Hunt and David Thomas. I don’t think I could have done justice by paraphrasing their observations on pragmatic programmers – so here it is verbatim….

“Programming is a craft. At its simplest, it comes down to getting a computer to do what you want it to do (or what your user wants it to do). As a programmer, you are part listener, part advisor, part interpreter, and part dictator. You try to capture elusive requirements and find a way of expressing them so that a mere machine can do them justice. You try to document your work so that others can understand it, and you try to engineer your work so that others can build on it. What’s more, you try to do all this against the relentless ticking of the project clock. You work small miracles every day.

It’s a difficult job.

Read more…

  • Share/Bookmark
Categories: Software Engineers

Office Space

February 12th, 2008 Umair Aziz No comments

aaa1.gifIt has only been 15 months since we moved out from our “software house” on Hali Road into a classy 5000 sq. ft uber-tech, architect designed space in Clifton. It took us over 10 months to build and by the end of it we were tired, went way over budget, and ended up with one of the best looking offices in the city. My partner and I congratulated ourselves and thought our new home would serve us for a good 3 years. We were so wrong!

Our office seats 60 people. Currently there are only 2 seats empty and they will be occupied in the coming week. We have 18 openings and are aggressively interviewing every day to fill these up. We anticipate a need for another 20 engineers in the next 2 quarters. If you do the math – you will see that we need more space for another 40 engineers.While some of you may be thinking how in the world are we going to find so many people – let me tell you that finding developers is the least of our worries. Here at Creative Chaos we’ve got ‘finding the right engineer’ down to a science. Its pretty simple actually – find the smartest software engineers in the country and hire them. No seriously – that’s it. I’ll repeat it again – find the smartest software engineers and hire them.In a class of 100 students, only 9% are smart, of which 4% are outstanding and 2% exceptional. The rest are just average. We do not hire average at Creative Chaos. That may sound discriminatory but that is the way things are here. Who would rather have as your heart surgeon, a top student from a high profile med-school or a doctor that is just good enough? When it comes to choosing a software engineer to design and develop your applications why would you ever choose an average engineer?Just like the best physicians and surgeons – the top 9% software engineers in the world can work anywhere they want. They are never desperately looking for jobs – and are usually busy working their way up the ladder. The average ones are busy zigzagging between different roles / responsibilities and organizations.It is much like applying to college. The best students apply to tier one schools, the above-average ones apply to tier two and the mediocre ones are stuck with tier three. Students with high SAT scores (1450+) and decent applications are pretty much guaranteed admission into any Ivy League institute. Why does one choose a tier one college? And aren’t these colleges discriminating? Well of course they are – they are targeting students that exhibit intellect and intelligence consistent with their ranking and profile. The students understand this and to them the name and reputation matters. They also know that good colleges invest money in creating state of the art facilities, hire the best professors and guarantee a rigorous and challenging program. And that’s not it – these colleges are also willing to give money (scholarships) just to have these top guns study at their institutes. It makes perfect sense for smart intelligent students to choose a tier one college.

For some reason people running software companies don’t understand this. I keep hearing from friends in the business that they are unable to find or hire good programmers. The problem is that they have not yet defined which tier their software company lies in. Their interviewing is not targeted which leads to frustration and hiring mistakes. I have only one thing to tell them – if you want to attract top talent, go fix up your office, create an environment that is fun and challenging and once you are able to bring some good folks on board – then empower them and treat them well.We think of ourselves as a tier one specialty institute and are absolutely discerning about who gets to be part of our family.

We spent a lot of money on our office – not to impress our customers but to provide our employees a great place to come in to work every day. We engaged an expensive architect; thought about lighting and ergonomics, installed RFID sliding doors, custom built our furniture and used European tiles.When these smart tier one candidates come to our office for interviews their faces light up. And while they are still admiring the interiors – we ask them if they would like to drink coke, mountain dew or coffee before we get started. We tell them we have a vending machine and all sodas are free, munchies and late night dinners are all expensed. We have contracted vans to pick and drop everyone at home so they don’t have to worry about commuting. And incase some one stays late to finish off work and misses the van – we happily expense their cab fare home. These smart engineers can work for any company they want – we want to show them that we have a top notch environment where coming to work is fun and challenging.Our vision is to create a model software company. We believe that we can only produce top quality software by employing top engineers and creating an exciting working environment that our people can cherish.

As the saying goes – a happy engineer is a productive engineer.In order to seat the 40 odd engineers that we plan to bring on board in the next couple of quarters we have taken up another 4000 square feet of office space in a building next door. We will once again engage an architect to help us out create a great facility, experiment with a few new ideas and overcome previous short-comings.Last time around – due to space constraints, we were not able to create a large enough kitchen. In the new office we are planning on setting up an in-house café with seating space for 20-30 people. We will have a waiter to serve coffee / tea, put in comfortable couches, a large screen TV, an Xbox 360 and if we have space – maybe a pool table as well.

Writing code is mentally exhausting and we want our engineers to have a place to de-stress without ever leaving the office.In our current office a lot of the developers sit in an open space planned in cubical style straight workstations. We thought this would work out great – everyone would be close to each other and would allow better communication. What we did not realize was that that when people would communicate they would disturb everyone in proximity. The space occasionally gets too loud and distracting. The project areas on the other hand (rooms to seat 5–7 engineers) worked out really well. We create agile teams to develop applications and seating the whole team together in a room not only gives developers a sense of privacy but also allows them to self-manage their conversations and noise-levels. The new facility will only have project space seating. We also plan to add more conference rooms, at least 2 discussion rooms (6 people) and 1 large conference for 16 people.We don’t have 10 months to build this time and our budgets are pretty tight. The plan is to have the site live by the 1st of May 2008. I know the next few months are going to be painful but the thought of providing another great facility to our engineers excites me.

  • Share/Bookmark
Categories: Business