Questions tagged «project-management»

项目管理是规划,组织,保护和管理资源以实现特定目标的学科。

6
唯一的开发人员离开后,维护Web应用程序
我患有晚期疾病,极有可能在今年年底不再出现在这个世界上。 我已经开发了一个Web应用程序,该应用程序广泛用于我的家人的业务(一家小型美发店)。我的家庭成员没有编程技能和系统管理技能。我既没有这些技能的好朋友。 该业务每年的净利润最多为1万。实际上,营业利润只能支付其3名员工(父亲,母亲和妹妹)的薪水,而这些薪水很低,并且每年由于金融危机而减少。实际上,我不是家族企业的雇员,我在一家常规软件开发公司工作。我在业余时间开发了该应用程序,以帮助他们。 到目前为止,我不在乎其他企业是否也在使用我的应用程序,甚至该应用程序本身也失去了我的所有权。我只希望家人的业务可以继续使用它,这意味着如果出现问题,将为系统管理提供支持,并开发新功能/错误。 我想问一下您是否可以给我您认为可以采取的措施,以尽可能保证应用程序的连续性。 该应用程序的技术是: 平台:Tomcat(Java),MySQL和Linux 框架:主要是JPA和ZK

16
开发人员团队需要经理吗?
背景: 我目前是一个由4人组成的团队的成员:1个经理,1个高级开发人员和2个开发人员。我们为大约3500名员工的组织执行了一系列定制的内部系统/项目(例如6-8周),以及以前创建的系统所需的所有维护和支持。我们没有足够的精力来完成可能要走的所有工作-人手不足。管理层承认这一点,但是预算限制限制了我们向团队招募更多成员的能力(即使我们将薪金返还给了储蓄)。 改变 这使我们离开了现在的位置。我们的经理将继续担任牧场的新职务,团队中有空缺。管理层正在利用这一机会重组我们的团队,这将看到团队经理的角色被另一位开发人员和另一位高级开发人员所取代。他们的逻辑是我们需要更多的开发人员,因此这是一种为其筹集资金的方法(其中一个角色部分由另一个空缺职位提供资金)。 团队将没有直接的直线经理,而职位和职责将由上级和(相对较新的)服务经理(非技术角色,几乎没有开发知识/经验,其重点是共享的)来划分其他团队和个人)-谁将是我们在食物链中的下一位实际经理。 我猜最后一个问题是: 是否可以在没有经理的情况下运营开发团队?你有经验吗?哪些事情可能出问题/对我们有好处? 理想情况下,我想“以这种方式来做事”,或提出一些反对的意见。

7
程序员应该自给自足吗?
在我目前的工作场所中,我们没有任何测试人员,管理层的理由是:“如果我们有测试人员,则根本不会测试自己的代码”。这种想法似乎对产品质量有害,因为当我测试自己的代码时,由于我了解系统内在而又不知道如何使用,我会错过很多事情这是“错误的”。黑盒测试并不能真正起作用,因为我下意识地避免了专用测试人员会陷入的陷阱。我花了很多时间来修复那些已渗入生产代码并由最终用户发现的错误。 有问题的系统很大,但完全由我开发。这也导致一些管理职责落在我的腿上,例如定义时间表和制定规格。 这些任务应该由我负责吗?我严格地把自己看作一个程序员,没有别的。如果这些是我的责任,在多大程度上?什么时候一个项目如此之大而需要测试人员?程序员是否应该完善规范,担心项目管理甚至提供客户支持? 注意 有些人可能会觉得我不赞成扩大职责–情况并非如此,我渴望获得一个涉及更多管理职责的职位,但目前不在我的职位描述中。在我正式受雇之前,或者在我的薪水中开始显示其他职责之前,我将一直认为自己“只是”一名程序员。不幸的是,作为一名初级开发人员,转为管理职务不会很快发生。 到目前为止,出色的答案,如果您有其他要添加的内容或需要分享的个人经验,请随时提出来!

6
修复错误是否有边际收益[关闭]
我从一位前同事那里听说,并不是所有的bug都需要修复,因为当您按优先级排列bug时,导致该bug变得更加模糊的用例,或者获得的客户满意度降低了。但是您仍然必须花费大量时间来修复该错误。 为了使我们的产品所有者相信这一概念,我找不到任何好的资源。我所能找到的只是关于软件开发是否存在边际成本的讨论。 修复错误真的有边际收益吗?是否有其他术语解释这个概念?

6
单元和集成测试:如何成为反射
我们团队中的所有程序员都熟悉单元测试和集成测试。我们都与之合作。我们都对其进行了书面测试。我们中有些人甚至对他/她自己的代码感到更加信任。 但是,由于某种原因,编写单元/集成测试尚未成为团队任何成员的反思。当不与实际代码同时编写单元测试时,我们所有人实际上都不会感到难过。结果,我们的代码库大部分没有被单元测试发现,并且项目未经生产就进入生产。 当然,这样做的问题是,一旦您的项目投入生产并且已经正常运行,就几乎不可能获得时间和/或预算来添加单元/集成测试。 我的团队和成员自己已经熟悉了单元测试的值(1,2),但它似乎并没有帮助将单元测试到我们的工作流程自然不会。根据我的经验,强制执行单元测试和/或目标覆盖范围只会导致质量测试不佳,并且会降低团队成员的速度,这仅仅是因为没有自发产生这些测试的动力。同样,一旦压力减轻,就不再编写单元测试。 我的问题是:您是否尝试过任何方法来帮助团队内部建立动力/动力,导致人们自然地希望创建和维护这些测试?

8
应该使用什么标准来确定程序员的薪水?[关闭]
最近,我参与了有关确定程序员薪水时应使用哪些标准的讨论:从“这取决于雇主的选择”到其他考虑个人的教育程度,经验和对技术的理解的争论不等。等等。不久前,我在Stack Exchange博客上读了一篇关于该主题的精彩文章,我对此表示同意,但是没有多少雇主遵循所描述的逻辑。 根据您的经验,在确定程序员的薪水时,哪些要素是最重要的?在这些情况下最常使用哪些标准?最应该采用哪些标准?最后,正规教育(学院,大学)在确定工资的重要程度是什么?

14
管理多少个非OO代码库?
我总是看到抽象是OO为管理代码库提供的非常有用的功能。但是如何管理大型非OO代码库?还是那些最终变成了“ 泥浆大球 ”? 更新: 似乎每个人都在认为“抽象”只是模块化或数据隐藏。但是恕我直言,这也意味着必须使用“抽象类”或“接口”,这对于依赖注入和测试是必须的。非OO代码库如何管理这一点?而且,除了抽象之外,封装还有助于管理大型代码库,因为它定义并限制了数据与函数之间的关系。 使用C,非常有可能编写伪OO代码。我对其他非OO语言了解不多。那么,这是管理大型C代码库的方式吗?

6
您花费多少时间进行单元测试?
在我曾经工作过的一家公司中,高管们坚持认为单元测试的代码覆盖率必须达到99%或更高。这导致编写的测试多于代码。从字面上看,我们花了3天时间为一个类编写测试,该测试花了一天的时间才能实现。 结果,我学到了很多有关TDD,测试工具,实践等方面的知识。 在我后来工作的公司中,单元测试是个未知数。这是以前有人听说过的东西。我努力地向他们介绍了单元测试的概念,但是没有效果。 现在,作为一名个体经营者,我想知道- 真正需要花多少时间进行单元测试?主要是iPhone / Android开发人员,测试中应覆盖哪些部分代码?

9
我对软件工程有错误的想法吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我最近的工作(而不是实习生)提出了一个问题。 只是为了说明背景-我21岁,我已经完成了第二年的大学学习,在此之前,我拥有大约2年的从事系统管理员/质量检查工作的经验,基本上我可以说我已经看到了与众不同IT部门运作。回顾现在,这是我在英国一家主要研究机构之一从事实习工作。 我要做的是使用多种技术(主要是AWS / Java / Bash)创建一些内部工具,您就会明白。一切都很好,我正在做我的工作,但我不高兴。为什么会这样-因为希望我可以临时工作。那就是快速创建事物,而无需花费时间进行设计。我的经理明确表示,希望从出现的问题中“匆忙”解决,而本质上是我们。结果,结果是必须重新做事和重新设计,它们仍然不是完美的。就测试而言-将其保持在最低水平,只要看起来可行,就可以了。 我是否有责任不同意这种工作方式?想对整个系统进行思考,然后关注不同的组件并了解它们如何互操作,将不同的“关键点”归零,这在将来会带来问题,这是错误的吗?做好工作而不是“快速工作”是犯罪吗?想要研究适用于问题的数据结构,以便您可以根据特定问题集选择最佳方案,这是错误还是错误的态度?据我所知,“软件工程”中的“工程”部分与此完全相关-研究您的问题领域并提出一个明智的解决方案,然后根据需要进行改进? 我去过英国某军械库办公室的一次采访,他们给我看了他们的SCRUM室,看起来他们对如何管理他们的项目有很好的主意-他们积压,他们有关于每个人待多长时间的指标这个问题可能需要解决-SCRUM的常规操作-与“在这里”运行的方式完全不同 我对软件行业总体上是否建立了错误的观念?我想听听您的意见。我的意思是说我“进入”软件开发纯粹是因为我想创建简单而简单的东西,但我想创建高质量的东西。我想查看我的软件在各种情况下使用的情况,我想查看它的防弹功能-这不是所有软件工程师的动力吗?我认为每个人都可以通过学习语法来成为一名程序员/编码器,但对我而言,真正的乐趣始于当您实际上不得不提出一种在现实世界中可行的设计时。 我过去只是看大学就直接做编码,然后很容易就获得了75%以上的分数,而且从来没有真正欣赏过“软件开发生命周期”模块。但是现在,当我看到在现实世界中,没有任何正式流程就工作有多么糟糕,以及在明天不知道需求是否会改变的情况下固有的沮丧感(哦,我是否说我们不没有明确定义的需求分析?) 我真的很想相信我刚刚担任的职位,有些人只需要一个代码猴子来完成他们的肮脏工作,而软件世界的运作情况却并非如此。

11
时间估计出错时该怎么办?
假设您估计一个案件的时间为3天。在第二天中,您会注意到情况不断增长,并且弹出了新的方案,这些新方案在进行时间估算时并未计算在内。新的发现导致额外的2天(总共5天)。这是一个典型的问题,您作为开发人员迟早会遇到。 当您要通知项目负责人新的交货时间时,可以使用哪种策略? 通常您会得到一个问题,为什么?您如何激发新的交货时间? 事实是,在SDLC期间,许多项目没有花太多时间进行分析和设计。 编辑: 在非常复杂的项目中,无论您花费多少合理的时间进行分析与设计,由于业务规则过于复杂,总是会感到意外。但是,在这种情况下,我认为项目负责人必须意识到复杂性,并在出现意外情况时保持正确的态度。问题是如何应对那些不了解复杂性的项目负责人。

6
如何修复基本上没有结构的项目?
我从事一个软件项目(主要是单独工作)已有5年以上。首先是一团糟(我是从事此工作的第三或第四位开发人员),尽管现在已不再是一团糟,但它仍然杂乱无章。使它得到控制的进展速度令人不寒而栗,我开始对它所处的状态感到沮丧。我如何真正开始修复它? 项目细节:这是一个销售程序,几乎完全用Visual Basic Classic(VB6)编写,带有MySQL后端和用C#编写的报表引擎。C#报表模块非常有趣,它只是在过去的几年中编写的,而在此之前所有报表都是在Crystal Reports 9中完成的(是的,我们仍然有一些报表依赖于此)。 但是,实际程序本身就是一场彻底的灾难。总的LOC数不足9万,注释约有1万行(大多数不是文档,而是注释掉的旧代码)。158个表单文件和80个模块文件。我不知道实际使用了多少个,因为程序的某些功能被简单地弃用了(有时是这样),而没有从程序中删除相关的代码。我猜想只有50%的代码可以实际用于生产。 我害怕触碰很多代码,只是因为我不确定我是否正在破坏一个晦涩的客户所依赖的东西,这种情况发生的次数超出了我的估计。就像整个代码中散布着地雷一样。 该项目实际上没有任何结构。到目前为止,除了在我耐心改革的几个地方之外,它不是面向对象的。如果需要在表单上获取数据,则可以实例化数据库对象,然后在函数中声明查询,然后执行查询并对数据集执行操作。 当我开始从事该项目时,没有使用任何源代码控制。我试图鼓励其他正在使用它的人使用它,但是我是新手,试图让人们使用Subversion的尝试全部失败了。该公司的首席开发人员在过去的几年中终于发现了一个软错误,并且他确保所有开发人员现在确实在所有项目上使用了源代码控制,因此至少可以取得一些进展。 我认为,如果我能够全职进行该项目的改革,我将能够取得不错的进展,甚至可以估算出我完成整个项目所需的时间,但是该项目正在积极使用中,我经常被要求扑灭火灾,修复错误,添加功能等。 那么,我如何开始真正解决这个问题呢?尝试使用其他语言来工具VB6吗?尝试在业余时间重写程序吗?还是这完全没有希望? 更新资料 这篇文章发表后,我怀着新的热情回到了这个项目,但是在看到如此缓慢的进展之后,在几个月内又陷入了绝望。然后,在接下来的一年左右的时间里,我又重复了此循环2到3次。 从那以后,我转到了另一份工作。尽管经过了很多年的vb6,并且只有其他技术的外围经验,但是搜索仍然很困难,而且我在此过程中遇到了很多拒绝(一年中约十二次采访)。在这种情况下,我对他人的建议是考虑单独考虑这一因素。考虑保持这样的死胡同对您的职业可能造成的损害。


10
如何向团队添加新开发人员
我经营一家只有2个开发人员的小公司。我们正在为我们的一位客户构建非常大的应用程序。这个项目的开发已经进行了1.5年。 现在,该客户已获得了重要的赞助,他们正在组织与此项目有关的活动。所以现在我们有两个月的截止日期,我们不能错过。 我们正在考虑向团队中添加新的开发人员,我想知道我们能做些什么来帮助他整合。 这种情况: 我们正在接近布鲁克斯法则的门槛-添加新的开发人员将适得其反。 该应用程序的设计相对较好,但是在某些方面(尤其是较旧的代码)的实现是混乱的。 仅对最新代码进行单元测试。这个项目开始时,我们没有定期进行测试。 文档和注释不完整。 该应用程序既大又复杂。 客户以一种非常清晰且“程序员友好”的方式写下了有关其项目的几乎所有细节。 现在添加一个人是个好主意吗?如果是这样,我们应该怎么做才能帮助新开发人员融入团队? 编辑: 赞助商将在明年春季组织基于互联网的体育赛事。它必须在一年中的特定日期开始。我们无法更改。 我们的开发人员(我是两者之一)需要做的是: 完成现有的应用程序(大约需要完成的工作的25%)。 创建一个新模块,对于组织此次活动至关重要(大约需要完成的工作的75%)。如果不了解主程序的API,就无法开发此新模块。 我无法准确估算时间,但我们处于危险境地。


10
激励同事采用更好的编码实践?
在“ 处理我过时的同事”问题中,许多人讨论了与不愿将工作流与团队的工作流程整合在一起的同事打交道的策略。 我想,如果可能的话,学习一些策略来“教”一位不了解现代技术和工具的同事,并且可能有些冷漠。 我已经开始与一位程序员合作,直到最近,他一直在公司的不同部门进行相对隔离的工作。他具有丰富的领域知识,最重要的是,他展示出了很好的解决问题的能力,而这是许多候选人似乎所缺乏的。 但是,我看到的实际(C#)代码是对VB6天的回顾。程序结构,匈牙利符号,全局变量(的滥用static),没有接口,没有测试,不使用泛型,抛出System.Exception...您就会明白。 这个程序员比我年龄大一点,至少从第一印象来看,他并没有积极寻求积极的改变。我不会说要抗拒变革,因为我认为这很大程度上是有关如何提出主题的问题,我想做好准备。 程序员往往是固执的人,大肆宣传,建立撕碎的代码审查和严格执行的政策很可能不会产生我想要的最终结果。如果这是一个新员工,一个初级程序员,那么我不会三思而后行地采取“导师”的立场,但是我非常谨慎地将有经验的员工视为无知的新手(他不是-他只是没有与该领域的某些进步保持同步)。 我如何通过柔和的说服力和非实质性的激励措施以Dale Carnegie的方式提高开发人员的代码质量标准?在不造成对抗性情况的情况下,进行细微,渐进式变化的最佳策略是什么? 之前是否有其他人(尤其是首席开发人员)遇到过这种情况?哪些策略成功地激发了兴趣并创造了积极的群体动力?哪些策略没有成功,会更好地避免? 说明: 我真的觉得有些人是根据个人的感觉来回答的,而没有真正阅读问题的所有细节。请注意以下内容,这些内容本应暗示,但我现在要明确指出: 由于年龄的原因,这个同事只是我的“高级”。我从未说过他的头衔,势力范围或在该组织的任职年限超过我,而实际上,这些都不是真的。他是一名LOB程序员,已经被主要开发部门所吸引。而已。 我不是新员工,也​​不是初级程序员,也不是其他幼稚的白痴,他们都计划在一夜之间将公司转型。我基本上负责软件过程,但是正如许多作为“潜在客户”工作过的人所知道的那样,职责并不总是与组织结构图完全相关。 我不是在问别人如何走我的路,来死还是要高水。如果我愿意,我可以这样做,最终结果是这个人会变得不满和/或辞职。请尝试了解我正在寻找一种社交,合作的方式来推动变革。 提到“ ...全局变量...没有测试...抛出System.Exception”是为了证明问题不仅是表面的或美学的。可能适用于相对较小的CRUD应用程序的做法不一定适用于大型企业应用程序,实际上,到目前为止,没有代码实际通过了集成测试。 请尝试从表面上看待这个问题,接受我实际上知道我在说什么,然后回答我实际提出的问题或继续前进。 PS对那些提供建设性建议而不是与前提争论的人,我表示由衷的感谢。我希望将其保留一段时间,因为我希望能从现实生活中听到更多。

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.