CIPS Connections
3/21/2003
8:34:42 AM
Software Development Tips
Interview with Paul Burns
by Stephen Ibaraki, I.S.P.,
Capilano College
This week, Stephen Ibaraki, I.S.P., has an exclusive interview with Paul
Burns, a developer, and a leading expert in SQL systems/OLAP, and .NET.
*****
Discussion:
Q. Paul, can you describe your remarkable background and how you got to the
position you are currently in? Also, what are your personal goals 1, 3, and 5
years into the future? What are your particular responsibilities?
A. My background goes from construction to architecture to computers with a
college degree and computer training in between. I have fallen into being a
computer programmer and am currently concentrating on C# .net web
applications. My goals for year would be to stay focused on current area of
development. My 3 to 5 year goal is to learn as much as possible in my area
while developing bigger better .NET applications.
Q. For those just entering the computing field, what tips would you give them
to success in their careers?
A. They are:
- Enjoy the process of
learning – it never ends.
- Learn how to do fast,
accurate research on the internet.
- For networking, learn
various architectures.
- Be humble.
- Get organized
training.
- Then get certified –
studying for certification drills in knowledge that might not come up
for a few years.
- Learn to convey
networks and programs to techies and managers – don’t exclude the
managers.
Q. What five career pointers would you provide specifically to people with
non-computing backgrounds who wish to enter the computing field?
A. They are:
- Understand the
specific requirements of the job you are seeking.
- Go with what you are
best at – there are plenty of technical jobs ranging from development to
human relations. More technical does not mean it is better and does not
mean greater pay.
- Never try to fool
people that you know more than you do.
- On the same Note,
admit what is not known and show a process to obtain the information.
- Figure out a way to
remember as much as possible (conceptual knowledge) in an organized way
– learn your computer, learn the network, learn what programs do what.
Q.For those who have long established careers in computing but wish to
change, what 10 computing areas would you recommend that they should focus
on?
A. They are:
- Secure connections
into the network (IIS, proxies, reverse proxies, SSL).
- Database design – most
databases are on the edge of chaos.
- Database admin (SQL
server, security, indexing, everything).
- Database programming
(ADO .NET, runtime reporting).
- Web Server management
(deployment, security, clustering).
- Domain Controller
management (LDAP, domain tools, groups, users, Active Directory).
- Web server programming
– with .NET, web applications quadrupled in complexity.
- Firewall / router
management (Cisco certification)
- R&D process
management – how is a product built from scratch, why are so few
companies pulling it off successfully.
- Low level programming
– there are never enough people that are proficient in win 32
programming.
Q. In your particular area, where do you see yourself heading in the next
one, two, and five years? What changes are you implementing in the short term
and long term? What project are your currently working on?
A. I am working on a few projects and all consist of the idea of supplying
critical information to the right people. Information always seems to be
locked away in a CRM (SAP, People Soft), ERP, or some custom database
package. I build a bunch of databases and move information around. Then get
the information to the right people through a web interface.
Q. Can you give your top 20 tips for SQL and for OLAP? Also, what are the top
five books you would recommend for development, SQL and .NET?
A. They are:
- The easiest way to
think of OLAP is a superset Group By where the information is always
drillable – i.e. ‘total customers in BC,’ ‘total customers’ is a measure
(count of customers) grouped by region.
- Use SQL Server to
learn OLAP – other programs can be painful.
- Never use ‘SELECT *’
- Establish concepts
around the SQL and transact SQL languages. Understand what is possible
before trying to memorize syntax. Syntax is easy to lookup, if you know
what is possible, and can conceptualize what is needed.
- Always use a developer
database when building programs. If there is not one around, build one
through DTS.
- Learn how to move data
bases around through a ‘backup’ and ‘restore’ or DTS (Data
Transformation Services) – easy to learn, easy UI.
- When using SQL keep in
mind the data types. .NET and Java need to be mapped or assigned to the
correct data types when performing SQL queries.
- Have simple rules for
naming columns when building a database. I have wasted so much time
trying to figure out I named a column “customers_address” instead of
something like “customer_address.”
- Get naming conventions
for Primary Keys and Foreign Keys like, cust_id should map to cust_id as
a foreign key in another table.
- Always have all Keys
in the first Columns of a table.
- Don’t normalize data
too much unless there are more than 10 million records. It makes every
SQL query too complicated. Plus there might not be data redundancy on
the database but every SQL query made is pulling down the redundancy in
a dataset / recordset.
- Know what is possible
with the built-in functions. Know there is a function that can replace
chars in a string in SQL Server (it is called ‘stuff’).
- Know what is possible
with date conversions and comparing dates.
- For syntax, know to
replace “ ‘ “ with “ ‘’ “ – single apostrophes will kill your WHERE
clauses or/and Update statements.
- Once a complicated
stored proc is written, save it as a .sql file.
- Be careful of nulls,
not all data types support being assigned nulls.
As far as SQL Book: That is a good idea. I think answering
this question has convinced me that I need to read some more SQL books. I
have settled into to buying the professional level Wrox (http://www.wrox.com) books. They have detailed
indexes and can be used for reference for years – they are the red books with
funny pictures of people on the cover.
Q. What top ten technologies should IT professionals, and businesses be
watching for in the next two years?
A. They are:
- Active Directory --
this is related to other LDAP servers as well.
- Passing XML from
application to databases and database to databases. (Small businesses
are getting more complex with IT infrastructures, therefore 3-10 deals
with small business)
- Email Servers that
have web based email and stream to handhelds.
- Databases that can
share data.
- Cell phones – IT
departments seem to be spending too much time managing and training less
technical staff on how to operate a cell phone. Sometimes the cheaper
older models are better for the main purpose.
- Intranet portals for
small business.
- Applications that
merge data and utilize existing third-party apps.
- Application with good
UI – huge technology often overlooked.
- Cheaper routers – this
means everything is on the network. Secure Extranets – this means
everyone can have access to the network anywhere.
- Custom end-solutions
business packages: In a growing company the IT departments needs to
uncover problems very early in the buying process of all software –
Financial, Customer Management, Pay Roll….
Q. What changes do you see for the future of computing, conducting business,
and the use of the Internet?
A. If people can connect to the network from anywhere at high speeds, the
people of the company are mobile. Once a company understands mobility, it
pushes technology in directions of:
- Setting up reverse
proxies to access the company portal from anywhere – any high speed
internet connection.
- Connecting offices in
many different locations. This means I can use a database in New York as
a data source for my web page.
Q. What changes are you planning to make in your model in the next year, two
years, and five years?
A. I feel with all the recent changes in technology in the past two years I
am redefining my model. Everything is now written like an application and the
front-end can be a web page or a windows form – it does not matter.
Q. If you were conducting this interview, what five questions would you ask
and what would be your answer?
A. They are:
- What is the most important
functional technology in a large web site?
Searches, that expose information to customer as well as google.
- What is the most import
functional thing of a small web site?
Automation of content generation: This can be accomplished with xml
docs, databases, or as simple as saving word docs as html and loading
them in an IFrame.
- What is the most important
thing about any web site?
Layout of UI: Simple rules should be made and followed, i.e. top menus
should be one level deep and open new pages, side menus should be made
for loading content on the same page.
- What are current challenges
with retrieval of data?
Data seems to be more and more managed. For example, in the Last few
months I have dealt with an ERP that had a proprietary database that
sometimes would not kill the process it spawned on the creation of a new
ODBC connection. I am dealing with Knowledge management systems and
attempting to show the knowledge inside the system to the internet. So
many systems today are not built on the concept of sharing data.
- What is the scariest
challenge you see in businesses.
I have dealt with 2 businesses in the past 2 years keeping mission
critical data in Spread Sheets. Regardless of politics or technology
limitations this is scary. The data is un-sharable, hard to query, hard
to update with no data validation. The first thing I did was to create
local DTS packets in SQL server and pull the data into un-normalized
flat tables and run stored procedures to attempt to clean the data.
Then, ran reports to show what the data is. I developed a Web interface
to allow complete interaction with custom reporting. And these examples
were businesses with over 300 people. Note, cleaning data through stored
procedures can be a big job with lots of pressure from VPs wondering why
a professional computer person is suggesting their figures are
inaccurate.
|
|