Category Archives: developer

How to handle Developers!

Here are a few tips if you get pushed to managing a team of code monkeys..err..developers.

1. Deadline is 8 hours away and they are whiling away time by reading Joel Sposky or watching a South Indian actor dancing in a superman costume.

Ignore this – they are just warming up.

2. After the above intellectual stimulation they go for coffee.

Again, be patient. They are refueling.

3. Call them for a meeting to explain how grave the situation is. Only 6 hours is left.

Stop stop. Don’t call them for a meeting now, it will just drain the warm up and caffeine effect they are having now. They are about to enter their “zone” where things will start “flowing”.

4. How to know what the status is?

Hmm..it is a difficult thing. If you send an IM or an email it will interrupt their flow which will make them very angry, or they might mistake you for micro managing things. Wait for one of the developers to go for a bathroom break and follow them there. Of course you should be of the same gender.

There you ask – hi hows it going you are aware of the deadline today right? If the specimen nonchalantly asks – “what deadline” – don’t panic. He is just messing with you. In fact the developers are very conscious of not being fired / or not getting the next hike – they usually would have a mammoth credit card bill – because of a 3G iPhone, or a flight ticket to Ladakh..

So don’t worry..patiently explain to him that the clients want this by EOD – so it will be great if we can deliver it. He will just say a hmm and will take his own sweet time to comb his hair, or gargle, or one of the thousand things he can do to frustrate you – so do not wait for him but move back to your seat. Things are going smooth – if there was any problem or the deadline cannot be met he would have told you – trust me on this.

5. You see a few developers packing their bags

Time to go ask your QA team if everything is fine. If you had not troubled the developers throughout the day there is a good chance the stuff is done well and your team has met the deadline. Now you can prepare for the telecon with the clients and draft the congratulatory email to the team.

Of course it is not this cut and dry. Use your judgement – you will get better at it as you go. Understanding the developers mindset is having half the battle won.

Debug PHP in IntelliJ IDEA

IntelliJ IDEA 9.0.1 has support for PHP. And the fine folks at JetBrains have given debug support which is awesome squared !

In just a few minutes you can get debug going on for your PHP applications.
Note : These instructions are for the ultimate edition of IDEA ( not the community edition which does not have php support ), and Ubuntu 10.04.
1. Install xdebug :
sudo apt-get install php5-xdebug
2. Add xdebug configuration at the end of php.ini
sudo vi /etc/php5/apache2/php.ini
Append these lines at the end
xdebug.remote_enable=On
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.remote_handler=”dbgp”
3. Restart apache
sudo /etc/init.d/apache2 restart
4. In IntelliJ here is how I have configured. It is quite simple actually.
Here is the Run configuration

Here is the PHP Setting. Point the server root to your folders.

5. Now put a break point in your code and click on the debug button. A new browser window will be launched, navigate to the page you are testing and voila – it hits the break point.
I am yet to figure out how to display the variables with the values on the bottom pane. For now doing a mouse over shows the values which is good enough for me.
Happy Debugging !

5 Advantages and Disadvantages a Developer has when running his/her own Startup

And before I begin the usual disclaimer : This post is for the developers who have a startup idea for a click and mortar business ( meaning an online portal or a software product ) and not the traditional brick and mortar types.
Hi there my developer friends and those developers who are contemplating a career as an entrepreneur and running their own startup. My recommendation – take the plunge – we have an unfair advantage already 🙂
In the world out side of World of warcraft I chose my career as a developer – not a cook, not an artisan, not an F1 driver, not a manager – but a developer. And now in my current role as an entrepreneur I am patting myself for the decisions I took on all the career forks that were put in front of me – and kept choosing the paths so I remained a developer.
Here is why being a developer/architect is perfect for an entrepreneurial stint.
Advantages
1. You will save a ton of money on developing your product.Currently my expenses are hosting, printing, hardware, internet charges, business cards, logo and stylesheet design. I don’t pay myself yet – so it has been light on my pocket so far. If you had to hire developers it will cost a lot in building the prototype, the first release, maintaining it, enhancing it – software as you know very well is not static and development costs will keep growing.
2. If you are not a developer and employ a team, then you are at their mercy on the quality, deadlines, technological choices, performance etc. But being a developer you know first hand how to ensure your product is kick-ass on all fronts.
3. Intuition – over a period of time you gain these gut feelings for various scenarios. From a simple login page, to a complex account reconciliation screen. You know what will work and what will not work – it saves lot of headaches and rewrites down the line because you can do it right the first time itself.
4. Database design – if you are a developer who also can do good database design then you will do really well. You can do complex stuff easily without taking performance hits. Did I hear ORM – you cannot marry a dog and a cat – accept it. OO and relational tables are different species. ORM will be attractive initially but in the long run it will create lot of issues and you will be writing queries in your mapping files.
5. Process – Next to database design is the process. You can be a BA, QA or PM and as long as you are clear about the process you can release a bug free product on time. Developers have a huge edge here because we are the process ! And if you are an Agile devleoper – you will rock as an entrepreneur. Will be writing a post on how Agile process for an entrepreneur is like mock object for an unit test 🙂
Disadvantages / Short Comings
1. As a developer I am not hard wired to do Business Analysis. I once did a showcase when my BA and PM were held up on something and I learnt an important lesson. Even though we solve and implement complex business problems – when it comes to analysis and presenting our solution – we don’t do a great job. At times there might be a feature that excites you as a developer but its not a big deal for customers and the reverse applies too. When you try to sell your product you should identify these things and let go off your turn ons ( ajaxy sortable tables..but customers wont even notice it ) and developer humility ( like SSL is no big deal but still you have to talk about it – it is important for customers ).
2. Being a developer I get carried away in trying to solve a non existent problem because it excites me. Since there is no hawky PM or a BA to convince that this cool thing is really needed – I just go ahead and do it and waste my time. I had to discipline myself in not going into these tangential excursions because time and effort is limited and I have to use it effectively.
3. Verbal communication – developers talk less and let the code / product do the talking. But as an entrepreneur you have to talk to lot of people about your product, your business. It is a new skill that you will be forced to acquire – and I feel this is an important addition to your skillset. Imagine a developer who can make a pitch – nothing can be better than that !
4. Written communication – Developers hate documentation. But now you have to write the FAQ, the sales pitch, the What and the Why, email broadcast on new features and the 1001 things. I am still learning the art of writing about my product so it has the right tone and there are no ambiguities.
5. Wearing a quality hat – This is the biggest challenge I have had so far while developing Apartment Adda. There are so many edge cases that as developers we do not think – we always try to make the product work and do not try to break it. You will have to do some serious rewiring of your brain 🙂
In the end – as a developer you have a huge advantage and a few disadvantages – but you can overcome these if you put your mind to it.
So if you have an idea you wanted to work on – go ahead and start working on it. Being a developer you are well equipped and have enough ammunition with you already.