Software Information |
|
When is a Software Engineer Not a Software Engineer?
The title of "software engineer" has got to be among the most highly abused in the corporate high-tech world. It's also one of the most popular. And why not? It sounds a lot better than "computer programmer," and it looks much better on one's business card. Unfortunately, it's often inaccurate. Engineering is, after all, the application of sound technical principles to develop systems that are robust, efficient and elegant. I've found that a great many software engineers can develop working programs, but do little or no real engineering design. Does this sound harsh? Perhaps, but I've also found it hard to deny. I've encountered very few software engineers, for example, who have clean, crisp and readable coding styles-an essential element of elegant software design. I've also encountered a preponderance of cryptically written functions, clumsy software abstractions and bizarre spaghetti code. To my dismay, I've discovered that even among computer science graduates, many reduce object-oriented programming to the mere use of private data, public functions and object instantiations. It's enough to break a teacher's heart. Now, I won't go so far as to say that most programmers write spaghetti code. That would not be fair. However, I do think that relatively few programmers have a deep appreciation for the artistry of software development. That's not to say that they're ignorant of such things; not at all. Rather, it's more that the engineering aspects of elegant code design are all too often neglected. I think this happens because modern programming tools have made proper code design seem like a nuisance. In the early years of computing, people were forced to write out their software designs, pondering many fine details before they ever sat down in front of the computer. Nowadays, with our fast compilers and interactive debugging systems, programmers often find it more convenient to simply sit down and start coding, with just a modicum of software design. Mind you, I do understand that this is sometimes more efficient-when the programming task is fairly routine, for example. However, when such design-as-you-go software development becomes standard practice, then you have the makings of utter chaos. In part, this problem is also rooted in the malleable nature of computer software. No self-respecting civil engineer would design a bridge by slapping girders together until he has something that works; after all, if the bridge collapses, it could take months to rebuild it. Similarly, no sensible architect would want to build a house without blueprints and floor plans. Yet it is commonplace for programmers to develop software using poorly chosen functions and only the sketchiest of designs. After all, if the software doesn't work, they can always find the bug and fix it-at least, in theory. In practice, these bugs are often difficult to detect, and fixing them can require extensive surgery. The consequences of an ill-designed software program can be disastrous indeed. For this reason, I believe that high-tech companies need to give software engineering the respect that it deserves. They need to develop a true culture of systematic software design, instead of merely settling for "whatever works." A company that's looking toward the future must pay proper devotion to the principles of software maintainability, proper documentation and elegant, robust design. It must also inculcate a culture of true software engineering among its employees. The failure to do so may work in the short-term, but it is a recipe for long-term disaster. V. Berba Velasco Jr., Ph.D. takes great pride in working at Cellular Technology Ltd (http://www.immunospot.com, http://www.elispot-analyzers.de, http://www.elispot.cn) where he serves as a senior electrical and software engineer. He is pleased to work in an environment where excellence is valued.
|
RELATED ARTICLES
Twelve Things You Should Know to Save on Computer Software Do you want to get quality software at a reasonable price? Whether you work at home or just need good software for your personal computer, you are faced with an almost endless selection of computer software. Sorting through the options can sometimes be a major task. However, if you want to get good, quality software there are several things that you can do that will save you money and headaches. Looking for an Alternative to Microsoft Office? You Should Be! Now is the time to look at an alternative to Microsoft Office. Is Software Tester a Most Infamous Person in a Software Project Team? The fact that a software tester is a most infamous person in a software project team has some grounds underneath it. This is because a software tester usually speaks of the bugs in the developer's code. For a developer to take this pin-pointing personally hurting is humane. The tussle between the testers and developers may lead to failure or delay of the software project. This article presents some of the aspects which both the developer and the tester should know about each other and work harmoniously in a team. Software Automation Helps Increase your Bottom Line When you own a small business, time is money. And every time a task that should be automated is handled manually, it wastes your time and your business loses money. To make matters even worse, performing these tasks manually, in front of clients or prospects, projects the wrong image. Microsoft Great Plains Accounting/ERP Implementation ? Finance Industry Customization Example Microsoft Business Solutions Great Plains is very generic accounting application out of the box and has multiple modules to address specific horizontal or vertical market requirements. At the same time Great Plains, now being moved on MS SQL Server platform allows you to deploy standard tools to customize and fit to these requirements, when you don't need rich custom functionality, just few touches. In this small article let's take a look at finance industry. Microsoft CRM Integration with Lotus Notes Domino: Messaging Connector ? Future Directions IBM Lotus Notes Domino and Microsoft CRM (Client Relation Management) from now on can work in tandem. Microsoft CRM Lotus Notes Domino connector from Alba Spectrum Technologies provides seamless messaging in MS CRM through Domino. Our customers suggest future direction for the connector. Considering our consulting practice experience in MS CRM and Lotus Notes customization, upgrade, integration ? in this small article we'll reveal our half year development plans Falling in Love With More Than One Screensaver: The Fun Part Having from five to ten and more favorite screensavers is cool. But how do you enjoy them all in a straightforward and convenient way? Draw the power you need from the little yet useful tools discussed in this article! Behave, Word, Behave! If you copy something from a Web site or elsewhere... or you reuse a document and the formatting is making you crazy with its weirdness, then stop the insanity. The first option to make the document behave loses some of the formatting. You can always undo the changes if you don't like it by pressing CTRL+Z. To dump some of the formatting, press CTRL+A to select all and then select "Normal" from the style drop-down box in the left corner next to the AA as shown in the picture. This changes some of the formatting. If it's too much, remember CTRL+Z is there. If it's not enough, try option two. Microsoft Retail Management System (RMS) SQL Customization ? Overview for Programmer Microsoft Retail Management System serves retail single store as well as retail chains clientele. The customization scenarios, described in this article deal with the chains, when Microsoft RMS has multiple stores databases and Headquarters. Microsoft RMS is SQL Server-based application, so we will consider SQL programming ? SQL queries, views and stored procedures. Also Microsoft RMS could be integrated on the SQL level with other applications, such as Microsoft Great Plains, Microsoft CRM and non-Microsoft applications, such as Lotus Notes/Domino Business Plan Software Review: Ultimate Business Planner? One of the main reasons business owners and entrepreneurs use business plan software is to simplify building their financial models. Even with an explosion in business plan software packages on the market today, "doing the financial projections" is still often cited as the most difficult part of completing a business plan. Yet, software can still simplify financial forecasting. Software For Your Hard-Drive All your software is stored on a hard-drive. But how about software FOR your hard-drive - private disks, partition managers, disk defragmenters? Here is the scoop on the latest tools. How To Create A Data Capture Procedure Checklist For Your Small Business CRM Software Fortunately one of the most common reasons cited for the high failure rate of CRM systems - poor data quality - is also one of the easiest to avoid. Your CRM software is only as good as the information it contains. As the old programmers motto goes 'garbage in, garbage out'. Brand Your Websites URL With a Favicon Have you ever noticed that when you look at your browser favorites menu or the address bar, some entries have their own little icon beside their URL? Microsoft CRM USA Nationwide Remote Support Remember old good days when your company probably had Great Plains Dynamics? If you are in San Francisco Bay Area ? you had local Great Plains Software partner consulting company, who served you basically coming onsite and charging you four hours minimum, even if the problem deserved 5-min fix? This was at the end of 20th century and remote support technologies were not very advanced ? Citrix was making good progress and taking market over from Symantec PCAnywhere. Today, when Microsoft Terminal Server and Citrix are remote support standards and IT department uses them to host application server for nation-wide and world-wide users, you should probably be thinking of getting remote support for your ERP and CRM systems. In this small article we'll take a look at Microsoft CRM remote support, customization, reporting, implementation and integration. Crystal Reports - Microsoft SQL Server Microsoft SQL Server is the leader for inexpensive and middle size SQL solutions. Plus it is now capable to serve large enterprise on Microsoft Windows platform. Crystal Reports is the most flexible tool on the market and it has market recognition. Multiple software vendors offer Crystal Reports as the main reporting tool: Microsoft, Best Software, Oracle to name a few. An Easy Way to Deal with Email Viruses and Worms If you feel intimidated when someone tries to teach you something new on the computer, this article is for you! Reporting Tools for Microsoft Great Plains ? Overview For Developers Looks like Microsoft Great Plains becomes more and more popular, partly because of Microsoft muscles behind it. Now it is targeted to the whole spectrum of horizontal and vertical market clientele. Small companies use Small Business Manager (which is based on the same technology ? Great Plains Dexterity dictionary and runtime), Great Plains Standard on MSDE is for small to midsize clients, and then Great Plains serves the rest of the market up to big corporations. There are several reporting tools available and you definitely need to know which one to use for different types of reports. Windows x: Basic Windows ?Security? Issues Language development computer: Computer-based method for aiding language development seems like an interesting idea, the trick with this would be in getting the computer to take on part of the role of the human in the checking process. What is Groupware? Vince Lombardi once said that, "The achievements of an organization are the results of the combined effort of each individual." If this is the case, then what do we need to do in order to insure success in our companies? How can we combine the efforts of each individual as Mr. Lombardi said was so key to the success of a particular organization? While there are many possible solutions to these questions, I have found something that will help your company become more organized, and your employees more unified in their work. I am talking about groupware. It?s Back!! WordPerfect?s Amazing Comeback Have you noticed WordPerfect is gearing up for a comeback in a big way? And fortunately, they are succeeding. If you're like me, an ole' diehard WordPerfect 5 user, this is music to my ears. I love Microsoft Word, but I long for some of the features WordPerfect had to offer. |
home | site map |
© 2005 |