The advancements in chip, sensor and wireless technologies over the past decade have resulted in exponential increases in system complexity that create unique challenges for development teams. While systems today are more feature rich, teams struggle to deliver quality solutions that easily scale, can be delivered on-time and within budget. This is where tips, tricks and best practices can help teams improve their chances for success.
Best practices, as defined by the Merriam Webster dictionary, are “procedures that have been shown by research and experience to produce optimal results and that establish or propose a standard for widespread adoption”.
Best practices are meant to help developers avoid the pitfalls and issues that other teams and developers have encountered in the hopes that they will be able to innovate faster, cheaper and have better overall results. Best practices can cover a wide range of embedded topics such as:
- Architecture Design
- Artificial Intelligence
- Code Analysis
- GUI Design
- Language Skills
- Processes and Standards
- Secure Processing
- SDLC Management
That’s just my short list! (I figured readers would get bored if I put the whole list).
In theory, teams following best practices should result in a more successful development cycle. In practice, for this to occur, there needs to be discipline across three levels of a business.
First, developers need to form the foundation for success. They identify and implement industry best practices that help to create a robust product, deliver products on-time and so forth. If developers haven’t bought into the idea, then no amount of management pressure is going to get them to adhere. Developers need to recognize it’s in their best interest and their companies to follow best practices even when the pressure to deliver is on. (Developers often try to shortcut best practices when the heat is on which just makes things worse!).
Second, the team needs to recognize that in order to be successful, they need to adhere to best practices. A single individual working on a project with a team of 20 is not going to be able to ensure the success on their own. Product development is a team activity, no matter how much we would like it to be an individual one. Individual developers will often slip up on best practices and it’s up to the team to help reenforce at a higher level that things will be done right no matter the pressure that is imposed.
Finally, there has to be discipline at the management level of the company. Management needs to buy-in to the benefits and agree to the value. When they try to push too hard in a way where best practices would be thrown out the window, they need to be opened to team feedback and pushback that meeting deadline X will result in lower quality, more bugs, etc. It’s always good to have challenging deadlines and projects that push the team to new levels, but not at the cost that I often see paid in the industry that generally just make things worse.
All three levels need to agree to adhere to best practices with the understanding that by doing so, in the long run, the product will be higher quality, more scalable and the likely hood for delivering on-time and budget will be dramatically improved.
Tips, Tricks and Best Practices. The deal is that by following them through-out the various levels of a business can result in huge increases in value for not only the company, but also for their end users and clients. I often focus my business, talks and articles around tips, tricks and best practices because I’ve seen the benefits, they have in my own development activities and those of my clients when they followed. It is important though to recognize that they aren’t gospel and often generalized. Not every best practice works in all situations, but they can provide a starting point and act as a guide to help developers and teams be successful.