Chapter 12. Attitude Is Everything

Excellence is not a skill. It is an attitude.

Ralph Marston

This book focuses on best practices and policies for writing solid code. In the areas of performance, scalability, defensive programming, security, memory management, and other key areas of managed programming, this book is a prescription to write quality managed applications. However, this book alone cannot guarantee that an application is perfect. Writing a perfect, or near perfect, application is about more than completing the software development life cycle, following proper naming conventions, implementing the dispose pattern correctly, or following the other recommended practices described in this book. Writing solid code is more than technical. It is also having the proper attitude as an individual, a team, and management. For example, some developers solve software problems with a less than scientific approach. They simply try a few solutions randomly. If a guess works, problem solved. Unfortunately, the resulting solution is probably just a Band-Aid hiding the real problem. Yet the application is running again. Both the customer and developer appear to be happy. But for how long? This is an issue of attitude and not a technical problem.

When programming, keep the holistic view of the application in mind. Customers don’t view an application as a nuts-and-bolts proposition. A business person is interested in the application as a solution to a business problem. A gamer is interested in the quality of the game and not some algorithm that saves a nanosecond. A nanosecond the gamer won’t notice, and you spent weeks researching and developing. Yes, an application is a composition of nuts and bolts. More importantly, you are creating a solution. It is that solution that should dictate product development and not technical fortitude. Many developers suffer from a syndrome best described as being unable to see the trees for the forest. Adhering to the software development life cycle, which is solution driven, will help balance customer expectations and the mechanics of product development. The remainder of the chapter includes other considerations that should improve attitude.

Passion

Passion. This word is important even for developers. I have found the best artisans to be passionate about their craft or some aspect of their current project. Would you hire a plumber who hates plumbing? What airline would hire a pilot who hates flying? If so, make sure your life insurance is paid in full before booking a flight on that airline. Passion translates into interest, curiosity, and focus, which are essential ingredients for a good developer. If you lack an interest in your work, you will have a tendency to sleepwalk. You cannot sleepwalk through programming. If you are an avowed geek, where anything that has ones and zeros is interesting, skip the remainder of this section. For the rest of us (the majority), choose to work on problems, projects, or technologies where you have a keen interest. Work in an environment that keeps you stimulated. It may be as simple as working with a team of smart developers. Using whatever means possible, find the passion in your work, or select something else to do.

I am presently managing a startup, which is developing an online debugger for Windows and other applications. The Chief Technical Officer is Oleg. The primary reason for that position, other than that he is an incredible programmer, is Oleg’s passion. For most, debugging is forced behavior to be avoided whenever possible. However, Oleg is passionate about debugging. I am confident that Oleg takes crash dumps and debugging logs on vacation to read on the beach. Most importantly, this passion has translated into innovative, stable, and correct code. When there is a problem, I know Oleg will make time to investigate the problem and implement the best solution.

Tip

Tip

Be passionate about the technology, project, or problem.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.20.231