Managing Programmers

Filed under: Management — Mukul Gupta at 2:30 pm on Thursday, August 30, 2007

Programmers are intelligent, problem solvers. If you can’t believe this then please move on, this is not a post for you. If you are managing a group of programmers then here are the things that you should concentrate on: 

Remove Obstacles
By obstacles, I mean real ones. Things like Hardware, A.C not working, improper lighting, noise, printer out of paper, furniture, wending machine, pending feedbacks occupies very expensive portion of a programmer’s brain. You need to free this up so that they con concentrate on job. If you land up in a job which involves managing a group of programmers then the first thing you should do is make sure that the environment is appropriate for working and all barriers to productivity has been taken care of or at the very least, the programmer don’t have to bother about them. 

Maintain flow of work
A large part of your effort should be spent on maintaining the flow of work for the programmer. By this I don’t mean signing more contracts! You need to make sure that when the programmer comes in to office every morning they know what needs to be accomplished today. The programmer needs to know the work queue that has been lined up so he can go full throttle and get things done. 

Get them the information they need
It’s not that programmers don’t have business acumen, it’s just that they are closed to any problems that cannot be solved by writing codes. If that doesn’t makes sense to you, then think about why certain things don’t appeal to you. Thus, save them from this anguish and get them the information they need to know about the application. Don’t send a business case and expect them to deliver a working product.  They are more interested in knowing what the application needs to do.  

Don’t talk technical
This is only for the non-techies who need to manage programmers. Talking to them about technical aspects is the surest way to loose your respect. In case you can’t resist then try being suggestive rather than authoritative. I don’t think that managers respect better managers with the same intensity as a programmer respects a better programmer. Thus if your suggestions are shallow then you will loose respect forever and moreover, if they have to implement your solution then they will end up hating you. Stay away from this and rather focus your energy on getting the first three points. 

Feel free to add to the list - the world really needs one!

CSS turns 10!

Filed under: Web design, Reviews — Anindya at 11:18 am on Thursday, August 30, 2007

CSS is 10 years old now! As far as web design is concerned, CSS might be most powerful invention of the lot. It’s very fast developing too. Today CSS has become the backbone of the UI of a website. You can’t imagine an effective website without a good CSS. But do we all know how it all started, what was the format that time, how it reached here? And also where are we heading towards? To know them all please read CSS @ Ten: The Next Big Thing in A List Apart emag.

Long live CSS!

Press For PHP5

Filed under: PHP / MySQL — anirban at 5:59 pm on Wednesday, August 29, 2007

You are already aware that from January 2008, onwards PHP version 4 will not be available for support and instead, PHP 5 will be in place. There is also a community set up in the web, supporting and encouraging all, to go for PHP5. Now the question is if this was indeed a step required for all? The primary question is

  1. Why not PHP4? And
  2. Why PHP5?

First of all, what the problem is with PHP4 so that everybody is supporting PHP5? The answer is, there is really no such problem with PHP4. Since its birth, PHP4 was a rocking success and it was only climbing up, up and up, eliminating all its contenders virtually out of competition. But will you stick to an old programming language when a new better version is available? I know the immediate question is why then we didn’t shift earlier. This is a valid question and there are again two answers to support the cause.

  1. When PHP5 came out of development shell to the market, it had a number of bugs. But gradually all bugs got eliminated and PHP5.2 is free of all reported bugs.
  2. Once your application is ready you need to find a host where you can upload it to see it running. But reluctant hosting service providers were not shifting to PHP5, forcing developers to make the application suitable for PHP4. With all downward compatibilities, full potential of PHP5 cannot be explored in PHP4 as otherwise both the version will seem similar.

Now, at this moment everybody realized that without a movement this change will not happen. This made the support of PHP4 to stop so that all hosting services can be forced for up-gradation.

How you will be benefited?

When you are developing your application by using a better technology, the obvious and immediate benefits are in terms of features, speed and functionalities. PHP5 has all the weapons needed to combat the advancement of .Net, Java as web scripting technologies. It has a better mysql database handling feature, a full working version of XML parsing techniques and full object oriented features. The full object oriented features gives you better opportunity to reuse your code as well as altering functionalities in much quicker way. The obvious and real benefit I see is catching up with better web development and going parallel with trends. Developers will also be benefited as they will be enabled with better functions, more flexibility in terms of binding logic and using old code to speed up development and delivery. Moreover almost all third party freewares like osCommerce, PEAR, PHPBB are getting converted to PHP5. This will leave with no option but to use PHP5 while integrating and customizing these applications.

It is the time to go for PHP5, rather press for it. And you can only do it by asking your developer to build the application in PHP5 and insisting on PHP5 support when you select your hosting service provider.

Forget “#”

Filed under: Usability, Web design — Anindya at 1:48 pm on Monday, August 27, 2007

Sometimes we click on some buttons or links of many websites but nothing happens. It sometimes just takes you to the top of the page (if you are somewhere below on the page). I am sure everyone has experienced this at some point of time, in one or the other website. If we see carefully, a “#” symbol is visible on the left of the browser’s status bar on moving the mouse over that button or link. It signifies that the button or the text-link is not connected to any page or section. The creator has just placed that for future work. May be the designer is working on the page to be linked and once it is done, the file will be uploaded and link will be updated with the real one (xyz.html etc.).

It’s an example of poor experience design. It just makes the visitor feel frustrated. If your page is not ready, simply don’t put the link on the button or text from where it will be linked. You can link it later when you have the file ready for the visitor. We see the same thing in case of navigation bar. If you have to design the navigation bar and you don’t have a few pages ready to be linked, simply omit those navigation items. You can update the navigation bar later and do a “find-n-replace” through out the website. If you are lazy enough to do that or feel it will look odd, just give a clear “coming soon” message when people mouse-over the item.

Sometimes designers handle it in an other way too. When the page is not complete they use a general template and put “data coming soon” on the content area. This is also a bad practice. Why taking a visitor to a page where you have nothing to say? You can say it before he goes there by putting a simple “coming soon” tool-tip kind of stuff on the related link or navigation item!

It might be a small thing to you, but think about a person who is not as “tech” as you are. He or she might feel that there must be something wrong and try clicking randomly to find the information he/she is looking for, but in vain!

Structure Is Strategy

Filed under: Management — Rahul Rungta at 11:50 am on Monday, August 27, 2007

I was recently going through a very interesting White Paper about Organizational Structure written by Richard Kibble & Neal H. Kissel of Marakon Associates, which presents a very different notion about the parameters based on which a business should form its Organizational Structure.

As per Kibble and Kissel, an enterprises’ structure defines its strategy rather than the other way round. Flexible organizational structures leads to flexible strategies and better Global/Local Structures Produce Better Global/Local Strategies. Thus, better organizational structures lead to better strategies being formed and implemented successfully. This is because organizational structures greatly affects a manager’s management style.

Structure critically affects managers’ decisions and, in turn, influences their emergent strategies. Managers with unique talents emerge when the organizational structure allows them to refine and perfect their craft.

Better structures provide the an ideal platform for grooming young talent; allowing them to interact with various organizational demands and scenarios, in turn, creating better managers.

If you want to develop more managers who can manage for value, create a lot of opportunities for them to manage for value. Managers with unique talents for discovering and developing new customer groups - or creating and executing new strategies - don’t emerge by chance. They emerge because there’s an organizational structure in place that allows them - and challenges them - to refine and perfect their craft.

In short, organizational structure greatly influences the way managers function and make decisions. Hence it should be always be designed to exploit the uniqueness of the business with regards to its markets, products and more importantly, its people.

To sum it all, if you want to have a distinctive strategy to outperform the competition, you need have a distinctive structure!

Brazen truths about Incentives

Filed under: HRD, Management — Mukul Gupta at 10:32 pm on Sunday, August 26, 2007

Every executive and his dog have thought about incentive schemes that will give the company a performance boost. Incentives schemes are bribes that is given to people for doing things they were already supposed to do. The problem with incentives is that it works only too well. Here is what you need to think about: 

Is the incentive system simple enough?
Complicated incentive systems look fishy. If you want people to trust the system then you have to make it simple enough so that everyone can understand it. If the people won’t understand what they need to do, it won’t get done anyways. I once interviewed someone for the post of business development manager and her incentive scheme was nothing less than an MLM program. 

How much is it going to cost to have an incentive program?
Incentive program requires collection and analysis of data which requires resources like people and time. The more complicated the program is, the more difficult and resource consuming the job becomes. We once implemented a program called “the point system” in which every employee earned 1 point for every $25 worth of production. 

Every employee had a target set of points that they were supposed to accumulate in a given month. This target was set based on the average costs of his business unit. The idea was simple, we wanted to focus on revenue per person (PPR) and it seemed logical to provide incentives to person whose PPR is higher than the target. The most important point was that it gave us quantitative data for performance analysis. 

This program seemed brilliant at the moment, but later the cost of administering the program was so high and it was so counter-productive that we closed it within 4 months of its implementation. It produced 20 pages for each team every month and some 300 sheets in total that had to be verified, analyzed and tracked. 

Is the goal achievable?
It makes sense to set the goal slightly higher than the normal but, setting it too high is an obvious way to kill all motivation. If I know that the defect-rate is 10%, then it makes sense to provide incentive for reducing it to 5%-7% but giving an incentive for 0% defect-rate will only have your employees laughing at your back! 

Will increased effort lead to increased performance?
Wait for moment to let that question sink in first. 

If your employees are ineffective because of your company’s systems and processes then no amount of incentives is going to make them more effective. 

Incentives, especially in the form of financial reward can be a great motivator and it can get people working really very hard. However, people still got on work with the processes and structures within the organization and if that’s not efficient then raw hard work will not lead to superior performance. 

People will slog endlessly, only to find at the end that the target has not been achieved. Thus, they will be de-motivated because they have done all they can to achieve a reasonable goal but still the money has eluded them. Running on ice will slow down the best sprinters! 

What behavior am I encouraging?
Behavior is a result of consequences. There six elements of project i.e. Scope, Cost, Quality, Risk, Time and Customer Satisfaction. This forms a perfect hexagon in which every element has impact on all others. Pull one and other 5 gets drawn too. The problem is that incentives focuses the attention of employees like a laser beam, all periphery vision is lost. Thus, giving incentive for “on-time” delivery will mean that people will forget about other five things because to them, it means that ”on-time” delivery must be most important to management.  People are smart and they will soon figure out a way to meet the objectives may be at the cost of quality or customer satisfaction. 

Incentives is not just about throwing in money to get things done, for all you know it may be changing the way your organizations expectations, thought process and behavior forever. Employees will begin to judge the importance of the job by checking whether it has an incentive scheme tied to it or not.  Things that don’t have incentives will not be considered important.

IMHO paying decent salaries, treating people well and maintaining the right culture is far more important and useful then crazy incentive schemes. 

PHP 4.x is dead, Long live PHP 5.x

Filed under: News @ Indus — Mukul Gupta at 3:10 pm on Thursday, August 23, 2007

PHP.net has formally announced today that PHP4.x will no longer will supported from 31st December 2007 as PHP 5.0 is stable for production and they are well on their way to PHP 6. Read below:

PHP 4 end of life announcement

[13-Jul-2007]
Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.

The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.

For documentation on migration for PHP 4 to PHP 5, we would like to point you to our migration guide. There is additional information available in the PHP 5.0 to PHP 5.1 and PHP 5.1 to PHP 5.2 migration guides as well.

For those of you who are still using 4.x, it means that it is high time to upgrade to PHP 5.

Random Reads

Filed under: Reviews — Anindya at 12:50 am on Tuesday, August 21, 2007

Design wont save the world. Read why.

Blogsolid: Ideas for better blogging.

Better SEO for Wordpress.

Beautiful book cover designs by Ryohei Yanagihara.

There is a subtle difference between amateur and pro. Read what.

Why you should keep your landing pages simple.

Messed up and noisy design made business successful for a retailer.

Complete pattern library -  a lovely collection.

All fonts are not for all seasons. Here are the fonts of summer.

Kevin Cornell shares his idea about staying motivated.

Salary Appraisal - The Illogical Logic

Filed under: HRD, Management — Mukul Gupta at 1:04 pm on Saturday, August 18, 2007

The Rule: You will always feel you are underpaid.

Want to know why? Read on.

The following gets answered or at least thought about when the management wants to decide about salary appraisals:

1. Change in costs and revenue over the next year. For the uninitiated, the difference between two is called “Profit”. No company can survive without it.

2. Mitigating the change in the cost by choosing from multiple alternatives i.e. change in pricing or cost averaging.  Price sensitivity of its customers is an important factor here because the way Deccan Airlines (or Southwest Airlines) will conduct appraisals will be different from Kingfisher airlines (or United Air).

3. Compensation data with respect to the local geography amongst companies of same size. For us it means considering the disparity among salary structure for similar skills and experience across multiple locations.

4. Consideration for budgets for different departments. The appraisal budget will be different for different departments.

5. Performance Rating patterns emerged in bell curve (for your division, your unit and then deciding where you fall)

6. General outlook of the company towards future

It’s a tall order. While the management is figuring this out, here is a question for an average Joe whose salary is due to be appraised.

Choose an alternative from below:

1. Making a salary of 40000, when I say that others are making 30000
2. Making a salary of 50000, when I say that others are making 60000

Having a hard time answer? Do you see the point?

While the management has a ton of factor to consider, our average Joe is just bothered about how much his cousin Nick or friend Peter or colleague Tom is making.

Our average Joe will never be happy with his salary review because:

1. His expectation has got nothing to do with his own situation
2. Even if he gets what he wants, companies cannot control how the salary of others around him will change.

As for the management, this is a thankless job that someone got to do!

Barriers to Learning

Filed under: Management — Mukul Gupta at 11:14 am on Friday, August 17, 2007

Answer this:

You are sitting in your cubicle when you overhear two of your colleagues discussing a design issue. You do not like one of the guys in that conversation as you think he is a bit stubborn know-it-all type.  You then realize that they are talking about implementing a fancy new component. You have infact tried to implement this same component in one of your previous projects and found out that it makes the whole system unstable. Your last project nearly got cancelled becuase of the delays due to instability of that component but you managed at last to find a work-around for that problem.

Will you still getup from your cubicle to share what you know ?

Now answer this:

You consider yourself to be a great programmer. Presently you are assigned to a project and you came across a fancy new component that could cut the development time by 10%. You are boasting about your great find to one of your colleagues, when he tells you that a guy in the next cubicle has worked on this earlier and there were some issues.

What would you do - will you ask for help?

There are extremely high chances that you have found it to be difficult to say “yes” to both these scenarios. As easy as the answers may seem, learning is often jeopardized by “Ego” and “Why-should-I?” syndrome. There are two important conditions for learning:

Be a Teacher - Help others even when you are not asked for it 

By teaching, I mean voluntary sharing of knowledge. No body knows everything about anything. If you share knowledge with others, then other will share knowledge with you. Thus, both of you will be more knowledgeable in the end and learn much more than what you would have learned individually. Don’t consider yourself to be a gift to mankind and make people come begging for your attention.

Be a student - Be willing to seek out and accept help

Sounds silly as it is but people love to reinvent the wheel and sometimes, they end up making square wheels on right when a perfectly rounded wheel is already there in the left. You have to learn to ask for help and have the humility and modesty to accept it. The student attitude is precondition if you really are interested in learning anything.

Next Page »