Rolando Mayo | Dreamstime.com
Student Coder Promo

发展世界一流软件的8个痛点

July 16, 2021
Software engineering in this ever-more connected world has no doubt developed quite a bit of complexity. Here are eight factors to keep in mind to avoid software development from spiraling out of control.

What you'll learn:

  • Why software development is so crucial in today's electronics climate.
  • The need to keep up with rapidly advancing toolsets.
  • 对经过的可用性日益增加的担忧nced software developers.


With the ubiquitous creation of smart, connected products, the need to develop system solutions are primary. It’s no longer just hardware development. Virtually every new smart, connected device entails the need for creating robust, end-user-facing software applications.

In fact, with many hardware/software solutions today, the only interface to the hardware is through a software app on the front end. This brings on a raft of challenges unique to software development. Here are a few keys to keeping that software development raft afloat.


1. Setting clear requirements

This is the common dilemma for engineers. Rarely is there a clear enough definition around requirements and expectations, and it’s a worthy goal to drive toward clarity. Doing so reduces the risk of delivering a finished product inconsistent with expectations.

Of course, setting expectations has the potential for excessive rigidity. In an agile software development process, it’s possible to evolve and tune expectations as new ideas are explored and tested. However, even with an agile process, there’s the risk of runaway development with inherent impact to cost and schedule.

2. An agile development process

当正确构思和执行时,敏捷的发展过程是一件美好的事物。它允许以硬件设计师只能梦想的方式并行构建需求和软件。通过演示,验证和调整将过程分为微步骤,可以很好地提供灵活性,并确保最终产品是产品经理的期望和需求。

However, when poorly executed, an agile process can work like no process at all. Iterations and change can go on without end as new sprints are added and projected sprints are frequently modified. Agile development is a process to be carefully studied and understood so that it doesn’t lead to negative impacts on development cost and schedule.

3. Continuous rapid evolution of tools and standards

In the world of electrical and mechanical engineering, available toolsets have largely consolidated around the offerings of a handful of suppliers. The tools, while continuously changing, are doing so in a manner that’s evolutionary rather than revolutionary.

However, in the software world, toolsets and standards continue to evolve rapidly. New programming environments, each touting to be the best one ever, are introduced at a frightening pace. And, for the most part, the newer toolsets often do bring unique new advantages to the table that impact productivity and capability.

Thus, today’s software engineers must constantly be learning and become proficient in the changing landscape around tools. Fortunately, the challenge in absorbing yet another toolset isn’t a monumental task, but it does take a disciplined, concerted effort to stay current.


4.选择正确的开发环境

With all of the development environments available today, it’s a challenge to ensure that the right toolset is selected for a particular job. In simple, straightforward cases, the tools with automated code generation can be appropriate. However, it’s important to know the roadmap for the applications. Those involving a lot of complexity and the need to evolve over time may require toolsets that operate at a more fundamental level, possibly rendering them inappropriate choices.

5. Protection from ever-evolving threats

The soft underbelly into company infrastructure is through software holes. It’s challenging for software developers to stay one step ahead of the hackers and cyberattackers. There’s a constant battle to protect against the new means of penetrating the software. Since most threats are realized through opening malicious email links, to the greatest extent possible, software developers need to protect systems as much as possible from common human error.

6. Stepping back to move forward

Oftentimes, software engineers aren’t afforded the luxury to create a new app from scratch. It’s frequently necessary to start with an existing architecture. The legacy architecture may never have been designed to support a new or advanced feature. The legacy code also may have been patched and tweaked over a period of years, yielding a structure that’s fragile and extremely difficult to decipher. One hates to have to go backwards, but sometimes it’s necessary to start over or step back into pre-existing code to make changes so that the new features and capabilities can be integrated in a functional, reliable manner.

7. Coding to manage the lifecycle

When the software team is creating a new-from-scratch application or an upgrade to an existing application, software engineers are challenged to develop with a mind toward future supportability of the application. One must be careful of hard-coded functions or rigidity that doesn’t lend itself to future bug fixes and upgrades.

Furthermore, the code needs to be organized with a mind toward sustainability, and in some cases, handoff. This is especially true when a solution created by a service provider needs to be maintained by a clients’ own staff.

8. The talent challenges

如果要相信炒作,可以在速成课程的几个周末进行培训软件开发人员。尽管这可能适用于开发人员创建简单的应用程序或网站,但任何涉及任何复杂性的事物都意味着团队需要经验丰富或经验丰富且受过教育的工程师。

The challenge for those building teams is that top-level, experienced talent is in short supply. Everyone is in competition to hire and secure talent. Companies can develop their own top-level teams working with entry-level staff. However, even that requires the presence of experienced engineers to help guide and mentor so that the team develops efficient, bug-resistant, and sustainable code. Also, a “build your own” strategy takes time and patience.

Creating world-class software involving data from diverse sources and analytics communicating to hundreds or thousands (or more) users is complex. Then, throw in the need to ensure that the software is secure and hack-resistant. Combined, the challenges facing software engineers can be daunting.

Finding the right talent is difficult and your team needs to continually stay on top of the latest tools and techniques. While the difficulty of creating simple applications and websites has never been easier, at the enterprise and business level, the challenges have never been greater. For those up to the challenge, software engineering continues to be interesting, fun, and especially rewarding.

From Our Partners

驾驶车辆电气化向前

This video is either unavailable or not supported in this browser. If you are using an older browser please try upgrading or installing Flash.. Consume…

Low Emi: Lower System Costs & Quickly Meet Emi Standards By Reducing Emissions

As your partner in power management, we are in constant pursuit of pushing the limits of power: developing new process, packaging and circuit-design…

The Co-Processor Architecture: An Embedded System Architecture for Rapid Prototyping

July 6, 2021
Editor’s Note — Although well known for its digital processing performance and throughput, the co-processor architecture provides the embedded system…

The advantages of a well-made electrical enclosure

The advantages of a well-made electrical enclosure By: Murray Slovick. Figure 1: The GEOS line of harsh environment outdoor industrial enclosures. Sou…

Welcome to The Edge

Photo/imagery credits (in order of display). pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com. Join us in ou…

Driving the Green Revolution in Transportation

Karl-Heinz Steinmetz Sector General Manager Automotive Powertrain Texas Instruments. Technology advancements further electrify cars, enable new effici…

表达您的意见!

This site requires you to register or login to post a comment.
No comments have been added yet. Want to start the conversation?

From Our Partners

驾驶车辆电气化向前

This video is either unavailable or not supported in this browser. If you are using an older browser please try upgrading or installing Flash.. Consume…

Low Emi: Lower System Costs & Quickly Meet Emi Standards By Reducing Emissions

As your partner in power management, we are in constant pursuit of pushing the limits of power: developing new process, packaging and circuit-design…

The Co-Processor Architecture: An Embedded System Architecture for Rapid Prototyping

Editor’s Note — Although well known for its digital processing performance and throughput, the co-processor architecture provides the embedded system…

The advantages of a well-made electrical enclosure

The advantages of a well-made electrical enclosure By: Murray Slovick. Figure 1: The GEOS line of harsh environment outdoor industrial enclosures. Sou…

Welcome to The Edge

Photo/imagery credits (in order of display). pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com. Join us in ou…
1330724©Ian Poole |dreamstime.com
Dreamstime L 1330724
Baidu