现代软件工程_成功的现代软件团队的5个习惯

现代软件工程

As the speed of innovation in the software industry has become second to none, companies need to work harder and faster to keep up with the rapidly changing demand. And we are not only talking about keeping up with technological advances, but the need to face the organizational challenges that come along with new ways of developing modern software.

随着软件行业的创新速度已成为首屈一指,公司需要更加努力,更快地工作,以适应瞬息万变的需求。 而且我们不仅在谈论跟上技术进步,而且还需要面对开发现代软件的新方法所带来的组织挑战。

A modern software development process means moving away from legacy systems which were traditionally monolithic and on-premise. Specific technologies aside, modern software development also means a team that works in a modern way, and enables innovation for the company. So, you may ask; What is a modern software company?

现代软件开发过程意味着要摆脱传统上单片的本地系统。 除了特定的技术,现代软件开发还意味着以现代方式开展工作并为公司带来创新的团队。 所以,你可能会问; 什么是现代软件公司?

Here are 5 habits of highly successful modern software development teams:

这里有5个非常成功的现代软件开发团队的习惯:

1.创新是他们文化的一部分 (1. Innovation is a part of their culture)

Modern software teams are inquisitive, they are constantly on the lookout for better, faster, and cheaper ways of developing software. In short, they innovate. Researching and trying out alternative ways is a welcomed challenge for modern software teams. This usually comes from establishing a company culture that allows open discussions and encourages new ideas.

现代软件团队充满好奇心,他们一直在寻找更好,更快和更便宜的软件开发方式。 简而言之,他们创新。 对于现代软件团队而言,研究和尝试替代方法是一项可喜的挑战。 这通常来自建立公司文化,这种文化允许公开讨论并鼓励新想法。

If your team is holding on to the legacy software because it seems daunting to undertake a huge digital transformation, then it’s time to drive some change.

如果您的团队因为进行巨大的数字化转型而感到艰巨而继续使用旧版软件,那么该是时候进行一些变革了。

如何使我的软件团队成功? (How do I make my software team successful?)

The good news is that when it comes to internalizing innovation as part of your culture, it can be easy. Introducing new strategies that allow developers to experiment and explore, you can help your team adapt. Identify the leaders and the most senior developers in your software team, and together you can come up with a solid plan to enable innovation from within.

好消息是,当涉及将创新内部化为您的文化的一部分时,这很容易。 引入允许开发人员进行试验和探索的新策略,您可以帮助您的团队适应。 确定您的软件团队中的领导者和最高级的开发人员,然后您可以共同制定一个可靠的计划,以实现内部创新。

Every company’s needs are different, but to succeed you need to add innovation into your KPIs, come up with ways of achieving it, and delegate. If you are sticking with these new procedures and providing your software team with the right programming tools, change should follow.

每个公司的需求都是不同的,但是要取得成功,您需要在KPI中添加创新,提出实现方法并委托。 如果您坚持使用这些新程序并为您的软件团队提供正确的编程工具,则应该进行更改。

2.现代工程团队敏捷 (2. Modern engineering teams are Agile)

One of the 12 principles in the Agile Manifesto states: “Welcome changing requirements, even late in the development process. Agile processes harness change for the customer’s competitive advantage.”

敏捷宣言中的12条原则之一指出:“欢迎在开发过程的后期,甚至在开发过程中不断变化的需求。 敏捷流程利用变更来获得客户的竞争优势。”

According to research from the Project Management Institute , agile teams finished development projects on time 65% of the time, versus 40% for non-agile engineering teams. They reached 75% of their KPIs, while non-agile teams reached only 56% and which resulted in a revenue growth 37% faster!

根据项目管理研究所的研究,敏捷团队按时完成开发项目的时间为65%,而非敏捷工程团队为40%。 他们达到了其KPI的75%,而非敏捷团队仅达到了56%,这使收入增长快了37%!

Utilizing agile development practices, teams will usually tackle a project in 2–3 week sprints and can quickly iterate and test fresh ideas, whereas using Waterfall methodologies, you might spend several months to a year before a user sees your product. This hinders the chances of continuous improvement and software quality because all current and future plans depend on initial assumptions. If you need to adjust to new customer expectations, change can be difficult and costly to implement.

利用敏捷的开发实践,团队通常会在2-3周的冲刺中完成一个项目,并且可以快速迭代和测试新的想法,而使用Waterfall方法,您可能要花数月至一年的时间才能让用户看到您的产品。 这阻碍了持续改进和软件质量的机会,因为所有当前和将来的计划都取决于初始假设。 如果您需要调整以适应新客户的期望,则更改可能会困难且成本高昂。

如何使我的软件团队成功? (How do I make my software team successful?)

If you haven’t already, consider following an agile methodology for software project management. Here are some of the most widely-used Agile software development methodologies:

如果您还没有考虑,请考虑遵循一种用于软件项目管理的敏捷方法。 以下是一些使用最广泛的敏捷软件开发方法:

  • Scrum

    Scrum
  • Kanban

    看板
  • Lean Software Development

    精益软件开发
  • And more

    和更多

Most agile methodologies have overlapping characteristics, but from an implementation standpoint, they each use a unique mix of practices and tactics. Find out what works best for your team, your business, and technical needs.

大多数敏捷方法具有重叠的特征,但是从实现的角度来看,它们各自使用独特的实践和策略组合。 找出最适合您的团队,业务和技术需求的方法。

We have taken on many modernization projects. We know it works, if you pick the correct agile methodology and make it your own. Figure how your product roadmap, and development process. Only then will the best approach be clearer.

我们承担了许多现代化项目。 如果您选择正确的敏捷方法并将其设为自己的方法,我们就会知道它是有效的。 弄清楚您的产品路线图和开发过程。 只有这样,最好的方法才会更加清晰。

3.现代软件团队看到未来 (3. Modern software teams see ahead)

Successful modern software teams will not only develop quality software that works perfectly today, but they have an eye for the future. If you internalize innovation, you will expect change coming and design software products that can adapt.

成功的现代软件团队不仅会开发在今天能完美运行的高质量软件,而且还会对未来充满信心。 如果您将创新内部化,您将期待变革并设计可以适应的软件产品。

From scalability and portability to easy maintainability and continuous integration, there are many factors that won’t affect your software today but may cause you trouble in the future.

从可伸缩性和可移植性到易于维护和连续集成,有很多因素今天不会影响您的软件,但将来可能会给您带来麻烦。

如何使我的软件团队成功? (How do I make my software team successful?)

We mostly take these decisions that may affect the future performance of our software at the initial design stage. Make it part of your process to consider each of these factors that allow your software to remain modern .

我们大多会在初始设计阶段做出可能影响软件未来性能的决策。 考虑这些因素可以使您的软件保持最新性,这是您处理过程的一部分。

If your team members are working with microservices, decentralized systems, containers, agile methodologies etc., then it should be fairly easy to introduce change.

如果您的团队成员正在使用微服务,去中心化系统,容器,敏捷方法等,那么引入变更应该很容易。

If you are past initial stages, your software team needs to analyze where performance can be increased within the existing architecture. Eliminating interdependencies as much as possible is the goal. Making sure new projects have a more decentralized and decoupled architecture will break the cycle.

如果您处于初期阶段,则软件团队需要分析可以在现有体系结构中提高性能的地方。 目标是尽可能消除相互依赖性。 确保新项目具有更加分散和分离的架构将打破周期。

4.现代软件团队工作精明,工作量少 (4. Modern software teams work smart and they work less)

From continuous integration and continuous deployment (CI/CD) to continuous delivery and automated testing , a successful software team knows how to implement DevOps practices. This means an increased efficiency and a continuous software development process that leaves no room for errors.

从持续集成和持续部署(CI / CD)到持续交付和自动化测试,成功的软件团队都知道如何实施DevOps实践。 这意味着更高的效率和持续的软件开发过程,不会留出任何错误的余地。

Teams utilizing DevOps efficiently experience an 18% reduction in time-to-market and a 21% increase in new software delivery. Software teams with an efficient CI/CD pipeline deliver faster, higher-quality applications to market enabling a 19% revenue increase.

充分利用DevOps的团队可以将上市时间缩短18%,并将新软件交付增加21%。 具有有效CI / CD流水线的软件团队可将更快,更高质量的应用程序推向市场,从而使收入增长19%。

Another side of working smart is writing code that is short, clean and can scale more easily. Today, engineering teams make use of various principles of Clean Coding such as KISS, SOLID and DRY , enabling them to have a neat and scalable code.

聪明地工作的另一面是编写简短,干净且可以更轻松地扩展的代码。 如今,工程团队利用了Clean Coding的各种原理,例如KISS, SOLID和DRY ,从而使他们拥有整洁且可扩展的代码。

如何使我的软件团队成功? (How do I make my software team successful?)

If your software team is behind on the automation efforts, then it may be wise to reallocate some resources or make more strategic hires.

如果您的软件团队在自动化工作方面落后,那么明智的做法是重新分配一些资源或进行更多战略性招聘。

The good thing is, software developers are keen on adopting continuous development as it means less work for them. Create the opportunity for your developers to assume such a role in the team. You will not only be increasing team motivation, but also productivity.

好消息是,软件开发人员热衷于采用持续开发,因为这对他们来说意味着更少的工作。 为您的开发人员创造机会,使其在团队中扮演这样的角色。 您不仅会增加团队动力,而且还会提高生产力。

If you are hiring new software developers, you should know that most tech employers expect developers to have at least some experience in automation. With a few strategic hires, you can add the right skills to your development team.

如果您正在招聘新的软件开发人员,则应该知道大多数技术雇主都希望开发人员至少具有一定的自动化经验。 只需招募一些战略人员,您就可以为开发团队添加合适的技能。

We have deployed many DevOps, Build and Release, Quality Assurance Automation and Site Reliability Engineers in the past years. We can see these roles have become a must for modern software teams because our clients increasingly ask for this skill set within our extended development teams.

在过去的几年中,我们已经部署了许多DevOps,构建和发布,质量保证自动化以及站点可靠性工程师。 我们可以看到这些角色已成为现代软件团队的必备条件,因为我们的客户越来越多地要求在扩展的开发团队中使用这种技能。

5.现代软件团队不受环境的束缚 (5. Modern software teams aren’t bound by circumstances)

Beyond being flexible in the face of technical challenges, a successful software team is ready for different modes of working and communication. Great teams focus on hiring only the most fitting developers and these developers might sometimes be on the other side of the world. Will you let that stop you from scoring the talent you want?

一个成功的软件团队除了面对技术挑战时具有灵活性之外,还为不同的工作和沟通方式做好了准备。 优秀的团队专注于仅雇用最合适的开发人员,而这些开发人员有时可能位于世界的另一端。 你会阻止你得分吗?

如何使我的软件团队成功? (How do I make my software team successful?)

Especially today, with the high demand for software developers, we have to cater to the needs of the talent more than before. That means being able to accommodate different time zones, remote workers, and different cultures.

尤其是在当今,由于对软件开发人员的需求很高,我们必须比以往更多地满足人才的需求。 这意味着能够适应不同的时区,偏远的工人和不同的文化。

Modern software teams today have processes and development tools to enable smooth collaboration and software development . From conferencing tools enabling communication remotely, to project management tools for developers in different time zones to track each other’s progress, you can help your software team develop not only good code but also a collaborative environment.

当今的现代软件团队拥有流程和开发工具,可实现顺畅的协作和软件开发。 从支持远程通信的会议工具到用于不同时区的开发人员跟踪彼此进度的项目管理工具,您不仅可以帮助您的软件团队开发良好的代码,而且可以帮助您开发协作环境。

结论 (Conclusion)

Having a modern software development team is not a state but a process. Even the best teams need to watch out for upcoming software trends and the ever changing market demand.

拥有现代化的软件开发团队不是一个状态,而是一个过程。 甚至最好的团队也需要注意即将出现的软件趋势和不断变化的市场需求。

Prioritize innovation, whether it be a full on modernization or a gradual shift, and you will see your software team align in the right direction. You may not see the change overnight, but changing mindsets and habits is not like flipping a switch. Stick with innovation as a goal, incorporate it in your culture, enable your software team to follow through and it will become a team value.

优先考虑创新,无论是全面现代化还是逐步转变,您都会看到软件团队朝着正确的方向发展。 您可能不会在一夜之间看到变化,但是不断改变的心态和习惯并不像切换开关。 坚持以创新为目标,将其融入您的文化中,使您的软件团队能够遵循并成为团队的价值。

To sum up, if you want to achieve a successful modern software development team, you should:

综上所述,如果您想建立一个成功的现代软件开发团队,则应该:

  • Lead by example for internalizing innovation

    以身作则以内化创新
  • Tackle modernization as a whole from the tech stack and architecture to the ways you work as a team

    从技术堆栈和架构到团队合作的整体方式,全面解决现代化问题
  • Adjust your goals and design solutions sustainable in the long run

    长期调整您的目标并设计可持续的解决方案
  • Encourage your developers to adopt automation and become more efficient

    鼓励您的开发人员采用自动化并提高效率
  • Decorate your team with multiple tools and processes to operate anywhere, anytime.

    使用多种工具和流程来装饰您的团队,使其可以随时随地运行。

Originally published at https://www.zartis.com.

最初发布在https://www.zartis.com

翻译自: https://medium.com/javascript-in-plain-english/5-habits-of-highly-successful-modern-software-teams-b895fec9562f

现代软件工程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值