7 sins of software development

The problem can be even greater with personal information like birth dates or other details. Some areas, such as financial records or health records, are heavily regulated making it easier to run afoul of the rules.

[…]

7 sins of software development

The problem can be even greater with personal information like birth dates or other details. Some areas, such as financial records or health records, are heavily regulated making it easier to run afoul of the rules.

Good software architecture involves planning ahead to minimize the amount of data that’s stored. It protects everyone and can save storage charges, while even speeding up the system by reducing the amount of data in motion.

Outsourcing the wrong work

The debate over building or buying software is a time-honored one with no definitive conclusion. Still, software developers often choose poorly. Maybe there’s a perfectly good solution at a good price and they are too prideful to set aside their custom stack with its expensive in-house team. The opposite also happens. Some managers buy into an outside vendor’s product line only to watch the vendor jack up the prices dramatically when the lock-in is complete.

Unfortunately, deciding just which outside tools to use is a constant challenge for software development teams and their managers. Hiring the right outside source is genius, but adopting the wrong vendor is a ticket to a high-priced prison.

Avoiding testing

Effective software developers and their managers know that testing is a constant challenge and just as much a part of the job as writing recursive code or designing an elegant data structure. Testing should be included from the very beginning because unit tests and integration tests are vital to ensuring code stays viable throughout the development process.

But testing is also important for handling large loads. It’s too easy to write code that runs smoothly on our desk when we’re the only user. If the application is going to have hundreds, thousands, or maybe hundreds of thousands of users, you need to ensure that the code is efficient and the deployment is able to handle the large scale.

Many teams bring in quality assurance testers who watch for the kinds of mistakes that programmers make. They know how to, say, set a parameter to zero just to see whether it causes a divide-by-zero error. They know to purchase 3.14159 shirts or -4000 socks just to see if it breaks the code. This attention to testing is essential when the use cases get so complicated that it’s hard for any single human to think of all the variations and write clean code that anticipates them all.

Underestimating the power of planning

Most code requires some devotion to planning. Alas most coders often just want to jump right in and start machine-gunning code.

One of my friends tells me that it took him several years to recognize that the best step is to stop, plan, test the plans, and plan some more. Writing plans may seem tedious but it can be 10 times faster to try out ideas when thinking abstractly. He’s now a very successful manager.

Planning also means including the input from the other teams and stakeholders. They’re going to be the ones using the code in the future, so spending time discussing the project and learning their needs will save plenty of frustration afterwards. This is the best way to avoid many of the sins listed here.

About Author

Subscribe To InfoSec Today News

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

World Wide Crypto will use the information you provide on this form to be in touch with you and to provide updates and marketing.