tags:

views:

1143

answers:

11

I have an unusual problem: I have to convince my superiors to use Django for our new project. Alternative is some PHP framework. I've programmed in PHP for 2 years and then switched to Python and have about 3 years of experience in it. However I'm not too good in business speech.

I know all the technical pros and cons but when it comes to discussing business issues things blur a bit.

EDIT:

Reasons I want to use Python + Django:

  • experience in Django
  • beauty of pythonic code (and all it's benefits)
  • lots of third party libraries
  • efficiency
  • less code = less bugs

Reasons why my new boss wants to use PHP:

  • he knows it
  • he can estimate on his own
  • he doesn't know Python

@Vinko Vrsalovic: All requirements for both technologies are met.

  • we have both our own servers and external Python hosting
  • PHP costs of course less, however the difference is really tiny in comparison to support cost
  • we have suitable resources for both PHP and Python projects

I think problem is with my PM: he is afraid of new technologies. For him it's something new. So quoting the basic question from Robertos answer "why can't we just use the old system?".

I think I'm just too old :D to write a prototype in my free time. However this had worked a few times in past.

+7  A: 

People like to see tangible results. On your own time implement a small portion of the project using Django that can demonstrate what you believe to be some of the advantages of switching the project to Django. Besides demonstrating technical advantages, it will demonstrate your commitment to the idea.

From your boss' point of view, switching frameworks is a risk that she will have to explain. So you will need to show that you are motivated and committed to making it work.

Here is a somewhat related article by Joel Spolsky about Getting Things Done When You're Only a Grunt. You might need to take a longer term approach to introducing Python and Django. Perhaps you could write some scripts in python that other people on the team will find useful. Maybe you could implement an internal tool using Django, which people will start using.

Karl Voigtland
+1: Just do it. Be successful. When your boss asks why you're so productive, reveal your secret then.
S.Lott
Be prepared to 'own' it though, depending on your company culture. When people try to blame every problem on the switch, remain professional, persevere. Don't mind the mental little-people.
Karl Voigtland
Just do it if you have the time to (while keeping all your obligations in check) and can keep it a secret if you were told not to. Things are not always that easy.
Vinko Vrsalovic
Be aware: Do this in your own time! Not during work hours, because if you fail, your Boss won't be happy by the amount of time wasted...
Workshop Alex
Also, make an objective business analysis before start committing your own time developing something. You might do everything correctly and get nowhere because what you have shown is not good enough or it does not cover the real showstoppers for Django in this particular project.
Vinko Vrsalovic
+12  A: 

Why do you have to convince your boss to use Django?

Your boss should understand that it's in his best interest to work in what the people he'll be employing know best.

But, how can you tell that Django is really the best suit all things considered?

For example:

  • Are the servers in-house? do the sysadmins know how to maintain servers for Django?
  • Are the servers in a webhost, do you know how much does it cost to have a Django webhost versus a PHP one?
  • Are the rest of the team familiarized with Django/Python? If you are a one man team, what if your boss wants to make the team bigger, will he be able to? At what cost? PHP devs abound.
  • Given the PHP framework of choice, can you honestly give some criteria that will translate to dollars (or whatever your currency is) giving Django the advantage? Say, time to market, or some features that will be used and come for free in Django but not in the other alternative? Don't forget that if you are a good programmer you can create good programs in any language.

This are just some things you have to consider before presenting with your boss with a "PHP sucks, let's use Python instead" speech. I understand the feeling but it really might not make sense in the long run in certain cases. If, after all these things are answered (and some more), you can still present a good case for Django, then you should do so. Just don't do what sounds to a business man like fanboy speech.

UPDATE: If the only thing stopping you from doing in Django is your boss' fear and you both know that you can make it work at a comparable cost in infrastructure, then the only way to alleviate that fear is to jump in and do something like it. You might get authorization for a prototype, for example. No amount of talking will relieve him from his fear, he'll need to see something. You should also tutor him (if possible) on how Python works while you go at it, so he can appreciate the beauty of the beast.

Vinko Vrsalovic
The problem is I'm aware that python when it comes to business decisions doesn't look to well on first sight. There's a good article about it on http://articles.techrepublic.com.com/5100-10878_11-1045768.html Objective business comparison with php doesn't give clear favourite when it comes to my companies field. That's why I need to do some "marketing" so my team gets the cool project.
Chris Ciesielski
Then either debunk those comparisons with well thought out rationales or live with it, if an objective business comparison doesn't have Django as a favorite, why should you force things? OTOH, if there are some real technical benefits, why can't them be translated to business benefits? Make them so!
Vinko Vrsalovic
+2  A: 

You want to know how to convince a business person?

Two words: "steaks and strippers" (Zed Shaw).

VoidPointer
I'd have to see the video first, but that summary sounds shallow. There are vegan business people.
Vinko Vrsalovic
+2  A: 

If you have the possibility, you could create a prototype in Django.
Your boss will see it, and will be able to measure the advantages. A good presentation in powerpoint with explained required effort, advantages, etc. may be also a way to increase the chances of success.

And, over all, make sure to reply to the question: "why can't we just use the old system".

Roberto Liffredo
+2  A: 

It would be unfair on your fellow programmers to move to django, if they happen to only know php.

Rick J
@Rick J: are you saying the PHP folks can't learn Django and Python?
S.Lott
@S. Lott: I'm sure they are perfectly capable of learning Python :P , but the question is whether they would have the time and perseverance to learn python+django while on a project. The added effort could be a bit of a morale killer for some folk.
Rick J
@Rick J: If learning something new is a morale killer, perhaps the organization is moribund already. If new technology is "unfair" to fellow programmers, it sounds like an awful place to work.
S.Lott
+2  A: 

The problem is your Boss who knows PHP but doesn't know Python. And I can imagine that he doesn't want to spend valuable time learning to become familiar with a new technique.

About 16 years ago, I've tried to convince my employer to use Delphi (then a new product) instead of some other RAD tools that he was considering. I did my best to convince him and managed to convince him that Gupta SQL-Windows was a bad choice. I also made it clear that Visual Basic would be less powerful than Delphi, since Delphi had much better database-aware components. So he decided to not use VB either. But Delphi was Pascal and he knew nothing about Pascal and couldn't be bothered to learn more about it so he chose to develop in PowerBuilder for new projects. And I decided to move to a company with a smarter Boss who did believe in Delphi. It was frustrating as Hell to try to convince my Boss and I found more than enough satisfaction with my next employer, who did use Delphi. My old employer did manage to write some application with PowerBuilder but it never resulted in the profits he'd expected. (Not a surprise either, since another developer had used two days work just to create an animated trash-bin icon on a button.) His company went chapter 11 and he went on an early retirement...

Now, if your Boss doesn't listen to your advise, you have two options: Accept it or leave for another Boss. He is the Boss, so if you continue to nag him about this issue then he might decide you're better off working for someone else...

Workshop Alex
You're so lucky that you have a choice to move somewhere else when your boss doesn't listen to you.
jpartogi
True. However, in this line of business it's always good to have some contacts and to subscribe for several job-hunter organisations just in case your employer gets in (financial) trouble. Doesn't matter how big the company is, there's always a chance that they need to kick out a few employees. It also keeps your employers aware that they could risk losing a valuable resource if they don't keep you happy. Then again, this only works if you're real good at your work! ;-)
Workshop Alex
@jpartogi: anyone with a decent skills can move to another job, given time. Just keep looking out for good opportunities and putting in job applications. It might take some time in the current economic environment, but there are jobs around. Just don't burn your boats with the current boss.
Stephen C
+1  A: 

Bottom line is what it is all about really. How much money does a move to python/django save the company overall in terms of dev effort, testing and support?

If you can demonstrate that python out performs php in these areas then its going to make a saving for the company. More savings means better profit margin - that should be pretty convincing.

Phil
+1  A: 

The best way to persuade people (coworkers, pointy-haired-bosses, peers, etc) is to help them reach their own conclusions by continually demonstrating your awesomeness.

Implement a cool prototype-demo of a cool technology on your own time, using the tools you want to use. Then show it off as a "check-out-what-I-did-this-weekend" demonstration. In doing this, you'll plant the seed of your new way of doing things that will inevitably win them over.

Nate
"Girls LOVE Django." [citation needed] !
Rick J
For the record, women get irritated when men gratuitously drop comments like these into a technical discussion. Even when it is done for humor -- it's "boys club" humor.
Vicki Laidler
Many apologies Vicki. I will edit my answer and comment accordingly.
Nate
Thank you, Nate. (Since another offending comment remains, I'll leave mine up in hopes that it too will be fixed.)
Vicki Laidler
A: 

I agree with the 'just hack out a demo' school. The beauty of Django is that you can set up a quick project with SQLite, define the models, and then instantly have a database API, a slick admin and databrowse to play with. If databrowse doesn't cut it, write just enough views to demonstrate django's benefits.

I know PHP people that are queasy about taking on a large-ish content management project, but django makes those kinds of projects relatively easy. When they see what you did in a few hours, they may come around.

twneale
+1  A: 

You can check-out my summary from a talk on this subject by Justin Lilly, in last EuroDjangoCon.

A: 

Google uses Django with the App Engine. And nobody ever got fired for choosing Google...

Like: "Nobody ever got fired for buying IBM" (1980s) and "No one ever got fired for buying Microsoft" (1990s).

Peter Mortensen