论文部分内容阅读
想努力跟上业务需要、技术发展、技能需求、开发与运营职责的快速变化?请记住这些提示。
精通数字化的客户需要高质量的软件和网站。他们会想当然地认为供应商会不断推出新的功能以让他们处于最新状态。然而,要让客户保持参与度和满意度,除了需要敏捷的应用程序开发流程和技术,更重要的是拥有利用最新开发工具、技术和方法等技能的软件工程师。
因此,软件开发人员的世界变得越来越具有挑战性。让我们看看现代软件开发人员所面临的5个关键难题,以及如何克服这些难题吧。
对不一致的目标进行协调
痛点:软件开发人员在开始着手工作时往往对业务领导者和产品所有者提出的业务需求理解得不透彻。这可能导致目标不一致,进而导致开发出不必要和不适当的功能。同样重要的是,如果开发人员没有将重点放在正确的优先项目上,他们可能会错失良机。把所有这些加在一起,则将会导致客户出现不满,因为他们没有得到他们所需要的。
不一致的目标也会造成团队之间缺乏信任,并可能导致冲突和开发出不成功的产品,进而导致公司在客户、收入和利润方面蒙受损失。
如何处理:开发人员和业务领导者之间的定期沟通对于防止目标不一致至关重要。此外,随着业务目标的不断变化和完善,应对这些变化的流程对于长期成功至关重要。开发人员必须对不断发展的想法和需求保持开放和灵活。
我们需要认识到,当产品所有者改变他们的需求时,通常都有着充分的理由。当然,业务负责人有时会在没有正当需要的情况下改变他们的目标、优先等级和期望。有时快速发展的业务需求会让开发人员感到非常棘手,但是靈活的业务领导和融洽的团队间关系可以带来更好的终端产品,并最终让客户感到满意,同时也可以让公司变得更加成功。
跟上创新速度
痛点:新兴技术正以令人眼花缭乱的速度推动新产品的推出。加速软件开发工具和流程的创新可能会影响产品能力和市场接受度,并最终影响公司的成功。
几年前,像DevOps、云计算、AIOps、智能系统,甚至移动计算等创新都不为人们所知。然而今天,它们都是现代软件应用程序开发中不可或缺的组成部分。
如何处理:现代软件应用程序不再是静态的,我们也不能再保持静态。开发人员必须对新的想法和概念持开放态度,跟上最新的想法和创新,并找到创造性的方法,将新的工具和技术应用到不断发展的企业应用程序需求当中。
具有讽刺意味的是,这使得软件开发人员与他们的业务领导者处于相似的地位。业务主管负责了解客户不断变化的需求,而你也有责任了解不断推出的新功能,以帮助解决这些需求。
掌握最新的软件工程技术
痛点:还记得Ruby 是什么时候风靡一时的吗?还记得什么时候XML是应用程序间通信的解决方案吗?企业软件开发建立在精心安排的瀑布式开发流程之上的日子怎么样?PHP又是何时才让Web应用程序开发变成一件轻而易举的事情的呢?
如果你已经在这个行业干了几年,那么当你费尽苦心掌握的一些技术集突然变得不再重要,你可能也会变得不再重要。相反,掌握一套新的技能将会让你变得非常受欢迎。
在软件行业,一项技能、技术或流程的寿命大约是2到3年。当你构建起一个应用程序并开始在市场上看到它们取得成功时,往往表明用于开发它们的技术可能已经过时了。为了应对这种极端的创新速度,你必须跟上不断调整的行业规范和要求。即使压力越来越大,要做的事情越来越多而时间却变得更少、速度也变得越来越快,你也必须花时间来让自己的技能处于最新状态。
如何处理:在上世纪八十年代流行起来的“T型人才”概念对于在不断变化的软件行业中取得成功非常关键。“T型人才”对许多技术有着广泛的理解,同时又对于一些关键领域有着深刻的理解。这种结合使得这类人才在他们的专业领域具有很高的价值,并且有着很强的大局观。
随着时间的推移,“T”字中代表深度的一竖所涉及的专业知识将会不断地发展。同时,代表广度的一横有助于你决定下一步要专门研究哪些技术。
排除环境的干扰
痛点:现代工作环境既是福也是祸。除了可以在房产方面节省资金外,共享的工作区、开放的办公室和专用的团队空间还被认为可以减少层次结构、提高创造力和协作能力、提高灵活性。
软件工程师是需要时间来实际开发软件的,而且许多现代工作环境似乎已经忽略了这一需求。像Slack这样的协作工具可能会让情况变得更糟,因为它们让每个人都可以快速讨论一些期望值。开发人员会发现由于没有统一的意见,自己很难将注意力集中在手头的工作上。
如何处理:即使在现代工作环境中,有时间和空间进行安静的反思和生产非常关键。远离喧嚣的开放式办公室对于成为高效的开发人员至关重要。
许多开发者使用耳机来创造一个无干扰的环境,但是这样可能还不够。要想让精力更为集中,找一个远离正常团队环境的安静角落;关闭通知并退出所有设备上的协作和通信应用程序,包括计算机和手机;播放能够令人心情平静的音乐,创造出一个安静的环境。有意识地这么做可以帮助你成为一个更为高效的工程师。当你无法专注于一个棘手的开发问题时,你可以为同事提供帮助。
管理运营开销
痛点:随着DevOps的兴起,开发人员做好软件,然后“将它们隔墙甩给”运营人员去管理的日子已经一去不复返了。不管是否已经准备好,现代软件工程师逐渐开始负责自己开发的软件的运营工作。这样做有什么好处呢?除了在软件不能正常工作时会在半夜被叫醒来处理问题的人外,没有人会关注你构建的高质量、可扩展且高可用性的应用程序。
将dev和ops功能整合在一起已经被证明对应用程序是有益的,对构建它们的企业也是有好处的。掌握构建高效、可靠、大规模运行的应用程序所需的工具和技术有助于软件开发人员的成长和开发。但是DevOps所增加的运营责任是有代价的。许多开发人员在不了解大规模维护应用程序所涉及到的内容的情况下,就被赋予了运营职责。此外,增加的运营负担可能会成为另一个分散注意力的因素,导致开发人员无法集中精力创建优秀的软件。
如何处理:软件支持方面的变化可以帮助开发人员在没有求助时集中精力开发,在有求助时集中精力改进应用程序的运营能力。团队应该强调,随叫随到的开发人员不应该只为了满足新产品开发承诺而规划自己的工作。相反,他们应该利用这个机会更好地了解运营需求并改进操作基础设施。在不处理求助电话时,对操作方面的关注有助于让你更加专注于开发问题。
无论喜欢与否,开发人员坐下来编写代码,然后把它们甩手扔给别人,让别人为之操心的日子早已不复存在。在现代软件行业中,对在更为复杂的环境中处理更复杂软件的期望,要求开发人员能够进行自我更新和自我扩展,并且就像他们创建和维护的应用程序一样。
本文作者Lee Atchison现为New Relic的云架构高级总监,拥有32年的从业经验,曾经在亚马逊担任了七年的高级经理,并在著有《规模架构》一书(由O’Reilly Media于2016年出版发行)。
原文网址
https://www.infoworld.com/article/3411438/5-pain-points-of-modern-software-development-and-how-to-overcome-them.html
精通数字化的客户需要高质量的软件和网站。他们会想当然地认为供应商会不断推出新的功能以让他们处于最新状态。然而,要让客户保持参与度和满意度,除了需要敏捷的应用程序开发流程和技术,更重要的是拥有利用最新开发工具、技术和方法等技能的软件工程师。
因此,软件开发人员的世界变得越来越具有挑战性。让我们看看现代软件开发人员所面临的5个关键难题,以及如何克服这些难题吧。
对不一致的目标进行协调
痛点:软件开发人员在开始着手工作时往往对业务领导者和产品所有者提出的业务需求理解得不透彻。这可能导致目标不一致,进而导致开发出不必要和不适当的功能。同样重要的是,如果开发人员没有将重点放在正确的优先项目上,他们可能会错失良机。把所有这些加在一起,则将会导致客户出现不满,因为他们没有得到他们所需要的。
不一致的目标也会造成团队之间缺乏信任,并可能导致冲突和开发出不成功的产品,进而导致公司在客户、收入和利润方面蒙受损失。
如何处理:开发人员和业务领导者之间的定期沟通对于防止目标不一致至关重要。此外,随着业务目标的不断变化和完善,应对这些变化的流程对于长期成功至关重要。开发人员必须对不断发展的想法和需求保持开放和灵活。
我们需要认识到,当产品所有者改变他们的需求时,通常都有着充分的理由。当然,业务负责人有时会在没有正当需要的情况下改变他们的目标、优先等级和期望。有时快速发展的业务需求会让开发人员感到非常棘手,但是靈活的业务领导和融洽的团队间关系可以带来更好的终端产品,并最终让客户感到满意,同时也可以让公司变得更加成功。
跟上创新速度
痛点:新兴技术正以令人眼花缭乱的速度推动新产品的推出。加速软件开发工具和流程的创新可能会影响产品能力和市场接受度,并最终影响公司的成功。
几年前,像DevOps、云计算、AIOps、智能系统,甚至移动计算等创新都不为人们所知。然而今天,它们都是现代软件应用程序开发中不可或缺的组成部分。
如何处理:现代软件应用程序不再是静态的,我们也不能再保持静态。开发人员必须对新的想法和概念持开放态度,跟上最新的想法和创新,并找到创造性的方法,将新的工具和技术应用到不断发展的企业应用程序需求当中。
具有讽刺意味的是,这使得软件开发人员与他们的业务领导者处于相似的地位。业务主管负责了解客户不断变化的需求,而你也有责任了解不断推出的新功能,以帮助解决这些需求。
掌握最新的软件工程技术
痛点:还记得Ruby 是什么时候风靡一时的吗?还记得什么时候XML是应用程序间通信的解决方案吗?企业软件开发建立在精心安排的瀑布式开发流程之上的日子怎么样?PHP又是何时才让Web应用程序开发变成一件轻而易举的事情的呢?
如果你已经在这个行业干了几年,那么当你费尽苦心掌握的一些技术集突然变得不再重要,你可能也会变得不再重要。相反,掌握一套新的技能将会让你变得非常受欢迎。
在软件行业,一项技能、技术或流程的寿命大约是2到3年。当你构建起一个应用程序并开始在市场上看到它们取得成功时,往往表明用于开发它们的技术可能已经过时了。为了应对这种极端的创新速度,你必须跟上不断调整的行业规范和要求。即使压力越来越大,要做的事情越来越多而时间却变得更少、速度也变得越来越快,你也必须花时间来让自己的技能处于最新状态。
如何处理:在上世纪八十年代流行起来的“T型人才”概念对于在不断变化的软件行业中取得成功非常关键。“T型人才”对许多技术有着广泛的理解,同时又对于一些关键领域有着深刻的理解。这种结合使得这类人才在他们的专业领域具有很高的价值,并且有着很强的大局观。
随着时间的推移,“T”字中代表深度的一竖所涉及的专业知识将会不断地发展。同时,代表广度的一横有助于你决定下一步要专门研究哪些技术。
排除环境的干扰
痛点:现代工作环境既是福也是祸。除了可以在房产方面节省资金外,共享的工作区、开放的办公室和专用的团队空间还被认为可以减少层次结构、提高创造力和协作能力、提高灵活性。
软件工程师是需要时间来实际开发软件的,而且许多现代工作环境似乎已经忽略了这一需求。像Slack这样的协作工具可能会让情况变得更糟,因为它们让每个人都可以快速讨论一些期望值。开发人员会发现由于没有统一的意见,自己很难将注意力集中在手头的工作上。
如何处理:即使在现代工作环境中,有时间和空间进行安静的反思和生产非常关键。远离喧嚣的开放式办公室对于成为高效的开发人员至关重要。
许多开发者使用耳机来创造一个无干扰的环境,但是这样可能还不够。要想让精力更为集中,找一个远离正常团队环境的安静角落;关闭通知并退出所有设备上的协作和通信应用程序,包括计算机和手机;播放能够令人心情平静的音乐,创造出一个安静的环境。有意识地这么做可以帮助你成为一个更为高效的工程师。当你无法专注于一个棘手的开发问题时,你可以为同事提供帮助。
管理运营开销
痛点:随着DevOps的兴起,开发人员做好软件,然后“将它们隔墙甩给”运营人员去管理的日子已经一去不复返了。不管是否已经准备好,现代软件工程师逐渐开始负责自己开发的软件的运营工作。这样做有什么好处呢?除了在软件不能正常工作时会在半夜被叫醒来处理问题的人外,没有人会关注你构建的高质量、可扩展且高可用性的应用程序。
将dev和ops功能整合在一起已经被证明对应用程序是有益的,对构建它们的企业也是有好处的。掌握构建高效、可靠、大规模运行的应用程序所需的工具和技术有助于软件开发人员的成长和开发。但是DevOps所增加的运营责任是有代价的。许多开发人员在不了解大规模维护应用程序所涉及到的内容的情况下,就被赋予了运营职责。此外,增加的运营负担可能会成为另一个分散注意力的因素,导致开发人员无法集中精力创建优秀的软件。
如何处理:软件支持方面的变化可以帮助开发人员在没有求助时集中精力开发,在有求助时集中精力改进应用程序的运营能力。团队应该强调,随叫随到的开发人员不应该只为了满足新产品开发承诺而规划自己的工作。相反,他们应该利用这个机会更好地了解运营需求并改进操作基础设施。在不处理求助电话时,对操作方面的关注有助于让你更加专注于开发问题。
无论喜欢与否,开发人员坐下来编写代码,然后把它们甩手扔给别人,让别人为之操心的日子早已不复存在。在现代软件行业中,对在更为复杂的环境中处理更复杂软件的期望,要求开发人员能够进行自我更新和自我扩展,并且就像他们创建和维护的应用程序一样。
本文作者Lee Atchison现为New Relic的云架构高级总监,拥有32年的从业经验,曾经在亚马逊担任了七年的高级经理,并在著有《规模架构》一书(由O’Reilly Media于2016年出版发行)。
原文网址
https://www.infoworld.com/article/3411438/5-pain-points-of-modern-software-development-and-how-to-overcome-them.html