Questions tagged «methodology»

30
如何成为一个“更快”的程序员?
我最近的工作评估只包括一个弱点:及时性。我已经知道我可以做些改进的事情,但是我正在寻找更多。 在提高其输出速度而又不牺牲其质量的情况下,是否有人对它们进行提示或建议? 您如何估计时间表并遵守时间表?您如何做才能在较短的时间内完成更多工作? 非常感谢您提供任何反馈意见,谢谢,

12
为什么在一种产品或软件的开发中使用多种编程语言?
我是一名刚毕业的研究生,旨在攻读计算机科学硕士学位。我遇到了多个真正吸引我并鼓励我为它们做出贡献的开源项目(CloudStack,OpenStack,moby和Kubernetes仅举几例)。我发现它们中的大多数有一个共同点,就是使用多种编程语言(例如Java + Python + Go或Python + C ++ + Ruby)。我已经看过另一个问题,它涉及如何使多种编程语言相互通信:如何使两种不同的编程与两种不同的语言交互? 我想了解提示企业使用多种编程语言的要求。什么样的要求或要求类型使软件架构师或项目负责人说:“我建议对于任务1使用语言X,对于任务2使用语言Y”?我似乎无法理解在同一产品或软件中使用多种编程语言的原因。

27
人们为什么使用编程书籍?[关闭]
我发现,当有人问什么是学习编程的最佳方法时,人们通常会向他们提供由不同作者撰写的一堆文本的参考。 但是我不相信有很多人会从书籍中学习编程。我发现他们通常面临挑战,然后使用编程作为克服挑战的工具。 例如,我“进入”编程是因为我想为自己正在玩的游戏启动服务器,因此我在Google上搜索并阅读了对该特定服务器的支持,现在我是一名受雇的软件工程师,仅使用我开发的技能(然后通过对不太流行的服务器程序包编码C#脚本进行进一步开发)。 所以我的问题是,人们通常发现从这些书中学习起来更容易吗?我知道我看过其中的一些,发现它们太“干”了,无法鼓励我完成。

14
敏捷是新的微观管理吗?
这个问题一直困扰着我一段时间,所以我想问那些在开发环境中遵循敏捷/敏捷实践的人。 我的公司终于冒险融入敏捷实践,并从一个由4个开发人员组成的团队开始在一个敏捷团队中进行试用。到目前为止,已经进行了3个月的迭代,为期4个月,他们继续这样做,而对我们其他人来说却没有足够的敏捷性。这是由于以下事实:管理层信任高层提供的大量临时类型请求,可以满足业务需求。 最近,我与参与该计划的开发人员进行了交谈。他们告诉我这不好玩。他们的Scrum管理员不允许他们与其他开发人员交谈,也不允许他们在工作区域内拨打任何电话(可能在一定程度上可以)。例如,如果我想和敏捷团队中的朋友聊天,未经Scrum主管的允许,我是不允许的。坐在敏捷团队旁边的人。 所有这一切或敏捷的想法是为敏捷开发人员提供一个不受干扰的完整真空,并将其投入6个以上的生产小时。好吧,伙计们,我不是敏捷专家,但是我读过Yahoo敏捷发布文档以及其他组织的类似文档时,给我的感觉是敏捷并不便宜。团队需要敏捷的资源和预算来灌输敏捷性,并在他们到达时纠正问题,使他们重回正轨。 对于初学者来说,它需要为开发人员提供培训,并为经理等提供指导。等等。目前的Scrum主管是一位经理,他参加了为期两天的敏捷培训课程,该课程由管理层支付,现在领导这个敏捷团队。我在会议上还听说过,敏捷宣言并不表示敏捷不是一成不变的,而是为每个公司定制的。好吧,这听起来不错,也很合理。 总之,我一直认为敏捷应该在开发团队中带来和谐,从而使开发人员感到满意。但是,当与敏捷团队中的开发人员交谈时,我的感觉却截然相反。他们为自己除了工作以外什么都不会说话感到不高兴,他们整日坐在办公室里安静地工作,他们觉得这是管理层提高工作效率的另一种方式。 请告诉我,这是否是为了获得更多美元而自私自利的良好做法的例子之一?也许是像我们这样的开发人员才是我们,这个敏捷的团队认为他们不喜欢在只能呼吸工作的环境中工作。 这是一家医疗保健领域的公司,在美国设有办事处。绝对感觉像是牛仔风格的敏捷,这使我真的根本不想去敏捷,尤其是在我目前的公司中。 所有这些都与管理完全便宜有关。削减昂贵的咖啡以获得更便宜的版本,强调节约和生产,同时保持尽可能的瘦。 我的感觉是,门后的管理层中有人拒绝了这个想法,敏捷使您可以生产更多,因此我们可以向我们的老板展示我们正在以相同的人数生产更多产品。或者,如果是这样的话,它可能使我们减少人员。 他们每天开会5分钟。但不允许与团队以外的人聊天或交谈。所有重点都放在工作上。

9
1个或2个开发人员可以使用Agile / Scrum吗?
到目前为止,我一直在阅读和研究的所有内容都描述了敏捷/ Scrum如何与大约4至6名成员甚至更多的团队合作。 在我目前的商店中,我们大约有8个开发人员,但是考虑到项目数量的性质和我们支持的部门数量,给一个项目分配的人员永远不会超过1或2。 我仍然可以与1个或2个开发人员团队一起使用Agile / Scrum吗?我正在努力向经理推销,以开始使用这种方法,但是我需要能够解释如何为一小部分开发人员缩减规模,或者说服他们确保我们在给定的数量上拥有更多的成员。项目。

3
DRY,KISS,SOLID等被分类为什么?
DRY是设计模式,方法论还是介于两者之间?他们没有可以证明的具体实现(即使您可以轻松地演示一个案例,而无需使用诸如KISS之类的东西……请参见The Daily WTF以获得大量示例),它们也无法像方法论一样完整地解释开发过程通常会。这些“经验法则”在哪里留下来?


9
如何在团队中应对不同的开发风格(自上而下与自下而上)?
假设您刚开始在一个非常小的团队中从事{目前相对较小,但希望以后会更大}的项目。请注意,这是一个旨在供现实世界中的其他开发人员使用的实际项目,而不是一些打算在学期末取消的学术项目。 但是,该代码尚未发布给其他人,因此尚未确定任何决定。 方法论 你们中的一个喜欢在开始编写代码并使各部分组合在一起之前,必须对所有组件的交互方式(自下而上的设计)有个清晰的认识。你们中的另一个人喜欢先进行整个设计,然后在编码解决方案之前确定所有组件和通信的细节。 假设您正在开发一个新系统,而不是模仿现有系统,因此,正确的最终设计应该是什么样子并不总是显而易见的。因此,在您的团队中,不同的团队成员有时甚至对最终产品所需的要求有不同的想法,更不用说如何进行设计了。 当自下而上的开发人员编写一些代码时,尽管该代码可能会解决手头的问题,但自上而下的开发人员还是会因为设计中可能会遇到的未来问题而拒绝该代码,并认为正确设计更重要在尝试编写解决方案的代码之前。 当自上而下的开发人员在开始编写代码之前尝试设计出完整的设计和设想的问题时,自下而上的开发人员会拒绝它,因为自下而上的开发人员并不认为实际上会出现某些问题,并认为,当要求和约束变得更加清晰时,将来可能需要更改设计。 问题 这导致的问题是自下而上的开发人员最终浪费了时间,因为自上而下的开发人员经常由于设计缺陷而决定废弃自下而上的开发人员编写的解决方案,从而需要重新设计。 -编写代码。 自上而下的开发人员最终浪费了时间,因为自上而下的开发人员现在经常坐下来与自下而上的开发人员一起制定正确的设计,将两者序列化到甚至更快的程度比2人多做1人。 两位开发人员都希望继续合作,但似乎合并实际上并没有帮助他们中的任何一个。 目标 显然,共同的目标是最大程度地提高编码效率(即,将时间浪费最小化)并编写有用的软件。 问题 简而言之,您如何解决这个问题并应对这种情况? 我能想到的唯一有效的解决方案不会浪费时间,就是让每个开发人员都遵循自己的设计风格。但是,这比您进行代码审查并实际上需要批准彼此的更改以及尝试设计一个供他人使用的一致框架时听起来的困难。 有没有更好的办法?


6
记录现有代码库的方法
我作为团队的成员在没有内联文档,也没有技术文档的现有应用程序上工作。当我一直在处理应用程序的各种错误报告时,我为自己写了一条面包屑的痕迹-各个地方的错误号,以便下一个开发人员可以参考该错误号以查看发生了什么。 因此,我的问题是: 记录此代码的最有效方法是什么?我应该在接触该区域时记录下来(如果需要,可以使用病毒方法),还是应该自己从每个部分进行记录,而不遵循分支到应用程序其他区域的路径?我应该在以前不存在的地方插入行内注释吗(担心我最终可能会错误地识别代码的作用)? 您将使用哪种方法来准确,快速地为没有现有内联文档或内联引用外部文档的大型应用程序提供文档?

6
Scrum是否为需求不变的项目增加了额外的开销?
我正在阅读Gunther Verheyen撰写的Scrum-A Pocket Guide,它说: Standish Group的2011年混乱报告标志着一个转折点。在比较传统项目和使用敏捷方法的项目时,进行了广泛的研究。该报告表明,即使以前认为软件必须按时,按预算并在所有承诺范围内交付的旧期望,采用敏捷方法进行软件开发也会带来更高的收益。该报告显示,敏捷项目的成功率是传统项目的三倍,失败的敏捷项目则少三倍。 因此,我与一位同事争论,他说对于某些项目(例如要求不变的医学/军事),敏捷(尤其是Scrum)在所有会议中都是开销,等等,这更合乎逻辑。例如使用瀑布。 我的观点是,应该在此类项目中采用Scrum,因为这将使过程更加透明并提高团队的生产力。我还认为,如果不需要Scrum事件,将不会花费很多时间,因为我们不需要在Sprint Planning中花整个8个小时来进行1个月的冲刺。我们可以抽出5分钟的时间来确保我们都在同一页面上并开始工作。 那么,Scrum会为需求不变的项目增加额外的开销吗?

8
方法:为另一个开发人员编写单元测试
我当时在考虑软件开发和编写单元测试。我有以下想法: 假设我们有一对开发人员。每对负责一部分代码。一对中的一个实现了一个功能(编写代码),第二个为此编写了单元测试。测试是在代码之后编写的。以我的想法,他们互相帮助,但工作却分开。理想情况下,它们将处理两个相似大小的功能,然后交换以进行测试准备。 我认为这个想法有一些好处: 测试是由某人编写的,可以看到更多有关实施的信息, 工作应该比配对编程要快一些(同时具有两个功能), 测试和代码都有负责的人, 代码至少要经过两个人的测试,并且 也许搜索正在测试您的代码的人编写的代码中的错误将为编写更好的代码和避免偷偷摸摸的行为提供特殊动机。 在代码和测试开发之间添加另一个开发人员进行代码审查也许也是个好主意。 这个想法有什么弊端?它已经被描述为某种未知的方法论并用于软件开发吗? PS。我不是专业的项目经理,但是我对项目开发流程有所了解,并且知道一些最受欢迎的方法-但是这个想法对我来说并不熟悉。

14
避免成为“理论家”程序员
我在SO的几篇文章中找到了这篇文章。我发现自己属于第六原型。“理论家”。 它将“理论家”定义为: 理论家知道有关编程的所有知识。他或她可以花4个小时来讲解一门晦涩的编程语言的历史,或者提供证明您编写的代码的效果不是十分理想,并且可能还要花费三纳秒才能运行。问题是,理论家对软件开发一无所知。当理论学家编写代码时,它是如此“优雅”,以至于凡人都无法理解。他或她最喜欢的技术是递归,并且每个代码块都经过了最大程度的调整,以牺牲及时性和可读性为代价。 理论家也容易分心。一个简单的任务需要一个小时才能完成,因此理论家需要三个月的时间,因为他们认为现有工具还不够用,因此他们必须构建新工具来构建新库,以构建符合其高标准的全新系统。如果您可以让Theoretician成为您最好的球员之一,则可以让他或她在项目本身的范围内发挥作用,而不必花时间在“终极排序算法”上。 即使在做一个简单的项目时,我也总是会因试图从头开始过度设计所有东西而感到困惑(这也许可以解释为什么我浪费了大约两年的时间来尝试从头开始构建一个操作系统。但是即使我看到了,最终毫无意义)。 有什么可以帮助我避免这样做的?并坚持使用KISS原则吗? 谢谢

7
Scrum Master如何参与日常站立训练?
我们有一个专业的Scrum Master顾问[*],他最近加入了我们的项目。不幸的是,我们不知道她的名字(她从未向我们介绍自己,她只是一天之内就说“我们每天都站起来”),除了主持一个椅子,她似乎没有做太多其他事情。每日站立会议-当我半开玩笑地要求她也在会议中提供每日反馈时,她感到非常不满,说这是Scrum Master的“促进而不是参与”的工作。 这似乎是相当反敏捷的(已经在其他敏捷项目中工作过,这些项目是团队自我指导的),应该是平等的,但是我不确定它在Scrum方法论中如何工作。我怀疑她整天没有做很多事情,这就是她在这个问题上采取防御措施的原因。 Scrum Master是在站立会议期间参加“昨天,今天,障碍”活动,还是只是主持(“协助”)会议? [*]我们实际上并没有告诉她她的工作,因为她自称为Scrum Master

6
“定制软件公司”如何处理技术债务?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 7年前。 什么是“定制软件公司”? 所谓“定制软件公司”,是指主要通过构建定制的,一次性的软件来赚钱的公司。例如代理商或中间件公司,或像Redify这样的承包商/顾问。 “定制软件公司”的反面是什么? 与上述业务模型相反的是专注于长期产品的公司,无论它们是可部署的台式机/移动应用程序还是SaaS软件。 确定技术债务的可靠方法: 我为一家试图专注于SaaS产品套件的公司工作。但是,由于某些限制,我们有时最终会屈从于某些客户的意愿,而我们最终会构建只能用于该客户的定制软件。 这是招致技术债务的肯定方法。现在,我们需要维护一些软件,这对我们的核心产品没有任何影响。 如果定制工作是增加技术债务的可靠方式,那么代理机构应如何处理呢? 所以这让我开始思考。没有核心产品作为其业务模型中心的公司,他们总是在进行自定义软件工作。他们如何应对技术债务的概念?怎么不使他们陷入技术破产?

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.