This week, Stephen Ibaraki, I.S.P., has an
exclusive interview with Thomas Moore.
Thomas Moore, (MCSE, MCSA, MCDBA, MCSD,
MCT, CTT+, Net+, CSE, Computer Programming Technician RPG, Data Processing
Technician COBOL, Systems Analyst, Mainframe Chief Operator, Computer Science
Coordinator, Tech Education/LAN Manager), has been in the computer industry for
more than 25 years. Tom has a wide variety of expertise in all hardware
environments and with most Microsoft Server products. His first and lasting
love, besides his wife and family, however, is programming. Tom is comfortable
in any programming language environment. Tom achieved his MCSD and MCDBA
certifications from their inception and his MCSE since NT 3.51. Over the past 15
years Tom has been working for a variety of Microsoft partners (including 3
years as an independent trainer/consultant) and currently is a Developer /
Technical Consultant for Diamond Municipal Solutions in Paris, Ontario, Canada,
where he has been for the past three years.
Moore�s many writing credits include:
-
Designing and Implementing
Databases 0-7897-3106-1 (Author)
-
.NET Solutions Architecture
0-7897-2929-6 (Contributing Author)
-
Microsoft Certified Systems
Admin 0-7897-2766-8 (Technical Editor)
-
SQL Server 2000 Database Design
0-7357-1129-1 (Lead Author)
-
SQL Server 2000 Database Design
0-7897-2997-0 (Lead Author)
-
SQL 7 Database Design
0-7357-0040-0 (Author)
-
Visual Basic 6 Programming
0-7357-0002-8 (Contributing Author)
Tom�s latest offering, �MCAD/MCSE/MCDBA
70-229 Exam Cram 2: Designing & Implementing Databases with SQL Server 2000
Enterprise Edition� is attracting considerable attention. This comprehensive
reference guide also comes with the popular "Cram Sheet" tear card
for your last minute cram sessions, and the accompanying CD includes a practice
test engine powered by MeasureUp. Readers will also benefit from the community
support at www.examcram2.com,
which features industry news, study tips, practice exams, and discussion
boards.
Tom enjoys staying up-to-date, although
like most of us, finds it a challenge to keep pace with the industry.
Discussion:
Q: Tom, you have a long history of
demonstrated excellence in many areas. Thank you for taking the time to do this
interview.
A: Thank You, Stephen. True with the many
projects I have on the go there isn�t much extra time, but it is nice to just take
a break, sit back and reflect on the past while looking to the future.
Q: Tom with your 25-year background in
computing, how did you get into the field and how does one sustain such a long
career?
A: I had my first feel for computers back
in high school when I was in grade 12. It was an introductory computer
programming course using bubble cards that you filled in with pencil. I liked
programming right from the start. I was always strong in mathematics and logic
and found programming to be the perfect niche in which to exercise the skills I
had developed. After speaking to my guidance counselor and reviewing the many
colleges and universities throughout Canada,
we selected one that had a strong reputation for developing technical graduates.
I have to thank my mother for ensuring that
I had strong work ethics and a solid chance at a future through being well
educated. My mom raised three kids on her own and all of us finished college
with good marks. By the time I was 17, I had given Mom a lot of grey hairs, but
I was nonetheless in college after completing high school with top marks.
It was soon quite obvious that I had made
the right choice in selection of colleges as the course and my instructors
surpassed my expectations. In college I was able to excel finishing in the top
3 percent of my graduating class. Leading our Analysis Team and English Troupe
were among the highlights of my studies. I also was very involved in study
groups and athletics where the teams that I participated in were very
successful.
I entered the industry at a very young age,
graduating on the honour role and beginning my first position before my 20th
birthday. I have always performed well under stress and particularly well in
interviews. Within three months of my graduation, I had a foothold and was well
on my way to a long career in IT.
It really isn't that difficult to sustain a
long career in any industry. The challenge, more often than not, is to maintain
your interest levels without burning out. You have to like what you are doing
and be willing to grow and adapt as the industry changes. I am truly passionate
about the work I do and throw a lot of emotion into my work and my writing. In
my opinion it's really the only way to succeed without becoming used up in the
process.
Q: Earlier in your career you taught
computers and programming to children. What are five main principles for
engaging children and creating passion for IT?
A: First I must say that children are much
easier to teach than adults. Adults tend to require explanations as to �Why�
they are doing a particular task. Not that the �Why� type questions aren�t
warranted at times, but with adults it often becomes a barrier to the learning
process. Children, however, are like gigantic sponges that always want more
once they find a topic of interest. I would have to say that the five
principles I would select in engaging children are:
-
Work with their natural curiosity. Let the potential results drive
their interest forward.
-
Allow the use of Imagination. There is really no limit to what can
be done. I have always believed that the easiest question to answer when
dealing with computers is one that starts with �Can I�. The answer, in my
opinion, is always YES, though the exact details of the solution may not have
been discovered yet.
-
Children are very resourceful. Challenge the students to discover a
solution on their own before �checking the back of the book for the answers�.
-
Make learning fun. Enjoyment is the key to developing a relaxed
learning environment. Something I live by and always ask my students whether
they be children or adults: �If you are not enjoying what you are doing then
why are you doing it?�
-
Children and others like to have recognition for what they have
accomplished. Encourage everyone to share their results, whether a success or
something less than perfect. Share what you have achieved with others so that
both you and other people can learn from what you have done.
Q: You have a strong background in training,
including training instructors. What are the ten top attributes that make for
an effective trainer? And, what are the ten keys for effective training?
A: These two sets of elements are very
closely related. Let�s see how good I am at matching up my personal attributes
to what I think the keys to be.
Effective Trainer
-
I always like to think of myself as a very personable individual who
gets along well with others and can empathize with the experience of a variety
of individuals.
-
I like to learn. I heard once that you live longer if you stretch
your mind both vertically and horizontally. If that is the case then I may just
live forever as I continually drill deeper into my own field and I am
constantly delving into projects that require other fields of expertise.
-
I believe in the products that I use. I work daily with the
technologies that I write and speak about. I am always exploring any areas that
are unknown and practice with elements I use less often.
-
I am a very confident speaker. I enjoy the work that I do and love
to talk about it. I freely share the knowledge I have attained with others. I
am always described as a passionate person by the people I work with. I love to
�work the audience� talking back and forth and creating a true dialogue in any
presentation.
-
I am not perfect, far from it. It�s true. I am not afraid of failing
nor am I afraid to admit when I am wrong. I believe that you only truly fail if
you never try. Every failure is simply an opportunity in disguise.
-
I am very goal oriented. At
every stage in my life I have set goals for myself. Once I reached any
particular goal, I reward myself in some manner which I feel is an important
aspect of the process. I then set the next goal. Any goal you set should be Reasonable, Exact, Appropriate, Calculable and Honest. When you REACH
for a goal you will progress further and faster.
-
I am a very focused individual able to use extreme levels of
concentration when working. I find at times when studying or working on a
project I am able to block out the rest of the world to completely absorb
myself in what I am doing.
-
I feel that one of the best qualities that I bring to any table is
diversity. Over my lifetime I have been involved in many industries and had
such a wide array of experiences that I can contribute to any organization on
many levels. I am equally comfortable with doing the planning and budgeting for
a project as I am with being in the trenches or doing the clean-up.
-
Patience is a virtue. You have
no doubt heard the expression before. The classroom seems to prepare you for
having a family and vice-versa. I don�t think I was always this patient but
raising three children has certainly helped. Teaching young adults, barely past
their teens, has provided benefits. Having been married for 17 years and
working through relationship challenges have no doubt also contributed.
-
As stated earlier analytics,
mathematics and logical thinking are all skills I have possessed throughout my
life. These are skills used daily in everything I do. As a programmer they are
in essence my life's work. When faced with diversity these attributes help me
through any sticky situation.
Effective Training
-
Effective training begins with the ability to establish a rapport
with your audience. You must be able to analyze the group you are working with
and come at the material from an angle they will understand and be able to
relate to.
-
As an effective trainer you must establish yourself as an expert in
the field early in the presentation. Sometimes this is simply an introduction
of yourself and what you do but in a classroom where the students are more
knowledgeable you will need to go deeper into your background and
accomplishments.
-
Know the material you are presenting and lay it out in an orderly
fashion. If you feel comfortable doing so, practice in front of a mirror or
present the material to your peers. Practice your examples and demonstrations
so that you know them by rote.
-
Being able to think on your feet is an important aspect of a
successful trainer. Inevitably things will go wrong in a presentation and you
will have to be able to cope with the issues and work through them with many
people watching your every action.
-
Be honest with the group you are presenting to. If you don�t know
the answer to a question, admit it. You can always respond with: �I�m not sure
but I will check into it�. You gain the respect of the audience and establish
yourself as a human being, not some kind of hero. Always, however make sure
that you DO check into it and that you get back to the individual who asked the
question.
-
Have a purpose for your presentation. Share your expectations with
your audience. Divide any presentation into segments and establish criteria for
each segment that you attain with the group you are presenting. Ensure that the
subordinate goals are reached by the audience before leaving a section to move
on to the next.
-
When training you must keep topics on track deviating very little
from the scope of what you are presenting. You will receive queries from your
audience that will provide for some minor wandering off topic but you must be
able to steer the material back to the original content.
-
One key to a quality presentation is to have an assortment of
examples and analogies. It is often helpful to draw upon your own experience
even when in unrelated areas. To illustrate complex concepts you must draw
comparisons to a variety of easily recognizable elements.
-
In front of the classroom you must be able to express each concept
in terms the student can relate. Often this will require restating information
using a more elementary perspective. When questioned you may even need to
express the thought in a third or fourth manner. A great deal of patience will
assist in handling this diversity.
-
A strong finish is needed for
any delivery to be successful. You must be able to summarize, restate and
clarify the entire lesson in a concise manner. Using some posing queries you
must analyze the audience to ensure that they have captured the material and
will be able to apply the concepts learned.�
Q: What motivated you to get into writing?
How does one start writing books? Which attributes make for effective writing?
A: I have always been interested in
writing. I was fortunate in my high school years to have been mentored by Mr.
Frame, an English professor and fabulous educator. I was able to complete two
works in my final year that were published along with a collection of works
from others in our Creative Writing class. One of the pieces was a lengthy
sonnet and the second an original screen play.
I didn�t revisit writing until I had been
chosen to speak at the First Annual MCPMag TechMentor conference after becoming
one of the first 100 MCSD's (Microsoft Certified Solution Developer) in Canada. My
presentation was about the MCSD and the skills and requirements needed to
achieve the certification. At the conference I was approached by Steve Weiss,
the acquisition editor at New Riders Publishing to do some work for a Visual
Basic Training Guide. After contributing to that publication I was again
approached by Steve to work on a manuscript of my own, in an area I consider to
be my "home turf". With that I began writing my first book dealing
with SQL Server 7 Database Design.
Starting a book begins with a passion for a
subject, a desire to share your thoughts with others and the time to put your
thoughts together in a meaningful manner.
You begin the actual process of writing by
outlining your subject material and organizing the material into chapters. From
this initial outline of the book you can begin formulating the material for
each chapter and delineating the points to be covered on each topic. You can
then begin the process of researching the content and fleshing out the material
one topic at a time.
I find that for me writing is much the same
as teaching in a classroom. The biggest difference being that the material you
are presenting will be consumed by one individual at a time. A lot of the same
attributes of a good teacher are also the qualities that make a good writer.
To write well you have to be comfortable
with the editing process and be willing to take constructive criticism. Each
topic will be written and rewritten several times before it is ready to be
released to the public. It is not uncommon for me to go through the material
seven or eight times before producing the final copy.
Q: Choose three of your previous books then
provide five unique tips or best practices from these books?
A: 1) From the �Fast Track publication: SQL
Server 7 Database Design�
a)
Normalization rules govern the efficient design of a database to
minimize data redundancy. Denormalization is the process of purposefully adding
redundancy to improve system performance and reduce associated overhead. In the
implementation of any database model, a balance between normalization and
denormalization is required.
b)
Business rules coincide with the company's business goals. When you
implement a database design, business rules and constraints help you maintain
data integrity and focus the system design to meet business goals.
c)
The fine-tuning of a database implementation is never completed.
Adjustments (tweaking) should be made regularly. Monitor performance during use
in a live environment to recognize the areas where adjustments are needed.
d)
Views provide a method of controlling what the user sees (how they
see it), and the operations they can perform without the need for the full
administration of table level permissions.
e)
The optimization of SQL Server performance is a combination of
hardware, configuration and database design coupled with the appropriate
knowledge to utilize the resources available to achieve the optimum results.
2) From the �Exam Cram 2 publication: .NET
Solution Architectures�
a)
The secret behind users of the system accepting the system is to get
them involved early in the development process. Try to implement users' suggestions
and above all ensure that the people using the system understand what the
system is supposed to do and what it is intended not to do.
b)
Training and an education plan should work along with system
documentation. While documentation is being prepared, appropriate training
materials should be developed.
c)
Anything missed in the conceptual design becomes harder to implement
further along in the project. Heaven forbid the coding be finished only to find
out that major elements need redesign.
d)
There are many advantages to using ORM (Object Role Modeling) in a
database environment. Major entities stand out and those entities become
tables. The relationships that have already been modeled become one of many
constraint implementations in the physical database structure.
e)
A data model is the result of developing the logical design for a proposed system and ends up being the definition around which all applications
in the system must work.
3) From the �QUE Training Guide: SQL Server
2000 Database Design and Implementation�
a)
The Master database is crucial to the operations of SQL Server and
should be considered as important as the most mission-critical database stored
on the server. If it becomes damaged the server ceases to function.
b)
You seldom want SQL Server to share a machine with other
applications, and certainly a SQL Server should never share a machine with a
security server such as a Domain Controller.
c)
Joins are the backbone of relational databases; they actually apply
the "relation" into the table structure of the database system.
d)
Physically, SQL Server performs operations such as joining tables
and filtering data in a WHERE clause, in whatever order it decides is fastest.
e)
SQL Server is all about reporting, if you think that the database
you're designing is for storing data, you are looking at design from the wrong
angle. A database should be designed for quick and efficient retrieval of data.
Q: From your latest book, �Designing and
Implementing Databases�, share with the audience, the top five tips.
A: There are so many tips throughout the
book that it is difficult to select the "top" five. My writing has
really matured since I began the process several years ago and I really believe
that this is my best work so far and I have not nearly reached the pinnacle within
me. I can easily select five tips, and though not necessarily the
"top" five associated with database design, a few of my favourites
are:
-
You will want to enable the use of personalized menus to gain the
full use of the SQL Server Books Online help facility. One facet of the help
facility is the capability to mark favorites and maintain a list of topics you
want to revisit. The feature is not available if the option is not set within
the Windows taskbar properties.
-
In almost every scenario, object ownership within a server should be
limited to a single user and that single user should be dbo.
-
Caution should be utilized when examining a server with the SQL
Server Profiler. The toll can affect overall performance, sometimes
significantly, so use it sparingly in a production environment that relies on
performance. Remember to turn the profiler off as soon as you feel that the
necessary information has been captured.
-
In previous releases of SQL Server, you could use triggers to help
enforce referential integrity constraints. This was difficult and required that
you eliminate other elements, such as Foreign Key constraints. In SQL Server
2000, it is far more efficient to use cascading actions.
-
Use Backup/Restore to move copies of data over long distances, particularly
when there is a large amount of data to be moved. A CD/DVD can be couriered
faster than electronic transmission of data over a slow WAN link.
Q: You have written countless certification
exams. What are your ten lessons learned for having exam success?
A: I think I am somewhere around 60 exams.
Most of them are Microsoft exams but I have also taken technology exams from
other vendors. I am currently working on my Municipal Accounting Certification
which really isn�t related to technology at all. When asked to provide an
example of one of my talents at a recent informal gathering at work, I jokingly
stated that if they could dream up some questions, I would demonstrate the
talent I have for taking (and passing) exams.
-
The first and most important of any advice I could give would be to
use the product. There are many individuals who try to shortcut their way to
certification through the use of braindumps and other resources that can give
the exam answers without providing the knowledge. In the end the truth always
comes out. Once an exam is passed, employers and other professionals expect you
to know the product and be able to successfully implement the product. You will
not hold a job long if you cheated yourself in passing the exam.
-
Explore the product documentation. This means that you should be
frequently delving into the product�s help facility and reading any white paper
you can get your hands on. Every answer to every exam question is somewhere
within the documentation.
-
Make a point-form list of information that you find difficult to
remember. Some of the exam material will be based on information that you must
memorize. If you review this fact sheet right up until the minute you walk in
to start your exam you can make use of your short term memory. The exam doesn�t
actually start until you click the exam start button on the screen. When you
sit down in front of the computer, don�t immediately start the exam. Begin
writing down the information you had on your fact sheet so that it is easily accessible
when you get to a point in the exam that covers the topics. I once spent about
45 minutes recording information for a TCP/IP exam before I actually started
the exam. On my exam work papers I had prepared full subnet crib sheets, port
assignments and other pertinent information. Not so coincidently it is the
highest score I ever achieved on any exam.
-
Get yourself a study buddy to help prepare. Quiz each other on the
material you are studying. Try to stump the other person. Make a game out of it
and enjoy the knowledge you are acquiring. When I first started taking
certification exams back in the mid 90�s there were three of us preparing
simultaneously. Each time we passed each other at work we would throw out a
question (or answer). This made the process of studying and taking exams far
less stressful and more enjoyable.
-
If you are new to a subject then it will often help to take a course
from a reputable training center. There is nothing like having the information
presented to you in a formal manner where your focus is solely on the topic.
You are learning from someone who has already passed the exam, obtained first
hand industry experience and for the duration of the course is an open book for
any questions you may have.
-
Get yourself a good resource manual. (Editor�s note: Any of the
books Tom has written are excellent choices.) Get a resource that you can
easily take with you when you travel. When I study there are publications that
I like to have around, you will even find books in my bathroom for when I'm
having "private time". It is surprising where you can fit a few
minutes of extra studying into the busiest of schedule if you have the
materials with you all the time.
-
Leave no stone unturned. Every software vendor has a knowledgebase
full of information waiting to be read. It's all free and readily available on
the internet all you have to do is go look it up. There are many third parties
that also have information available that will help flesh out individual
topics. A quick Google for denormalization, for example, returns more than
25,000 web sites that can provide information on applying the principles.
-
During any exam gauge your time well. Try to leave enough time to
review answers at the end. If a question is taking a long time to figure out it
is often best to mark it for review and continue with the rest of the exam. You
may even want to take your best guess at an answer, mark the question and come
back to it later. In this manner no question is left unanswered if the time
does run out. C is usually your friend in this case as studies have shown that
the more of the answers in any given multiple choice exam will be C than any
single one of the other answers.
-
Be well rested and prepared. A lot of procrastination often happens
when taking exams. The last minute or late cram session the night before does
little to help better prepare you for the material on the exam. You are far
better off having a good meal the evening before the exam and a good night's
sleep. There are many foods that seem to make the mind more alert, salmon and
tuna and other seafood seem to be helpful. There are foods the help the brain
and foods that drain the brain. A good resource for nutritional foods I have
found to be helpful in the past is on the Internet at http://www.askdrsears.com/html/4/T040400.asp#T040405.
By having a good meal and being well rested you put your body and mind into the
optimum condition to think and work under pressure.
-
Keep your studying focused
and in scope. It helps to start with an outline of the topics that the exam
will cover. All of the exam vendors offer these outlines which will both make
sure you cover all necessary topics while also keeping you from straying away
from the actual exam material.
Q: Throughout your career, what were your
top five challenges and how did you overcome them?
A: It�s an odd situation but I respond very
positively to challenges. There is something very alive within me that will
drive me forward allowing me to succeed and overcome any problems I face.
1) The first challenge that I remember
facing that caused substantial stress was when I was stepping in front of the
classroom for the first time at 24 years of age. I was to be teaching computer
business applications at a private community college and was the youngest
person in the class.
I was fortunate that this wasn�t a unique
experience for me. When I was in college at age 19, I led our Systems Analysis
team and completed a substantial project. Once again I was the youngest member
of the team. It was my role at that time to present the bulk of the material to
the graduating class.
In this and similar situations I draw upon
my two secret weapons, humour and honesty. Tell them you are nervous, joke
about it a bit, present your credentials and suddenly your age is forgotten and
you can continue as an accepted member of the group.
2) One of the biggest challenges I have
faced, and in fact still face, is balancing my professional and private lives. It
is very important in this respect (in particular if you are a work-a-holic like
myself) to set aside family time and try to ensure that your family stays as
the highest priority above all else in your life. Sometimes this requires a
little reminder from the people that are closest.
I have a lovely wife, Joy, of 17 years who
always stands beside me and supports my decisions. Joy knows better than anyone
that I have a tendency to say �Yes� to any request that comes my way. Joy will
help me organize the schedule and always is there to support the household when
I am under a deadline. I consider meeting Joy, the most singular reason for my
being successful both in life and in my career. I could have chosen so many
other paths to take, but with Joy�s guidance and help I have become a better
person.
The support doesn�t stop with Joy. My
eldest son Danny (14) takes on huge amounts of responsibility with very few
complaints. Danny will free up his time so that Joy and I can have some
personal time of our own. He will also baby-sit and care for our other two
children, Maxwell (10) and Chelsea (18 mos) upon a moment�s notice. Max helps
out as well and doesn�t mind amusing Chelsea (and
keeping her away from the computers) when dad is working. I truly feel thankful
on a daily basis for the family I have been blessed with.
3) It is always a challenge being in a new
environment. Whether it be a new place of work or moving to a new city each new
setting is like entering into an unknown world. I have found myself in this
situation frequently. As a consultant I was essentially in a new city every
week. In one 12 month period I had been to clients in 30 different states in
the US and three Canadian provinces.
For three years as an independent trainer I
was traveling around North America teaching programming, database development and operating systems
integration. I enjoyed the travel aspects but it was lonely on the road, away
from my young family.
As a family we have moved around a lot when
Joy had just graduated from college as a nurse. I am not one to be known for
good timing during these moves. We moved to Ottawa, perhaps the coldest city in Ontario, in
February. From Ottawa we moved to hot, arid Texas, with no air
conditioning in our car, in July. A year later we were moving to North Carolina in
the wake of hurricane Bonnie. Comparatively I have had very few full time jobs
in my life. Once I find a place I liked to work I seem to stay for a while.
When you find yourself in a new
environment, you turn into an explorer. Even finding the local grocery store
can be a challenge in a strange city. The best advice I can give is to treat it
as an adventure. Enjoy the new experience. On a new job strike out to meet the
people you work with. Find out what you have in common with your associates and
above all else, have fun.
4) It is odd going into the classroom each
week and seeing the next group of complete strangers in front of you. The
people I teach come from all walks of life. Some are retraining for a new
career, others are trying to move ahead in their current job, some are
hobbyists and others are trying to cope with new software and technologies. You
have eager pleasant students and as well as people that woke up on the wrong
side of the bed (to be polite about it). Occasionally you have the pleasure of
teaching a new product to exceptional students who teach you at the same time
and on the flip side you have the individuals who can�t seem to grasp the
concepts.
You face a variety of challenges and
overcome them one at a time. Although never having met most of the people I
teach, I always seem to make at least one new friend by the end of the week. I
try to turn the grumpy ones around and get them laughing and enjoying the environment.
It's helpful to pair up individuals with very little experience with someone
who is already working in the field. Turn the "smarter" students into
the teachers and pair them up with someone who is having a challenge with the
material.
5) At Diamond Municipal Solutions, we do a
wide variety of implementations. Our programming is strongly influenced by
government legislation. Every municipality has different by laws. Customizing
the current environment, modifying reports implementing third party tools are
all done differently from client to client. Magnetic Ink, bar coding, radio
frequency utility meter readers, hand held devices and a wide array of other
cutting edge technologies are used. Programming is performed in Dexterity,
Transact SQL, Visual Basic and C#. Offices in Fargo ND, Edmonton AB and Paris ON are connected
by Cisco routers and there are countess servers, desktops and laptops that
constantly need attention.
With all of this variety it is impossible
to do everything yourself. It is amazing how our Technical Support helps each
other. Technical Support is part of a bigger team, Professional Services, who
all operate with an amazing level of cooperation. Profession Services is a
member of a larger team, The Diamond Team � all have proven to be an assortment
of unique personalities. Any team that works this well together, aiming toward
common goals, is truly going to find that the unit as a whole is far greater
than the sum of all of the parts.
Q: Describe your current job.
A: To make a long story short and forgo
merger details. I began in August 2002 with a Microsoft MBS Great Plains
partner, CompuPower Systems Ltd. We were partners with Diamond Software, a VAR
Utility Billing, Property Taxation and Municipal Application Software vendor.
The two companies merged and became Diamond Municipal Solutions.
I am in a wonderful position where �variety
is the spice of life�. I am fortunate to work with some very amazing
individuals. The management team is like no other I have ever seen at any
company; friendly, approachable, understanding and always striving to do the
best they can for their employees.
I am continually doing different things and
working with state-of-the-art technologies. At the heart of my job I am an SQL
/ Dexterity programmer. In this position I write code (surprise, surprise).
Collectively the Development and Technical Consulting teams write in SQL,
Visual Basic, C#, Dexterity (Great Plains Accounting proprietary language) to
build solutions that are used by municipalities with some penetration into the
corporate market place. Our two main products support Property Taxation and
Utility Billing but we have many other related products. (For a complete list
you can visit our corporate website www.diamondmunicipal.com).
I spend about half of my time at work doing coding.
When not writing scripts, there is a vast
assortment of duties to keep me from getting bored. I am the technical go-to
person when the two-man IT staff in Paris is away from
the office. Between the three of us at our office and another individual at our
head office, we support a Windows 2003 Domain installation that includes LOTUS,
Exchange, ISA, Cisco VPN connecting three remote sites, IIS, SQL Server and a
huge array of applications including Business Portal, SharePoint, and CRM just
to mention a few. I help plan the yearly client conference; prepare and present
material at the conference; prepare documentation and chart out the system
processes (as do all the developers).
Periodically they let me out of my cubby
hole and I go onsite to client locations to do implementations, training,
reporting, troubleshooting, fine tuning and other duties as requested by the
clients. This is a very enjoyable aspect as I get to directly interact with the
people that use the products I create.
One role that I find rather curious is the
amount of accounting I need to know to do the coding, reporting and other
duties. This amazes me as I have always disliked accounting though I was
capable of doing it having taken five years of accounting courses blended in
with my schooling. Through Diamond I am currently working towards a municipal
accounting designation that will fit proudly with the technology designations I
currently hold.
Q: Illustrate using a case study approach,
three solutions you have developed for your clients. What lessons can you pass
onto other developers?
A: 1) One of the earliest solutions I had
to develop was a system that would produce commission figures for a multilevel
marketing system. The client was selling consumable products, mostly snacks,
which would be sold by a hierarchy of individuals. Each individual has a
down-level line and up-level line that had to be worked into the equations.
At the time this was quite an undertaking,
the company was a small one with only a singular PC computer and no other
technology. The computer was very slow (286, I think--it was a long time ago). Many
of the routines needed were complex and would take hours to process.
I was doing all of the programming using an
early version of dBase. After a couple of weeks of agonizing over the
situation, I finally decided to rewrite some of the routines into C. I was
relatively new to C at the time but found I could produce the same results in
about a tenth of the time that the dBase routines would take.
I thought that I could still possibly
improve the performance and changed the C compiler I was using. I switched over
to Turbo C and was able to achieve the performance goals I was after. This
change brought about another improvement in some of my coding routines and the
final procedures would now run in minutes instead of hours.
2)� I
was once presented with a unique challenge that seemed rather impossible given
the functionality available to me within SQL Server. SQL Server can fire alerts
based on conditions in the data, but what if those alerts need to be audible.
It was an opportunity to put to the test, the theory I have always had that
nothing was impossible.
The challenge was to have audible alerts
identify situations that occurred within the data. As it turned out I was able
to derive a solution that could do far more than just perform the alert
functionality. My solution reacted to changes in the data and dependant on what
the change was would play one of a variety of .wav files on one of the machines
selected to receive the alert. You talk about your bells and whistles, on this
occasion, there truly was a lot of noise.
3) Another unique solution happened as a
result of having to perform specific maintenance routines upon demand in a
location where there were no technical individuals capable of handling the
tasks. One of the clients I had in Raleigh needed me
to be on site to perform activities on a regular basis; something that was not
possible with my traveling all of the time.
The solution I derived would allow me to
send an email to the server and based on the contents of the email the server
would perform a predefined set of tasks. I could even send an email that
contained a unique task that was not defined as one of the original routines.
B) �As
a developer you are never really restricted within a singular technology or
software environment. The proper approach to programming should lay out a
solution in a logical framework. Using diagrams and models you can plan the
elements needed n the system before determining the approach to be taken in
implementation.
Use an approach where you design a system
without selecting the specifics. Elements of the physical design such as
database platform, coding environment, programming language and infrastructure
tools should wait until you have a full model of what is needed to be
accomplished.
As you work through this process,
brainstorm possibilities for different areas of the solution. Try not to come
to any preconceived solutions about the products that will be used in the
solution. As illustrated in the three solutions I have talked about earlier you
can cross boundaries and use technology outside of the standard realm if it is
going to accomplish the tasks you set out to perform.
Q: Amongst the many development languages,
tools, resources, and frameworks, which are your favorites and for what
reasons? How do you see �development� evolving into the future?
A: Funny as it may seem I still feel that
the language I know the best is COBOL. I don�t know if it is my favourite and I
always found it rather hilarious to consider the concept of Object Oriented
COBOL (oh please won�t you just let it die). I would have to say that my true
language favourites would be C (in all of its various flavours) and SQL. I
enjoy programming in C because of its efficiency flexibility and speed of
execution and SQL because of the unique techniques in which you can command
data and provide logic within a singular statement structure.
Of the tools I use daily, I enjoy working
with Microsoft Visio. There are so many different possibilities for diagramming
a process. There are a variety of other similar tools available but I find
Visio to have the toolset that best applies to the work that I do day-to-day. For
most of the graphic images found in my books, believe it or not, I use Paint
(free and does the trick). I also use Paint to get images into Dexterity, works
like a charm.
The most frequently used resource for my
development and writing would have to be the Microsoft web site (but only
because SQL Server Books Online is also contained within the site). For pure
breadth of material available I don�t think there are many companies that can
boast the amount of information that is at your finger tips through the MS
site. Perhaps possibly the US
government has as much information but have you every tried to find what you
are looking for on a government site? And you more or less understand the
material that is presented when you do find what you are looking for. Second
would be the MCT Private Newsgroups. I have been involved in the MCT community
for ten years now. I am always impressed by the amount of knowledge to be found
within that group. I can literally pose a question and have ten individuals
respond within the hour.
For frameworks and coding environments, I
am really enjoying all of the new technologies about to be released by
Microsoft. I have been using the Visual Studio 2005 Beta and the SQL Server
2005 Beta for a few months now and find the direction these products are taking
is exciting. One of my favourite technologies within SQL Server is what is
being done to support XML. SQL Server 2000 supported XML but it was very
complicated and clunky. XML was too difficult to even apply in many instances.
Now with an XML data type and new techniques for using XML it is much more
realistic to do the coding from the server side. I also like the common
language runtime environment that will allow you to code stored procedures in
many languages.
Development in the future is likely to
become even more modular than it is now. Individual components that can be
reused in many systems has always been a winning approach. This will be
stretched into areas that have only just begun to be explored. Sharing
processing over multiple machines with on the fly calls to other computers on
the network in a shared processing environment will definitely be part of this
process.
Another thing that developers increasingly
have to become part of is environment security and system security in general. As
security changes occur over multiple machine systems, the programming required
changes as well. What used to be solely the job of a sys admin is now
technology that the developer has to be aware of to keep his programs running
smoothly.
Q: Which five technology areas excite you
the most and for what reasons?
Well, I think for starters I will pick a
few Microsoft technologies and applications that I work with day-to-day.
Microsoft is often deserving of the flack they receive over unfair competition
but almost unanimously in the industry, you have to admit that they have also
done more than most companies to push innovation into their products (all be it
many of the innovations are rather rough at first). Another area of technology
I would choose centers around security, copyright, file sharing and freedom of
speech. I am also interested in large scale data operations and have been
digging into multiple server configurations to store enormous amounts of data.
A: 1) Something that was "all the buzz"
around my workplace within the last couple of years is the changing of the
Microsoft Business Solutions products from a set of accounting solutions into a
singular solution. Microsoft has traditionally marketed four tools (Great Plains, Solomon, Axapta
and Navision) in this area and for several years they have been talking about
combining all of the technologies into a singular tool. At the same time they
have also released a fifth tool (Magellan) aimed at smaller accounting
implementations. It seems rather confusing as to which direction MS is moving
in, but it would appear that we are not likely to see a singular product for a
few years.
Product improvements within the Great Plains environment will
no doubt come fast and furious leading up to an amalgamation of software. A
move away from the slow and inefficient Dexterity model and into the .NET model
has already begun. It will be very interesting to see the version 9 product
coming out in the December/January timeframe.
2) SQL Server 2005 has some real cool
features for developers and is equally exciting from the database
administrator's perspective. Administrators have been waiting a long time for
database mirroring which will now come true in the new product. Equally
exciting from an admin's perspective is failover clustering and the new
security implementation.
From the developer's point of view, .NET
Framework and the Common Language Runtime integrations allow developers to
exercise a wider variety of options in coding database systems. As I mentioned
earlier the XML model has come a long way from the mess it was in SQL Server
2000. A redefined services model for notifications and reporting add to the
wealth of new features built in to this new engine.
3) Software copyrights, security and encryption
are truly interesting areas of technology that directly affect my livelihood. I
have grown to dislike CD keys as they seem to serve little or no use at all.
Just about everyone I know has accessed music online or gained a copy of a book
or software through less than legal avenues. Digital signatures, file encoding
and other new mechanisms are popping up all the time. Every time you see
something like this popup about a month or two later someone else comes out
with the crack.
The oddest part of this commonplace
practice is that you see musicians downloading material from other musicians,
programmers trying to get free software that others have developed and writers
accessing the written works of others. Most individuals don�t seem to stop and
think about the practices they are supporting and in fact they are really
shooting themselves in the foot.
It is a constant battle for authors,
musicians, software vendors and artists to actual acquire the compensation that
they deserve. Legislation in most countries are trying to help but it is much
too little too late. I feel there is a need for different business models that
would help acquire some of the missing revenues, but there will always be
someone trying to get something for nothing.
Most users of the Internet have begun some
form of file sharing. Peer-to-peer networking is responsible for a large
increase in bandwidth use. Currently I am unsure of the solution but I am
continually researching the new laws and technologies affecting copyrights.
4) Mainframes and minicomputers used to be
the only solution to support any large scale data storage. With today�s
technology there are amazing things that you can accomplish at a fraction of
the budget that will support large scale operations. VLDB (Very Large Database)
technologies include those traditionally supported platforms as well as a few
new �kids on the block�. Still the big three database platform players in this
category remain Oracle, Microsoft and IBM.
The hardware available these days far
outperforms what was available only a few short years ago. Processing
methodologies have also improved so that this topic isn�t just about the
database engine but it really involves four main components; the database
engine and design of the database itself;� the hardware supporting the database engine and data; the infrastructure
surrounding the system and the application design that will interact with the
system.
This topic covers the complete gamut of
data technologies. XML, Stream-based Processing, Data Mining, Web Services,
Database Design, Advancements in Hardware and many others. A data aficionado
like myself is always enthusiastic by bigger, better, faster systems.
5) For my last selection I will take a
little bit of a different approach. After all technology is a broad topic and
it most certainly isn�t all just for work. I enjoy working with graphics. I
have an obsession for music of almost any origin. I am always rewiring my house
to get music into every room and allow computers to be connected together. I
would like at some point to have my whole house automated through computer
systems. Joy will never let me get away with it but it�s a nice dream. I
minimally will unify all of the entertainment equipment so that entertaining
can take on a more multi-media flavour.
A little bit of networking, some advanced equipment.
Throw in some of the latest pieces of technology and every level of the house
and the outdoors too will be at my disposal. Wireless has come a long way in
the last few years so as I move toward the automated house, Joy will at least
be pleased that I can do so without wires running through all of the duct work.
Q: Here is where we turn it around. Pick
five topic areas of your choosing and provide commentary.
A: Area 1:
Microsoft will soon be changing all of their
certifications. I have mixed feelings about this but I suppose overall I am in
favour of the move. The MCSD and MCDBA certifications are at the end of their
cycle. When support for the current development and SQL Server platforms cease
to exist so will these two certifications. With the release of Visual Studio
2005 and SQL Server 2005 comes a new set of certifications. The MCSE will also
fade away with the release of the next generation of Microsoft server operating
systems, Windows Vista (code named Longhorn) in late 2006.
The first news of the changes came in the
form of the announcement of the Microsoft Architect certification. Of the set
of the new certifications this is the one that least excites me. The Architect
program, in my humble opinion, will be an elitist club of people close to
Microsoft. I don't see the average person who has the qualifications even being
the slightest interested in it. (I certainly am qualified but have no interest).
The way I understand it from a break out session at Tech-Ed conference, the
certification people listed some of the criteria for MCA candidates:
-
8 to 10 to 15 years experience
in the field (depending on who you ask).
-
Experience with an
infrastructure solution in the $50,000 to $500,000 range that lasted 9 months
to a year.
-
A detailed knowledge about a
wide variety of technologies not just in the Microsoft arena.
-
At least initially, candidates
will be admitted to the program only by referral from an existing MCA or in
rare cases by filling out form on a website.
-
Here is the kicker, 4-5 figure
cost. Minimum $9,000 to get into the program with no guarantee you will
actually pass through the board review.
Information about the other certifications
has been sketchy at best but there will be a lot of information in the news
soon. I can't help but think that Microsoft is still working through the
details as they have been very guarded about the amount of information being
released.
Area 2:
Haven�t you had just about enough of
viruses. Some companies are seriously trying to eliminate the presence of these
annoyances, while others seem to be just going through the motions. On one hand
Microsoft offers up a large reward to apprehend the Sasser author. Microsoft
established a 5 million dollar fund to apprehend the creators of viruses that
attack computer systems. A $250,000 award was given to the informant that led
authorities to the arrest of the individual. On the other hand, here is a
young, mischievous adult who cost companies an incredible amount of money and
the only punishment was to complete 30 hours of community work and a suspended
sentence.
How are we to ever nip this type of
activity in the bud if there is essentially no punishment for the crime? You
might argue that the young man did not have a criminal record, or that �he will
never do it again�. But this was not a penny ante theft of a chocolate bar
while the clerk wasn�t looking. This act was a carefully planned and executed
attack that was put together to inflict the most damage possible.
I would like to minimally see the
individuals brought to justice and made to pay for the crime. Jail time isn�t
necessarily going to help but put the fellow to work paying back the millions
in damages caused and you might get somewhere. Surely someone who can create
such a destructive masterpiece can create something beneficial.
Area 3:
Closely related to viruses (and in my
opinion there is almost no difference) is the presence of adware and pop-ups
everywhere on the Internet. Again you have companies who are trying to do
something about it but you also have conflict of interest defeating the purpose
of the programs being marketed as removal tools.
I hate to focus so much on Microsoft but
for a company that is trying to clean up their image they seem to have faltered
somewhat on this plain. Arguably one of the biggest offenders when it comes to
redirecting traffic and populating your computer with worthless adware software
is Claria, formerly Gator. If you run any reputable product against a computer
infected with this garbage you will see several objects recognized and removed.
For some unknown reason, Microsoft has deemed these products to be alright and
not malicious. Maybe it is because Microsoft is thinking of buying the company.
If you do buy it Microsoft, fire all of the management and burn all of the
code!
Area 4:
In this day and age we are all able to
communicate better. Think of all of the avenues you have available to you.
Write a letter, use the phone, email, Instant Messaging, chat rooms,
newsgroups, and the list goes on. I never associated much with my older sister,
in fact like most siblings we fought daily. Now thanks to IM software I can
talk to her everyday. I am actively involved in many technical newsgroups and
it is quite enjoyable having conversations with individuals around the world.
Through the miracles of modern
communication I have been able to make countless new friends and keep in touch
with family and friends all the time. Sometimes, however I lose sight of the
pleasures of face-to-face dialogue. Do yourself and others around you a favour,
turn off the computers and TV�s for one night a week. Socialize with your
family, visit friends and enjoy Mother Nature. I sometimes find that the more
tools at our disposal the less quality communication actually occurs.
Area 5:
As I have stated in the interview, I am a
big music fan. I must say I am pleased to see what musicians are trying to
accomplish with the charity events they have sponsored over the years. The
recent Live 8 concerts took some flack in the media but the individuals making
the criticisms seemed to be missing the point.
Shouldn�t everyone in the world have food
on their table and a roof over their heads? Can�t we share some of our wealth
to make someone�s life a little better? These ideals are potentially reachable
but it has to come from the top. It always makes me feel a little better about
mankind when we do something to help others. I would urge everyone to share a
little of the extra they have to the charity of your choice. Live 8, the
Tsunami relief, Red Cross; there are so many beneficial projects. If money is a
little tight, remember that your time and talents are as valuable a donation.
Q: This is a staple in our interviews. If
you were doing the interview, which three questions would you ask; also what
would be your answers?
A) Q1: Are there any particular individuals
who inspired you in your life and career? Who were they?
A1: There are many individuals I could list
off. In almost every acknowledgement I have ever written, I first think of my
mother. Barbara Rose Moore, truly my hero. Mom faced an enormous amount of
diversity in her lifetime and always bounced back and faced her challenges head
on. Mom was a sensitive individual who could always be found smiling, with
energy that could warm up the entire room. My father died when I was two and my
younger brother was still in diapers. I also have an older sister who was four
at the time. My mother supported the three of us by herself and ensured we had
every opportunity to succeed in life. Mom finally succumbed to Scleroderma
after an eight year battle and died at a rather young age.
Another person that immediately comes to
mind is Ken Rumble a fellow Canadian IT professional who now lives in Pennsylvania. Ken
was responsible for me getting started in the certification realm. He also
provided me with the lead that inevitably found me a speaking engagement at the
aforementioned TechMentor conference in San Diego. Ken,
whether at the office or at home could always be found working, studying or
both. He constantly strives to bring innovations into the classroom and is
always a good friend and supporter.
Q2: If you had not chosen to enter into
Computer Programming as a career, what would you be doing now?
A2: As far back as I can remember as a
child I wanted to be an airline pilot. The thought of soaring around the sky
with the birds is something that tweaked my imagination at a young age. I
suppose that is why to this day I like to travel and in particular enjoy
flying. The aspects that many people don�t like about flying are the ones I
find most enjoyable (turbulence, takeoffs, rough landings etc).
After high school I had applied to a
college to become a pilot. The college had 10 times the number of applicants as
they had spots open and I was unable to get through the entry process. It was
at that time that I accepted my second selection, computer science.
Q3: Has terrorism had any impact within the
business areas you deal in?
A3: I would like to be able to say that
terrorism has had no effect at all. We cannot let ourselves be intimidated by
these crazed individuals whose only purpose seems to be scaring people to the
extent that they are afraid to go anywhere. My heart goes out to all those
affected by these mindless acts. I am a naturally caring person who hates to
see the senseless loss of life that we have all witnessed in the past few
years.
In fact, terrorism seems to be having an
impact. You can�t go to any airport these days without recognizing a
significant difference in the practices now being used. Prior to 9-11 it was
unheard of to shut a whole airport down because of a minor security incident,
but nowadays it is almost a daily occurrence. Price of gas keeps going up
affecting travel costs and increasing the overhead for all companies.
The best thing that any of us can do is to
continue to live our lives as we always have. You shouldn�t be forced or
otherwise coerced into make any changes to the way you live.
May you be inspired.
Defend freedom and don't hide.
Stand tall and confident.
Say a prayer for those who've died.
Q: Tom, thank you for sharing your years of
experience with our audience.
A: �You
are quite welcome. The next year holds a lot of new and exciting avenues for me
and my family. We are looking ahead to a lot of new technology and I have
already started working on a couple of books, the first of which will likely be
out in the fall.
I have enjoyed this time looking into my
past and the technological crystal ball. We will see first hand over the next
year what actually does occur.