As the year is quickly coming to a close, developers are anxiously counting down the days until the holiday break. With that break will come a brand new year where teams will hopefully have the opportunity to apply lessons learned and improve not only the quality of their software but also improve the way that they develop software. Here are seven quick tips on how to improve software development in 2017.
Tip #1 – Slow Down to Go Faster
In my travels and career there is one development constant that is always true; there is never enough time in the day to accomplish everything that management wants. Many teams that I encounter are frantically working as quickly as they possibly can. I’ve noticed that with high product development intensity, discipline often goes out the window which results in decreased productivity through poor decisions, increased bug rates, and decreased code quality. Sometimes slowing down and keeping a disciplined approach despite the delivery pressures is the only way to move forward faster.
Tip #2 – Schedule Continuing Education Time
Embedded system technologies have begun to change at an extraordinary rate. New techniques and tools seem to be appearing almost on a weekly basis. Even the most seasoned and senior engineers can get pulled into the rut of just repeating the same design cycle over and over again. Developers need to carve out time in their schedules to read technical papers, discover new development methodologies and techniques, and even to experiment. Pull out your calendar and schedule at least an hour once a week for expanding your technical knowledge.
ESC Boston is back! Get ready for an expanded, expert-led program over two full days, May 3-4, 2017. Part of America's largest embedded systems industry conference series, ESC Boston gives you the chance to drill down into four tracks covering embedded hardware, embedded software, connected devices and the IoT, and advanced intelligence.
Tip #3 – Expand your Network
Talking with other engineers about the challenges they are facing and how those challenges are being solved can dramatically help improve your development cycle. Very rarely does someone face an issue that has never been seen. Networking with other engineers and managers can provide contacts that can become sounding boards for challenges, advise givers for solving a problem, a network for finding that next career move or just for inspiration into what innovation is occurring in the world.
Tip #4 – Consider using a Development Platform
Microcontroller technologies and tools have advanced drastically in the past several years. The capabilities are now providing ways to abstract out components and low level drivers and focus instead on providing product features. Many microcontroller vendors are providing autoconfiguration tools, software stacks, and application code that is becoming product quality. Investigate what platforms are out there and how they can be leveraged to provide a foundation for product development. The days of starting from scratch at the driver layer and developing bare metal software are over.
Tip #5 – Improve the Debugging Process
I’ve recently heard multiple figures thrown out for how much development time is spent debugging. These figures range from 20% to 50%. New development tools such as task tracing tools and instruction tracing are making the microcontrollers behavior and execution path more lucid than ever before. Teams no longer need to guess at what is happening in the microcontroller but can actually measure and observe what happens. Take the guess work out of your troubleshooting and learn how to use the latest and greatest debugging techniques. Suggestions can be found in my Digi-Key CEC Course entitled “Debugging Real-time Embedded Software Hands-on.”
Tip #6 – Schedule Periodic Code Reviews
Code reviews are a great way for developers to discover bugs in their software. Code reviews have been shown time and again to be extremely effective. Despite the data, development teams tend to be a bit relaxed on code reviews and instead wait until a project is near its due date to begin code reviews. Nothing is more painful than pouring through code thousands of lines at a time. In 2017, schedule code reviews at least once a week for an hour or hour and a half. The improvements in code quality may surprise you.
Tip #7 – Master the 8 Pillars of Embedded Software
There are so many areas that embedded software development flow into. However, there are eight areas that form the foundation for every development cycle. These include:
- Code Analysis
- Language Skills
Take a few moments to evaluate where you and your team currently lay skill-wise in each area. Identify a few deficiencies and how those can be overcome in the first few months of 2017. For ideas on how to evaluate rank these skills see: “Master the 8 Pillars of Embedded Software.”
The changes that each development team needs to make in the new year to develop software faster and more robustly will vary from one development team to the next. These seven tips are general ideas that undoubtedly can help improve most teams but will hopefully get the reader thinking about what changes they need to start making next year in order to make it a successful one.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan. Contact him at [email protected], at his website, and sign-up for his monthly Embedded Bytes Newsletter.