Live data from Hacker News

Ask HN: First job in IT, what best practices should I get in to?

news.ycombinator.com

1–10 of 18 posts

Ask HN: First job in IT, what best practices should I get in to?

#1
I started a new job 2 weeks ago as a general purpose IT professional for an electrical contracting company. Although I am essentially the one man IT team, my responsibilities include essentially patching up their current MSSQL instance (20 horrendously designed databases created by someone who had zero knowledge of database design, no indexes, no pks, etc).Once I have finished patching up their current database, I am to completely redesign their back-end and front-end systems, moving them away from access front-ends, and migrating them to native applications and web services.

In terms of software development, I'm fairly proficient, but DBA is not my strong suit, but I'm picking it up quickly.

So far, I've been fixing little errors in the database here and there, creating backup jobs (there were not in place), and extensively documenting everything I can decipher. Because I don't have any sort of mentor or senior to guide me, I'm somewhat flying blind on this. What recommendations do you all have for me?

Re: Ask HN: First job in IT, what best practices should I get in to?

#2
Sounds like you're off to a good start! :) Getting everything backed up soon is important; if things were implemented marginally, you don't know how long it will run before something crashes or hardware dies. Without a backup, you could then be in a rough spot... Also make sure that you test out the recovery from backup. I think documenting as you go is a great step, and is an easy way to generate a regular status report to show your boss what you've accomplished. You might want to start looking into the hardware that the systems are running on; are they working reliably, is there any redundancy (RAID, multiple servers, etc) and/or spare parts available. Once things are stabilized, I would continue refactoring the databases without making any user-visible changes (besides the improved performance once indexes are added :) Good luck!

Re: Ask HN: First job in IT, what best practices should I get in to?

#3
The situation you describe is probably not that uncommon.

The habits I'd recommend are general enough that they'd apply everywhere: Documentation and testing of all kinds. An ingrained resistance to be tied to any one technology, platform or stack. Clear communication. A curious mind.

Re: Ask HN: First job in IT, what best practices should I get in to?

#4
post #2

Sounds like you're off to a good start! :) Getting everything backed up soon is important; if things were implemented marginally, you don't know how long it will run before something crashes or hardware dies. Without a backup, you could then be in a rough spot... Also make sure that you test out the recovery from backup. I think documenting as you go is a great step, and is an easy way to generate a regular status re…

Luckily I've used the backups to setup my testing environment so I know they're good! Can you recommend anything else I should start doing? Development journals? Version control system?

Re: Ask HN: First job in IT, what best practices should I get in to?

#5

The situation you describe is probably not that uncommon. The habits I'd recommend are general enough that they'd apply everywhere: Documentation and testing of all kinds. An ingrained resistance to be tied to any one technology, platform or stack. Clear communication. A curious mind.

I get to sit down with the branch manager sometime soon and go over everything he wants implemented or removed for the next version of the application so that should help. I try to be fairly communicative throughout the day as well.

Re: Ask HN: First job in IT, what best practices should I get in to?

#6
post #2

Sounds like you're off to a good start! :) Getting everything backed up soon is important; if things were implemented marginally, you don't know how long it will run before something crashes or hardware dies. Without a backup, you could then be in a rough spot... Also make sure that you test out the recovery from backup. I think documenting as you go is a great step, and is an easy way to generate a regular status re…

Second documenting your accomplishments; remember to phrase them to match your audience, so describing how it measurably benefited the company is better than just the dry description of what you did.

Re: Ask HN: First job in IT, what best practices should I get in to?

#7
I'd recommend starting out early with good password management. KeePass Professional Edition is what I use since it offers several huge advantages.

First, you only need to come up with one good password (the one for the actual password file). If you ever leave the job, you just have to give them that one password and they can access the rest.

Second, it makes it easy for you to have good passwords for your resources. Plus, each resource can have a different password, so it may help limit the spread of an attack.

Third, if the company hires more IT staff, you can just copy the password file, rename it, change the password, give it to the new person, and have them change the password again. Probably not the best solution for 5+ people, but works well enough in small groups.

Fourth, KeePass offers a portable installation, which you can stick in Dropbox, on a usb drive, or wherever (no internet access needed). This is really helpful when you need to type in the password to the firewall that just took down the internet to your network.

Fifth, it's open source and free!

Re: Ask HN: First job in IT, what best practices should I get in to?

#8
If there are key critical systems, you want to have some documented plans down to checklists of things to do if there is some sort of emergency. I work in BigCo and having redundancy is nearly mandatory for all of our critical stuff. That may not be affordable for a small business, although if you phrase it in a way that electrical engineers would understand (fail safe like a GFCI interrupt or breaker) they might buy into it for a critical system. Bad things happen and if you can get them back up and running ASAP (e.g. failover to redundant system) and then fix the broken system you'll have less headaches.

Setup version control and use it, it's like having a time machine if you mess something up and need to get back to a working state. Git is all the rage, but Subversion is simple to setup and run and understand. It's just you so having a distributed VCS isn't likely to reap any rewards.

Use an agile approach when delivering features/changes. Build an entire "vertical" of a change like say moving one app from MS Access to a Web UI completely (or whatever you're going to move it to). If you design and develop each layer, like db access, business objects, UI in serial fashion then it will be a longer time before end users can give you feedback. Get that feedback as early an often as possible.

Re: Ask HN: First job in IT, what best practices should I get in to?

#9
post #2

Sounds like you're off to a good start! :) Getting everything backed up soon is important; if things were implemented marginally, you don't know how long it will run before something crashes or hardware dies. Without a backup, you could then be in a rough spot... Also make sure that you test out the recovery from backup. I think documenting as you go is a great step, and is an easy way to generate a regular status re…

Luckily I've used the backups to setup my testing environment so I know they're good! Can you recommend anything else I should start doing? Development journals? Version control system?

Definitely set up revision control ASAP.

Re: Ask HN: First job in IT, what best practices should I get in to?

#10
post #2

Sounds like you're off to a good start! :) Getting everything backed up soon is important; if things were implemented marginally, you don't know how long it will run before something crashes or hardware dies. Without a backup, you could then be in a rough spot... Also make sure that you test out the recovery from backup. I think documenting as you go is a great step, and is an easy way to generate a regular status re…

Luckily I've used the backups to setup my testing environment so I know they're good! Can you recommend anything else I should start doing? Development journals? Version control system?

Another thing I just thought of is a health monitoring suite for your servers/network. Also starting to move towards virtualized servers makes dealing with both failed hardware and testing/rollout/rollback easier.
Post reply on HN