软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答

5
在Scrum中,为什么不应该合并产品负责人和ScrumMaster角色?
在我从事的较传统的项目中,项目经理(在较大的项目中,如果没有人,则可能会有副/副/助理项目经理)是负责与客户沟通,接收项目的人运行状况和状态更新,确定计划和预算,管理流程,确保团队拥有完成任务所需的东西,等等。 但是,在Scrum中,这些责任在产品负责人和ScrumMaster之间分配。产品负责人是客户的声音。他们直接与客户互动,创建用户案例,组织积压的产品并确定优先级,以及其他面对用户/客户的问题。ScrumMaster处理流程,监督会议(包括评估和计划),消除障碍并监视项目的整体运行状况,并根据需要进行调整。 我已经阅读了包括Wikipedia在内的多个来源,ScrumMaster和产品负责人的角色应该由两个不同的人担任。我不仅阅读了有关内容,而且还参与了成功的“传统”风格项目,其中两个项目的活动都由一个人来处理。实际上,由一到三个人来负责项目(包括人力资源/人员)和流程级任务是更有意义的,因为它们经常是并行的。流程更改会影响计划,预算,质量和其他项目级别的目标,而项目更改也会影响流程。 为什么Scrum要求将这些活动分为两个角色?这实际上提供了什么优势?有没有人在一个成功的Scrum项目中,产品负责人和ScrumMaster是同一个人?

14
大学教授DOS风格的C ++,如何处理它[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 我已经编程多年了,但是想要获得文凭以提高自己的就业能力。我曾经上过大学,所以我没有选择一个完整的5年制计算机科学专业,而是选择了一个较短的,面向实际的软件工程程序。 我以为它可能会更多地关注具体技能而不是理论,但是我仍然认为大学和教授喜欢正确,正式和学术的事物。仍然是科学,对不对?错误-我对许多IT课程如此草率感到惊讶。 在编写C ++入门课程中,仅编写了1-2个程序,就对诸如“为什么全局变量不好”和“为什么常量常数好”这样的陈词滥调进行了测试。没有适当背景的随机轶事。包含讲义system(pause/cls),getch和标头如conio.h和iodos.h。任务之一是从32到255打印“ ASCII字符” ,并使用屏幕截图显示使用Windows-1252代码页打印的表格,但完全不提及编码。 问题:当大学/教授似乎在使用劣等和/或过时的工具和方法,并且所教的内容是不正确的边界时,您如何建设性和尊重地对待它(如果有的话)? 一些答案指出,您不应该局限于编程,因为它只是用于学习诸如数据结构和算法之类的主题的工具。我同意这个想法,但是在这种情况下,糟糕的风格背后实际上没有任何这样的计划。大多数课程只会简单地教另一个“工具”,而没有太多的背景理论或任何“大背景”。人们常常觉得他们只是为了提供这样的课程而很快就放在一起了。 我坚持下去,终于毕业了。整个过程中质量仍然很低(有几个例外),其他一些学生对此也有所抱怨。不出所料,我从个人项目和兼职工作中学到的知识比从学校中学到的要多得多,但是,完成学业和贴上“软件学生”的标签对他们自己似乎很有用!
19 c++  teaching 

4
为您雇用的软件创建开源替代品是否合乎道德?
假设您被雇用来创建教育软件,该软件将出售给特定学术机构的学生。您是唯一从事此项目的开发人员,并且已经编写了所有代码。该项目的开源替代方案有潜力使世界各地的贫困学生受益。简而言之,一种自由的选择将有助于人类的更大利益。为您要付费开发的软件创建开源替代方案是否“ OK”? PS该软件仅由该机构的学生使用。没有计划将其商业发行。该应用程序不利用他人的知识产权。

3
是否有关于不同语言对软件质量影响的经验研究?
支持功能性编程语言的人断言,功能性编程使代码推理变得更容易。那些支持静态类型语言的人说,他们的编译器捕获了足够的错误以弥补类型系统的额外复杂性。但是,我在这些主题上阅读的所有内容均基于理性的论据,而不是基于经验数据。 是否有任何关于不同种类的编程语言对缺陷率或其他质量指标产生什么影响的经验研究? (对这个问题的回答似乎表明,没有这样的研究,至少对于动态与静态的辩论没有。)

8
是否可以在没有业余项目的情况下在高需求的公司找到工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我很好奇谷歌等高需求公司的招聘团队在评估候选人时是否考虑了业余爱好项目。 我是一个每周工作40个小时的程序员,很幸运每个月在工作之外花一两个小时从事与编程相关的任何事情。我喜欢在上班时间闲逛SO / SE,也喜欢回答问题,但是下班后我离开了编程世界,回到了我的生活。 我已经了解到,您不需要业余项目就可以成为一名优秀的程序员,但是这种业余项目的缺乏是否会影响我在一家总是有大量求职者的公司工作的机会?


6
对于喜欢编程而不是领导的领导程序员的选择?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 7年前关闭。 今年年初,在我们团队的首席开发人员移至其他部门后,我被提升为首席开发人员角色。我有大约5年的工作经验,由于可用性和过去的表现,我是领导该项目的管理层的主要选择。我有点担心,但认为这是一个职业发展和经验的好机会,因此我接受了。 但是到目前为止,我的结论是我不喜欢我以前的开发人员职位。尽管我已经成功带领一个由5个开发人员组成的团队完成了多个发行版,但我几乎从未碰过任何代码。相反,我执行计划,设计和团队管理以及代码审查。需要跟踪更多的事情,并计划好任务以便可以将其分配给团队,这确实让我每天头疼。即使我很少加班,但我每天下班时都会感到筋疲力尽,甚至认为自己没有享受过如此的下班时间。 所以我的问题是:您将如何处理这种情况? 对于处境类似的人,您是否找到了更好地管理团队,任务和时间的方法,使您享受工作呢?还是您找到了一种方法,以过渡回以发展为导向的位置?我知道首席开发人员职位几乎总是支付较高的薪水,但是我可以看到自己到了这样一个地步:我对金钱和晋升的关心比对我目前工作的关心少。 我尚未与管理层中的任何人讨论此事,因为我认为我应该尝试至少调整一年。

9
强制代码重新格式化的优缺点
我目前在一个可能正在强迫开发人员在版本控制签入中使用自动代码格式化程序的地方工作。我正在寻找开发人员关于这样做的优缺点的意见……您认为这对开发人员有何帮助或阻碍。我的具体案例涉及Java / JSP,但我认为该问题可能适用于任何语言。

3
使用GPLv3 Python模块,我的整个项目是否必须获得GPLv3许可?
我现在正在开发一个小型项目,因此我计划根据开放源代码许可证进行发布(尚未决定哪个版本)。我的问题是,我使用的Python模块之一已获得GPLv3许可。由于我没有对库进行任何修改(按原样使用),我是否仍可以根据自己选择的许可来许可我的项目,还是会被迫也将其制作为GPLv3?
19 python  licensing  gpl 


6
SCRUM应该用于仅由一个人参与的项目吗?
在我们公司,我们有一个团队同时处理3个不同的项目,每个项目通常只有一个或两个人参与。项目工作通常涉及掌握新技术和/或解决错误,而这两种情况都会导致难以估计的任务。在这种情况下,管理层仍然坚持使用SCRUM,并且不允许在sprint的末尾为意外情况分配安全缓冲区。尽管几乎每个人都从事不相关的软件组件或不同软件项目的工作,但整个团队都举行了站立会议。 我想知道是否有人看到SCRUM对于具有单个开发人员和模糊任务的项目是否运作良好,您如何使过程正常进行? 如何估算涉及研究/掌握新技术的任务(这涉及学习新的编程语言,平台和开发工具)? 有没有人成功说服管理层不要在特定项目中使用SCRUM?如果是,哪种论点最成功? 谢谢!
19 scrum 

8
处理已删除的用户-单独还是相同的表?
场景是我的用户数量在不断扩大,随着时间的流逝,用户将取消他们的帐户,这些帐户目前在同一表中被我们标记为“已删除”(带有标记)。 如果具有相同电子邮件地址的用户(这就是用户登录的方式)希望创建一个新帐户,则可以再次注册,但是会创建一个新帐户。(我们为每个帐户提供唯一的ID,因此可以在实时和已删除的电子邮件地址之间复制电子邮件地址)。 我注意到的是,在整个系统中,正常情况下,我们会不断查询user表,以检查用户是否被删除,而我在想的是,我们根本不需要这样做。 ![澄清1:通过'不断查询',我的意思是我们有这样的查询:'... FROM users WHERE isdeleted =“ 0” AND ...'。例如,我们可能需要提取特定日期所有会议的所有注册用户,因此在该查询中,我们还具有FROM用户WHERE isdeleted =“ 0”-这使我的观点更清楚了吗?] (1) continue keeping deleted users in the 'main' users table (2) keep deleted users in a separate table (mostly required for historical book-keeping) 两种方法的优缺点是什么?

7
使双方的实习最有效,最有用和最有趣[已结束]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我们目前正在面试几名应聘者,这对于我们公司和团队领导/经理来说都是一种全新的体验。 对于双方来说,什么是最有效,最有用但又有趣的方法?我们如何将实习生“集成”到我们的开发团队和工作流程中,而又不会造成太多干扰,以使他或她可以学习却又很有帮助?

7
如何召开开发者团队会议?
我们的10名开发人员团队每周开会。这些会议很无聊,并不是特别有用。您使用什么格式/议程召开会议? 我们每周在会议室开会,提供比萨饼。格式是我们在会议室四处走动,并列出我们正在处理的各种任务的状态,并讨论下周的任务。经理将概述未来几个月和来年的即将到来的项目和优先事项。 更新资料 这些会议的目标或多或少是-建立总体团队,分享每个人正在做的事情的知识以及使每个人都知道公司的计划正在改变。并非要正式“分发”工作分配(通过其他方式完成)。

3
在使用不熟悉的技术时提供估计?
最近给我带来了一个新问题,它为我必须使用我不熟悉的框架(可能还有另一个框架的某些部分)的项目提供了一个估计。当我自由使用自己熟悉的内容时,对我来说提供估算值要容易得多,但是当要求对陌生领域的工作进行估算时,似乎已经使分析工作陷入瘫痪。 回想起来,我的解决方案是错误的。我只是开始工作。 当我需要使用不熟悉的语言/技术/框架时,如何更好地估算项目和任务?
19 estimation 

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.