如何说服老板用 Java/Netbeans 平台替代 Python/PyQt?
我在一家从事自动化行业的小公司工作。 老板雇用我是因为他想向他的员工出售/提供一些桌面应用程序 目前的客户。 他强迫我使用 Netbeans 平台(一个通用桌面应用程序框架)。 他的一位软件工程师朋友建议他选择这个框架。
目前,我使用 Netbeans 平台创建了 3 个桌面应用程序。 我喜欢 Netbeans 平台。我真正利用了模块化、窗口系统和查找。 不幸的是,我很沮丧地知道我可以在很短的时间内使用 Python 和 PyQt 完成相同的工作。
我已经向我的老板说明了 Python 的主要优点,但他不喜欢 想要使用一种他从未听说过的语言。
我是唯一编写桌面应用程序代码的程序员。除了框架强加之外,我可以自由地使用我想要的任何东西。
我正在寻找良好的动机来说服他离开 Netbeans 平台而转向 Python/PyQt。
PS:我的英语不好,抱歉。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
如果您的销售技巧无法以讨论的形式发挥作用,我强烈建议您记录下来。一些经理/老板对此反应确实很好。
制作一个您自己用来对两个框架进行评分的所有指标的矩阵(我将客观性的程度留给您:例如,如果客观的话,它应该分析转型成本和机构经验的损失;但它可能不是高的)。
最后,通过电子邮件和中提琴发送您已经:
编辑:
如果你的老板非常信任他的朋友,你也可以要求他的朋友向他展示你的分析,但要求他提供书面的反分析,以便你可以解决批评。
公开地这样做并记录好决策过程是一件好事,因为最终,如果您的建议被接受,您将共同承担决策的责任。
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:
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.
问题是,与维护相比,开发时间通常不算什么。如果应用程序的生命周期为 1-5 年,谁会在乎是否需要两天而不是四天呢?
你必须让他相信,如果你被卡车撞了或离开公司(也许为专门使用 Python 的人工作),他不会因为一堆其他人不知道的应用程序而陷入困境。无法维护或升级。
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.
这里的基本问题是,你的非技术老板从你和最初给他提供建议的朋友那里得到了相互矛盾的建议。如果您希望他认真对待您的建议,您需要证明您的建议可能值得信赖。只有在公司的重大项目中发挥领导作用并取得成功,才能实现这一点。现在,你还没有赢得他的信任。
另一件需要考虑的事情是你的偏好如何与公司的目标相契合。例如,您希望能够快速编写代码。但是老板/公司需要可靠且可维护的代码......如果您决定担任其他职位。他不想陷入这样的尴尬境地:公司按照合同承诺交付不能真正正常工作的代码,而唯一理解它的人却离开了。
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.
首先,结果不言而喻:如果你能在 pyqt 中拼凑出你的一个应用程序的另一个版本,并告诉他花了多长时间,这可能就足够了。
或者,下次你开始一个项目时,你可以早上在 pyqt 中制作四到五个不同版本的界面原型,午餐后询问他的反馈,然后说,“如果我继续做这些,就会两天内完成;如果我在 Netbeans 中重做,四天内就能完成。”
至于“从未听说过”,请随意指出 Google 广泛使用 python,甚至雇佣了许多 python 开发人员。
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.
有些人会告诉你尝试口头说服你的老板。其他人会告诉您记录您认为可以节省的时间。我的意见是你就去做吧。如果您坚信这符合您的最佳利益,请在您自己的时间进行。
我还没有遇到过一个软件经理会在一个可工作的软件按时交付且低于预算时拒绝它。这是迄今为止我在职业生涯中使用过的最好的说服方法。这也是展示你主动性的好方法。如果不成功,请做好免费工作的准备。
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.
您是否强调了较短的开发时间这一点?任何不想缩短周转时间的人都是白痴。这是我能想到的改变的唯一主要问题。或者你可以做的是在一边开发它,当你遇到错误时,说这是我在业余时间所做的事情(有一个用 python 编写的工作副本)。
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).
也许向他展示了
a) 用 Python 和 Java 进行开发所花费的时间
b) Python 和 Java 中的代码行
与这两个指标也许可以让你的案例更有说服力
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
我猜想,就风险管理而言,很大程度上取决于您开发的各种软件的分离/隔离及其生命周期。
如果您不需要进一步开发一组中央库,或者拥有(或可以开发)这些库的 Python 绑定,并且这些项目相对独立,比如两到六个月的周期,您可以给他报价对于一个合理且他熟悉的 Java 项目(以确保它不会显得人为夸大)。然后在 py+pyQt 中给出同样的报价,看看你是否能让他根据你的建议进行投资。
如果没有来自内部的切实证据表明路线的改变会带来好处,那么当旧平台从未阻止实现和销售时,那些技术上无知的更懂管理和经济的人就不会购买新平台。
如果没有对他为什么不想转换平台以及他认为存在的风险进行适当的评估,就很难给出更中肯的建议。
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.
只要使用 Netbeans 作为 IDE,他就永远不会注意到 :P
认真地说:对每种技术背后的优点和缺点进行并排比较肯定会更有说服力。只是不要为了Python而作太多的欺骗;)
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 ;)