软件工程

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


2
在当今行业中,衡量软件项目指标是否流行?
我遇到了一个开发人员,该开发人员需要有关其团队项目的一些外部建议。我发现他们正在为公司高管,项目经理和开发人员开发一套巨大的软件套件,这些套件可以自动计算指标并为每次迭代绘制图形。 作为计算机科学背景的学生,我对指标及其重要性了解甚少,但我的问题是: 大多数公司是否有某种方法来衡量有意义的指标? 哪些指标(单个或组合)可帮助您缩小项目范围和估算范围? 作为分析指标的人,您多久根据指标制定一次决策?IE浏览器 每周测试失败的人数急剧增加吗? 您是否认为引入学习指标有助于您更好地了解项目? 不知道为什么,但是开发人员项目吸引了我,我必须了解更多。如果是

4
敏捷开发的办公室设计和布局
(从stackoverflow移开) 我在这里找到了很多关于哪种键盘,书桌,浅色或彩色背景最合适的讨论-但我找不到能解决整个办公室布局的问题。 我们是一家拥有约20名员工的公司,搬到一个更大的地方。这里有两种主要的开发实践,有规律地结合在一起,后端人员经常需要与移动人员合作来安排Web服务。后端人员大约是移动人员的两倍。大约有一半的后端开发人员可以随时在现场工作,而几乎从来没有一次在办公室中工作,因此至少需要提供5-10个空间-因此,在大多数情况下,这两组人差不多。 我们有机会安排桌子,隔断甚至可能是墙壁,以增加空间。餐饮或按摩之类的互联网装饰将不会有现金,但现在是时候计划避免最终排成一排的桌子了。 我曾经在软件的Bionic Office上撰写过Joel 的文章,它有一些不错的主意,但在我们应该合作的环境中,我*(更重要的是公司的所有者)并没有完全将隐私主意卖掉。这是另一个很好的链接- 终极软件开发办公室布局 -直到读完这篇文章,我什至不记得封闭的会议室。 私人办公室会阻碍敏捷发展吗?Scrum是否足够强迫接触,如果您需要打扰某人,您应该起床并敲门吗? 您可以指向哪些设计布局,为什么要推荐它们? *我完全不反对封闭式办公室,但如果其他解决方案也能做到这一点,我会很高兴。如果不能...好,那就是这个问题的全部内容。 两次更新-2013年4月。 第一步是到一个“简陋”的办公室。基本上是开放的,但具有怪异的特征,例如一面墙铺着地毯,一半铺着地板,一半铺着抛光混凝土。每个坐在混凝土上的人都想坐在地毯上。看起来还不错,但实际上我不建议只给办公室里的一半铺地毯,那些感到寒冷的人真的很讨厌它。对于单口来说很好-巨大的白板占据了一堵墙,有足够的空间进行交谈和分组讨论。 然后,我搬到了一个非常拥挤的地方,与另一家公司(同一所有者)混合在一起,该公司的功能主要是协作,设计,通话,维护和安装物理设备。糟透了。然后我们搬到新的场所,有人认为仓库/工业区很酷。到处都有坚硬的表面,玻璃和抛光的混凝土。开发人员在交通最繁忙的区域中间共享一张大桌子,就在小厨房和洗碗机旁边,甚至在壁in里也没有。整天花在电话上的人旁边。尽管像吸音板这样的创可贴,它还是会继续吮吸。它之所以吸引人,是因为没有足够的空间来放置板子或站立,并且该地方的声学特性使人很难听到拍子上方的任何人-以及那种感觉,在安静的时刻,在大教堂里大喊大叫。没有人听过这些抱怨。我辞职了,其他人也辞职了。哦,坚持要成为“产品负责人”的人从来没有出现过,这无济于事。

11
您拥有工具吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我的一位同事不久前写了一个帖子问你是否拥有工具。这提出了一个重要的问题。你做?我在评论中回答得很低。作为一个独立的人,我确实拥有自己的工具。即使我不是独立的,我也有自己的(完全许可的)工具用于个人开发。我不认为自己买工具会让你大吃一惊(只是因为你可以买一双100美元的篮球运动鞋,它们不会像迈克尔·乔丹那样出色),但这是对自己的一项投资不应该掉以轻心。 您如何看待好人?

2
我是否需要在网页顶部粘贴开源许可证信息?
我正在开发一个使用多个开源JavaScript项目的JavaScript应用程序。他们所有的许可都带有类似“您必须给该作品或衍生作品的任何其他接收者该许可的副本”的短语。这是否意味着我需要使用所使用软件的所有许可证在网页顶部添加大量HTML注释? 我问这个问题是因为我从未见过执行此操作的网页的源代码。

3
使用维基来满足需求
我正在研究改善需求管理的方法。当前,我们在网站上发布了Word文档。不幸的是,(据我所知)我们无法查看从一个修订版到下一个修订版的更改。我非常希望能够做到这一点,就像使用Wiki或VCS(或两者,就像Wiki在bitbucket上一样!)。 而且,每个文档都描述了开发人员在给定的截止日期之前预期会遇到的变更。在任何地方都没有记录到的累积应用程序功能集合,因此,在尝试快速修复旧版应用程序时,有时很难区分错误和(设计不良)功能。 所以我有一个想法想要得到反馈。关于什么: 使用Wiki,以便我们可以跟踪谁更改了什么时间(主要是查看自上次查看以来是否进行了任何编辑)。 每个产品只有一个Wiki页面,而不是每个截止日期只有一个Wiki页面,以跟上产品的所有功能,而不是应实施的更改。这样,我可以查看页面的特定版本,以查看应用程序在给定时间点应执行的操作,并且可以查看 自上次发布以来对页面的更改,以在下一个截止日期之前实现要求。 Waddayathink?

8
测试人员与开发人员的沟通
尽管有很多关于开发人员与开发人员,开发人员客户,开发人员团队经理之间的交流的文章,但我找不到任何有关测试人员与开发人员之间的交流和联系的指南的文章。 无论测试人员和开发人员是单独的团队还是在同一团队中(在我的情况下,我是敏捷开发项目中的一个孤独的测试人员),我相信如何看待测试人员对于使测试被良好接受是极其重要的,以实现其提高项目质量的目标(例如,不应将其视为警察部队)。 关于测试人员应如何与开发人员进行交流的任何建议或研究? 更新:谢谢大家的回答。他们都证实了我的想法。就目前而言,我的团队非常乐于接受我的角色,我们最终取得了真正的进步。我可以选择多个答案作为答案,但我必须做出决定。

3
我可以使用什么代替Ruby(或任何其他动态语言)中的Interfaces?
我的目标是定义类之间的合同。 我喜欢鸭子输入法,但我也想在应用程序的不同层之间定义一个接口,以清楚地定义哪些是从外部调用的方法,哪些是另一层不应使用的辅助方法。 。 例如,在Java中,我可以使用诸如get()和save()之类的方法定义Persistor接口,然后使用需要在数据库上持久保存的所有方法来定义JdbcPersistor类。也许还有另一个RestPersistor,具有其他方法可以保存在远程Restserver上。 我不是在Ruby中请求接口,只是想知道是否有一种巧妙的方法来保持这种区别。我喜欢Ruby,但是我只从事小型项目。

10
学习Python需要多长时间?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我决定下班后花些时间学习Python。Python之所以吸引我,是因为在工作中(网络和电子学习公司),我必须执行非常重复的任务,例如删除所有这些标签,重命名所有这些任务甚至是更高级的重复性任务。另外,对我来说,首先了解Python是一件好事,因为它的语法非常容易学习。 学习Python基础需要多长时间?

6
发表关于“代码样式和设计模式”的演讲[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我的公司(规模不大,在3个办公室中大约有40个人)偶尔会在网上进行“开发者研讨会”,其中一位开发人员主持了有关某个技术主题的演示。这不一定与我们的工作有关,而只是为了帮助每个人提高技能和理解。 我被要求主持下一个,主题(从我提供的列表中选择)是代码样式和设计模式。我知道那些事情并没有那么紧密,但我可以接受。我已经看到我们代码库中有很多地方可以改进,甚至可以满足DailyWTF的要求,因此我希望本演示文稿尽可能有效。问题在于我只是不知道一小时内要覆盖的内容。 我的第一个想法是使用我们自己的代码作为示例,以阐明“请实际将此应用于您的工作”这一观点。但是话题如此广泛。 我们的代码(PHP)有一些问题,包括: 最小OO。最近,它一直在改进,但是仍有大量的全局功能。我花了一段时间才找到东西。 全局配置(我猜是意见)。您几乎可以在每个文件中找到$ GLOBALS ['blah']。 大括号样式不一致。听起来很小,但这实际上导致语法错误在五天前被推送到源头,直到昨天仍未得到纠正。 低效的构造。我能够进行一些基本的改进,从而将某些区域的运行时间减少了70%。 我希望这件事尽可能有用,但不要屈服于我的同事。那么,我应该关注“样式”的哪些方面,哪种设计模式可能最有用的解释?

5
规范写作管理
我简直无法想象没有规范就可以编写软件。无论是粗略的还是高级的,规范对于向无知的程序员解释程序的功能是很重要的。 但是规范的问题在于,在整个软件开发周期中,它多少有些二等公民。当发展加速时,它就被忽略了。但是,当出现争议时,开发人员,测试人员和销售人员会争先恐后地找到规范以证明其根据。 一种或多种情况都会发生: 规范无法恢复,没人知道规范在哪里 规范的不同版本来自不同的来源。它需要很大的困难,找出哪个版本是最新版本,或是否有是可用的最新版本。 规范不完整,所指文件的某些部分丢失了。 因此,规范管理非常重要,每个人只有一个单一的规范来源也同样重要。 您如何管理规格?我试图让所有人使用Google文档,但所有人都反对。每个人都对Microsoft Word太着迷和迷恋,他们认为Microsoft Word非常易于使用,易于插入图像,非常容易键入方程式等等。 如何使他们相信MS Word只是可怕的共享?

4
我该如何优雅地处理试图绕过以前客户的承包商?
我一直在为一家本地游戏开发商店提供免费服务。我们从事的大多数项目都是由外部承包商提供的。现在,这个家伙想直接与我开展一些与游戏无关的新项目,因此不需要我以前的客户的技能。 他们虽然听说了,但现在因为不经过承包商而对承包商很生气,但我怀疑他并不在乎,反正会继续追求。 作为独立工作者,我什至应该在乎吗?如果可以的话,我可以让大家开心吗?

15
侵入性JavaScript可以吗?
我当时在想,如果要求网站的所有用户都启用JavaScript,那么使用干扰性JavaScript可以吗? 我全力支持渐进式增强,但是如果高级Web应用程序禁用了旧的浏览器或JavaScript,那么当用户反弹时又有什么意义呢? 我们的目标受众非常渺茫,我们可以告诉目标受众他们需要具备哪些浏览器和插件/功能。所以我的问题是,在这种情况下,是否可以混合使用JS和HTML?就像使用onclick属性一样。

3
Java Swing应用程序中的窗口管理设计模式
我刚刚开始创建我的第一个小型Java Swing应用程序。程序打开时,将弹出一个简单的窗口,其中包含标签和几个按钮。单击这些按钮之一应该可以擦除欢迎屏幕,并用完全不同的面板替换它。 我不确定创建该功能的最佳方法是什么。一种方法是将我JFrame作为参数传递给...几乎所有其他组件,但这对我来说很棘手。或者,使每个面板都兼作动作侦听器,但这似乎也不对。 我应该在这里应用一种设计模式吗?“替换主窗口(仅主窗口)的内容”必须是一个合理的常见操作。为模式命名就足够了;我可以从那里独自使用Google。(不过,我不会拒绝更长的解释。)

14
我如何(机智地)告诉我的项目经理或首席开发人员该项目的代码库需要认真的工作?
我刚刚加入了一个(相对)小的开发团队,该团队已经在一个项目上工作了几个月(甚至不到一年)。与大多数开发人员加入项目一样,我花了头几天来回顾项目的代码库。 由于缺乏一个更具描述性的术语,该项目(中型到大型ASP.NET WebForms内部业务线)是一场灾难。编码标准存在三个立即值得注意的问题: 该标准非常宽松。它描述了更多的什么不该做(不要使用匈牙利表示法,等..)比来办。 并非总是遵循该标准。到处都有与代码格式不一致的地方。 该标准不符合Microsoft的样式准则。我认为,偏离框架开发人员和语言规范最大贡献者所制定的准则没有任何价值。 关于第3点,也许这让我感到更加困扰,因为我花了一些时间来获取MCPD,重点是Web应用程序(特别是ASP.NET)。我也是团队中唯一的Microsoft认证专家。由于我在所有的学习,自学和在职学习(包括为认证考试做准备)中所学到的东西,因此我还发现了项目代码中的一些实例,这些实例根本无法完成。最好的办法。 我只在这个团队工作了一个星期,但是我发现他们的代码库有很多问题,我想我会花更多的时间在以“他们的方式”来做事上,而不是在那时例如,从事一个遵循更广泛接受的编码标准,体系结构模式和最佳实践的项目。这使我想到了一个问题: 我是否应该(如果是,我应该如何)向我的项目经理和团队负责人建议该项目需要进行重大翻新? 我不想走进他们的办公室,挥舞着我的MCTS和MCPD证书,说他们的项目的代码库很烂。但是我也不想保持沉默,而不必在他们的垃圾代码之上编写垃圾代码,因为我实际上是想编写高质量的软件,并且我希望最终产品稳定且易于维护。

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.