我有兴趣知道如何处理当前的软件开发流程,该流程多年未变,最终会导致产品和团队失败。是的,解决这个问题的更简单方法可能是换工作,但是有了这种经济,说起来容易做起来难。但是,如果您有特定的示例,并且在相同的情况下曾经或多次出现,并且认为解决这些问题的最佳解决方案是离开公司,那么请支持您的回答。关键是,这个问题确实有答案,特别是如果该主题的多个专家最终指出最好的路线是:路线A。
我知道成千上万的开发人员曾经或正在经历类似的情况。这是公司从在市场上排名第一变为最后甚至退出市场的主要原因之一。希望本文中的答案能够帮助其他面临类似障碍的开发人员。在小型或大型开发团队中,通常会发生以下情况:
- 一些开发人员似乎并不在乎并决定顺其自然,而宁愿让代码充满很多代码味道,保持开发流程不变,
- 其他人厌倦了不变,辞职并搬到另一家公司,
- 其他人似乎害怕说话,宁愿保持沉默,
- 有时,很少有开发人员或只有一个开发人员试图说出要改进产品的情况,并告诉团队遵循最佳编码实践的重要性和对客户,用户和团队的益处。这些类型的开发人员通常由于诸如公司提供的收益,软件公司提供的收益很少,产品具有很大的潜力等原因而决定留在团队中。
我们团队中的产品仅是公司从中获得收入的一小部分,因为它拥有大量产品(该公司不是软件/硬件公司;因此,至少在目前,没有持续的专利诉讼可创造工作机会)不稳定)。这些年来,我从其他开发人员的经验中学到的东西是,要真正认识一个开发团队,需要花费时间,而不是几天或几周,而是几个月。在面试过程中,团队是否要雇用您或需要您;它们使一切听起来很棒,并且它们可能会告诉您您想听的内容。但是,当您开始在该团队中工作并开始深入研究代码并迈向完整的SDLC流程时,现实就不同了。这是作为开发人员时,您开始看到自己从事的工作的现实。这种现实使得很难从一家公司转移到另一家公司,因为很难知道您所迁移的公司是好是坏。是的,您可以阅读Glassdoor的评论等。但是,这些在线评论中有多少是真实的,而不是来自HR?
考虑到经理从一开始就一直拒绝更改,而以前的开发人员已经这样做了多年,那么解决以下概述的问题的最佳方法是什么?
多年来缺乏产品创新:产品具有巨大的潜力,并为公司带来了可观的收入,但产品看起来像20年前制造的。一些用户抱怨该产品不友好,不直观,而另一些用户则提到该产品已用于Gmail等应用程序,并且由于不具有类似功能而在使用该产品时感到沮丧。这里的主要问题是,当您作为开发人员尝试对产品进行更改并开始将产品的主要元素移开几个像素(以使其更加用户友好或直观)时,经理会慌张并告诉您把它放回原处。如果您尝试添加对用户有利的功能,经理会要求您删除它,因为“用户习惯于按原样进行处理等。” 我认为您理解了变革,改进和创新的阻力(即使您作为开发人员提供了强有力的利益主张,经理也不愿意改变)。公司在该领域有一些竞争对手(其中的几个产品更具竞争力),但是公司以某种方式保持了现有客户多年。
缺乏项目管理协调:因此,一些项目交付较晚,存在错误,有些客户抱怨(客户也报告错误),或者在交付项目之前预算太快等。我已经提供了它们一些项目协调技巧,并且现在定期使用这些想法来跟踪项目和要完成的任务的进度。
不良的软件开发实践:在大多数(如果不是全部)文件上看到代码异味,没有文档,代码冗余,在同一文件上混合了前端层和后端,过时的开发工具,没有真实的测试环境或测试工具(只需复制和粘贴)文件从开发环境到生产环境,然后手动进行测试,看情况是否良好并发布)。我用于开发和测试的大多数开发工具都是团队不知道的,因为团队仅使用2个IDE进行代码开发,而源代码控制仅适用于开发环境。其他开发人员试图使用最新的框架来改善当前问题,但是经理不喜欢它,因为“如果离开,那么谁来维护该代码?让我们保持现状”,其中一些开发人员已经离开并搬到另一家公司。
综上所述,我确定其他公司的许多开发人员也会遇到类似的情况,但是由于情况不同,开发人员可能更愿意留在团队中而不是去其他公司,原因是(工作便利,工作灵活性,公司收益或只是因为还没有一个更好的机会)。我没有一家完美的公司,但是作为开发人员,您将如何处理和解决所有这些问题,以保持积极的态度,并最终促进变革,以改进产品并改善软件开发流程(无论您是否有很多)多年的开发经验还是仅几个)?我知道这是一篇很长的文章,但是我希望提供更多细节,以增加获得更多有用反馈的机会。
非常感谢您的反馈和时间