如何保存一个年轻而垂死的项目?


12

我匿名发布此信息,因为我不想陷入潜在的麻烦。
我有一个大问题。
我最近加入了一个不到一年的团队。我从一个月开始从事此项目。公司结构如下:

  • 所有者(非技术人员)
    • 项目经理(非技术)
      • 首席开发人员(技术,但不擅长)

这个项目是一个使用ASP.Net的网站,首席开发人员为此设计了一个糟糕的体系结构。您将不得不信誓旦旦,但是基本上,构建网页的要求方式是在Debug模式下通过VPN在单个网页上给我们3分钟以上的加载时间。

螺旋式发展到其他同事都同意他们花更多的时间等待页面加载而不是实际开发。

现在最大的问题是这个。项目经理不了解技术并接受它。他特别指出,他相信首席开发人员会在应用程序体系结构上做出正确的选择。

团队中没有人知道所有者的意见,但是每个人都害怕在这种经济中动荡(尤其是我自己)。

你会怎么做?


1
首席开发人员的背景是什么?如果他对批评不满意,我很想跳槽。
JB金

13
3分钟以上!:OI发现,如果我们的一个Web应用花费的时间
超过

9
我的问题是:您是否拥有自己的证书设计,会使其变得更好?您是否尝试过将设计提交给潜在客户?
SoylentGray 2011年

6
@Darknight:即使我尝试过,我不确定我是否可以使页面加载3分钟以上。Sleep()反正也不没有电话!
Carson63000

1
出于好奇,单个网页要花多长时间才能以调试模式和不通过VPN加载?
马特·弗雷克(Matt freake)

Answers:


31

这个问题可以用非技术性的方式证明给项目经理。将您的站点放在PM前面的浏览器窗口中,并请他玩一会儿。加载大约两页后,如果情况与您所说的一样糟糕,则应在地毯上呼叫首席开发人员。

PM可能没有专门的开发知识来了解它为什么不好,但是他可以将自己看作是一般的网站用户。其他显示类似信息的站点只需花费您一小部分的时间,而您的站点正在从隔壁房间中的服务器通过本地网络进行加载。

如果这种方法不可行,请转到所有者。所有者是一个有钱人,但是他很快就能看到一个缓慢的网站,没人会访问==没有钱。设置相同的演示,在加载第一页之前,他应该同时在自己的地毯上称呼PM和Lead。

如果您担心一个人会掀起波澜,那么不止一位开发人员愿意表达他们的担忧。老实说,在一家像您一样平凡的公司中,如果您开发的产品是炸弹,那么无论您说话还是保持沉默,您都无法工作。因此,以这种方式看,除了在公司工作了几个星期或几个月,您没有什么可以失去的。如果有问题,请安排一些“牙医的约会”,并在提出担心之前寻找新的工作,因此,如果您失去这份工作,则可以在下一个星期一开始。


4
+1出于建议,也出于“如果您正在开发的产品是炸弹,那么无论您是大声说还是保持安静,您都无法工作。”
Marjan Venema

19

假设您的陈述正确无误,则您有一个无能的首席开发人员和一个无能的项目经理(至少达到他无法评估团队技能的程度)。精细。您拥有与世界各地每个团队的开发人员完全相同的选择。

  1. 您是否在不关心公司健康的情况下工作?

  2. 寻找其他地方的工作。

  3. 向主管,项目经理和所有者提出合理建议,并希望他们被采纳。

您可以自由地同时进行上述任何组合。

如果您要积极确保项目的健康,则必须与其他开发人员一起工作,以在业余时间提出新的框架,并向团队其他成员演示为什么它是优越的,而旧工作应该被抛弃了。


8

我在类似的情况下工作,实际上是公司的合作伙伴的首席开发人员已经创建了软件的“核心”,除了与他直接合作的密友之外,其他开发人员不允许接触。核心。

像每个模块一样,“将要存在的能力”也创建了规则,因为每个模块只能有一个数据库表,因为这样做更干净。因此,通过从数据库表中选择“ DISTINCT”来创建现有下拉列表,而不是使用单独的表。

由于实施团队必须完成工作,并且产品无法立即使用,因此出现了许多不良补丁。这些补丁导致了许多问题,这些问题已得到修复,并针对每次安装进行了自定义(修改)。

我的方法是采用内核不支持的规范的一小部分,并为其编写一个小的,良好的通用补丁。使执行团队满意的东西,但没有“我们需要彻底改变思维”这样的威胁。由于实施团队与核心开发人员之间的敌意,花了几个月的时间才说服实施团队我的方法比他们的黑客更好。但是,一旦他们看到我会听取他们的意见并进行其他调整以支持他们,他们就会感到高兴并站在我这一边。首席开发人员花了一个月的时间来接受补丁,但是一旦他完成了补丁,就真正开启了我们所有人之间关于设计系统其他部分的更好方法的交流。

改变人们的想法绝非绝路,特别是如果您需要与他们保持民事关系。但是,如果您正确地对待它,则可以在不侮辱老板的情况下获得尊重。

希望有帮助!


7

非常简单的答案和解决方案。似乎每个人都知道问题所在。因此,您四处指出问题对任何人都没有价值。实际上,它只是让您看起来像个whi子。如果您想增加价值,那么您需要指出解决方案并建立用于更改解决方案的业务案例。然后,您可以使用相应的解决方案指出问题。演示也将在证明您的解决方案方面大有帮助。当然,这可能意味着您要按自己的时间做事,但这完全取决于您自己有多重要。


1
+1为演示创意。有些人很难想象,除非提供无可争议的证据,否则可能会做得更好。
Karl Bielefeldt

2

首先,我强烈建议您确定事实,这是应用程序体系结构问题,而不是VPN配置中的问题。我已经看到配置不当的VPN会导致此确切问题。您是否确定该应用在办公室内部运行缓慢?

如果您排除了网络,我会接受KiethS的建议,并让PM来拉页面。


1

听起来像是业务,或者至少该项目即将在某个时候破产。除非戒烟,否则我会尽量使自己远离它,例如。进行其他项目的志愿者/请求工作。希望随着时间的流逝,您将在这场灾难上花费更少的时间,而将更多的时间花在其他有机会开展工作的项目上。您不想被认为是“从事无效项目的人”。这都是为了保护您的声誉。


0

所有者是否想要好的产品?我高度怀疑答案是“是” ...因此,您需要大声疾呼。您需要记录当前的体系结构,然后(使用优质的帝国数据)来说明产品如何无法达到适当的性能预期。您说您的同事都知道它的性能很差-很好...客户呢?他们在说什么 使用性能评估工具并确定花费了这么长时间。许多工具甚至会向您显示每个函数调用需要多长时间。从所有这些数据中,您应该有足够的弹药可以与您的项目经理和技术负责人讨论为什么事情不应该如此,以及如何需要一些主要的重构来使产品达到最新水平。

然后(仅在与PM和负责人交谈之后),这应该足以开始进行一些更改。如果那时PM不能说服,那么您需要确定这是否真的是您想要的地方。如果是这样,则可能与所有者会面。如果没有,请准备好该简历。

确保记录每一步的每一步。


0

在技​​术上,我确实同意上述建议。另一方面,我觉得这更像是一个关系问题,而不是技术问题。

如果您想走顺利的路,与首席开发人员交谈将是一个不错的选择。我不会在办公室讲话。在外面喝咖啡会使事情变得轻松随意。

如果这不起作用,则可以尝试与PM和所有者进行交谈。

如果没有效果,建议您找一份新工作。


0

诚实-尽可能多的机智。

从首席开发人员开始,如果需要的话,继续前进。尝试让他们的性格更好的一方参与进来-如果您带领开发人员喜欢解决问题/喜欢节省时间/喜欢提高效率/等等。在这个问题上用短语表达问题-指出那些他们喜欢的实例不会有任何伤害过去曾作为其他动机获得成功。

如果您不挥手,您可能会死在水中。


0

是否有可能将问题带回到可测量且非技术性的水平,以便项目经理和所有者可以理解。

例如,您提到了3分钟以上的缓慢加载时间,我认为规范中某处存在性能要求,就像“要在1秒内加载页面”一样简单。这样的事情是可以衡量的,不能被驳斥。如果发现此问题的根本原因是狡猾的体系结构,则项目经理和/或所有者应介入以强制进行某些更改。

如果不是这样,那么您的公司就会出现系统性的问题,即最初的分析工作做得不好,并且没有足够的流程来解决这些类型的问题。考虑跳船!


0

真正的男人说话时没有怨恨或情感。那是诀窍。

某人可能会与您大声说话的唯一正当理由是,如果您遇到不满:

领先的开发人员尚无所知。我知道这会发生,但是没人听我说等等。

在哪里

代码模型是错误的,因为它难以维护且运行缓慢。我们需要对此向前迈进,并解决这两个问题。

前者是一场消灭的战斗,后者是一场争取和平的战斗,从长远来看,它将赢得您对一个人诚实的尊重。

如果项目负责人以此为前提,他肯定会认为自己可能会被解雇,然后简单地说:

不要让我对我不负责执行的事情负责。我只是说实话。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.