views:

311

answers:

9

Hi all, I'm working for small company, which operates in the automation industry. The boss hired me because he wants to sell/give some desktop applications to his current costumers. He imposes me to use the Netbeans Platform (a generic desktop application framework). A software engineer friend of his advised him to choose this framework.

At the moment I created 3 desktop applications with Netbeans Platform. I like Netbeans Platfom. I really take advantage of modularity, Window System and Lookup. Unfortunately I'm frustrated to known that I can do the same works with Python and PyQt in a fraction of time.

I've already illustrated to my boss the main advantages of Python, but he doesn't like the idea to use a language that he never heared of it.

I'm the only programmer who codes desktop applications. And except the framework imposition, I'm free to use whatever I want.

I'm looking for good motivations to convince him to leave Netbeans Platform for Python/PyQt.

P.S: My english is bad, sorry.

+1  A: 

Have you emphasised the point of the lower development time. Any person that doesn't want a shorter turn around time is an idiot. This is the only main issue i can think for the change. Or what you could do is develop it on the side and when you have errors say this is what i have been doing in my spare time(have a working copy written in python).

Dean
*"Any person that doesn't want a shorter turn around time is an idiot."* And anyone who thinks that short development time is the only important issue here is also an idiot. :-)
Stephen C
I categorically claim that any person that turn hasty generalizations into categorical claims is an idiot... err, damn.. :-)
Unreason
Call the boss an idiot and you're done :)
Thorbjørn Ravn Andersen
A: 

Just use Netbeans as an IDE and he'll never notice :P

Speaking more seriously: a side by side comparison of strong and weak points behind each of technologies will certianly be more convincing. Just don't cheat too much in favor of Python ;)

Mchl
+2  A: 

First, results speak for themselves: if you can piece together another version of one of your applications in pyqt, and tell him how long it took, it might be motivation enough.

Or, next time you're starting a project, you could prototype four or five different versions of the interface in pyqt in the morning, ask his feedback after lunch, and then say, "if I keep going on these, it'll be done in two days; if I redo this in netbeans, it'll be done in four."

And as for the "never heard of it", feel free to point out that Google uses python extensively, and even hired many of the python developers.

sarnold
+1: You can't "convince" a boss of anything. All you can do is write better code with Python and show that it's better than Java for your customers.
S.Lott
+8  A: 

If your selling skills are not working in discussion format I highly suggest that you document it. Some managers/bosses really respond well to this.

Make a matrix of all the metrics that you yourself use to grade the two frameworks (I leave the level of objectivity to you there: for example if objective it should analyze the cost of transition and the loss of institutional experience; but it might not be high).

Finally, send it by e-mail and viola you have:

  • made a report/analysis of the situation providing options for improvement
  • this shows that you are thinking towards future and that you show initiative

EDIT: You can also ask your boss to show your analysis to his friend if he trust his friend that much, but ask for a written counter-analysis so that you can address the critique.
It is a good thing to do it openly and document the decision process well, since ultimately, if your suggestion is accepted, you will share responsibility for the decision.

Unreason
Don't forget, that you'll need to supply support/maintenance/upgrades/bugfixes for applications already created on NB platform. Having to support two platforms is an additional cost for an enterprise (might be large or negligible, but it's worth considering)
Mchl
@Mchl, or if they're not too advanced, re-write them in Python+Qt. While you can easily get any ID-10-T programmer out of college who knows Java (cause it's so sexy), it's been my experience that the better programmers learn Python. Sure you can find great programmers in Java (I guess?) but I think the ratio is a little higher with Pythonistas, so it's perfectly possible that porting them to Python would end out cheaper (maintenance, etc.) in the long run.
Wayne Werner
From my expierience 'better programmers tend to choose x language' seem to never be supported by any evidence. Contrary to 'people programming in x feel themselves superior to poeple programming in y' ;)
Mchl
+4  A: 

The basic problem here is that your non-technical boss is getting conflicting advice from you and from the friend who advised him in the first place. If you want him to take your advice seriously you need to prove that your advice is likely to be trustworthy. And that will only come with taking the lead and being successful with significant projects in the company. Right now, you haven't earned his confidence.

The other thing to consider is how your preferences mesh with the company's objectives. For instance, you want to be able to write code fast. But the boss / the company needs code that is going to be reliable and maintainable ... if you decide to take another position. He doesn't want to be left in the awkward situation where the company is contractually committed to deliver code that doesn't really work properly, and the only person who understands it has left.

Stephen C
Even a<s>n idiot</s> boss can look at somewhat decent python code and have a pretty good idea about what's going on. Excellent python code will be even easier to understand. In Java, OTOH, if the comments lie, you've got to be pretty smart.
Wayne Werner
@Wayne - I'll take that as a compliment :-). But my point is about the boss getting code that can be maintained by someone else. There are probably many more Java coders in his town / on his payroll than Python programmers.
Stephen C
+7  A: 

The problem is that development time is usually nothing compared to maintenance. Who cares if it takes two days instead of four if the app has a 1-5 year lifetime?

You'll have to convince him that if you get hit by a truck or leave the company (perhaps to work for somebody who uses Python exclusively) that he won't be left in the lurch with a bunch of applications that nobody else knows and can't maintain or upgrade.

duffymo
I would not say that development time is a fraction of maintenance time; but that depends on the terminology used (if you say development = 'resource used until first delivery' then you might be right). Also, the maintenance would be shortened/more cost effective if the framework is more cost effective. Anyway, I stand at my answer - documenting the cost/benefits analysis (or some other strategic planning methods, such as SWOT for example) is single most useful thing that you can do.
Unreason
+1  A: 

Hi

Perhaphs showing him

a)Time spent in developing in Python and Java b)lines of code in Python and Java

with these two metrics maybe you can make your case stronger

Lisa
+1  A: 

I would guess a lot, in terms of risk management, would depend on the separation/isolation of the various softwares you develop, and their life cycle.

If you don't need to further a central set of libraries, or have (or can develop) Python bindings for those, and the projects are relatively self contained, say a turn around of two to six months, you could give him a quote for a project in Java that is reasonable and he's familiar with (to make sure it doesn't appear artificially inflated). Then give a much reduced quote for the same in py+pyQt, and see if you can get him to invest on your advice.

Without tangible evidence coming from inside that a change in route will bring benefit the more management and economics savvy people who are technically ignorant will not buy into a new platform when the old one never prevented from realizing and selling.

Without a decent assessment of why he doesn't want to switch platform and what he considers risks it's kinda hard to give more pertinent advice.

ThE_JacO
A: 

Some people will tell you to try to convince your boss verbally. Others will tell you to document the time savings you think you can make. My opinion is that you just go ahead and do it. Do it in your own time if you strongly believe its in your best interests.

I'm yet to meet a software manager who turned down a working piece of software when it comes in on time and under budget. This is by far the best method of persuasion I've used in my career. Its also a great way to show you have initiative. Just be prepared to work for free if it doesnt work out.

Alex