Companion // NPC creation :: Please don't link me to the one on the front page. The tutorial is good, however it's not actually that accurately explained and after 4 attempts, it still messes everything up I have.
The reason NPC/follower creation ends up so screwy is that, if you understand everything about that process, you understand a bunch of things broadly across the game. You understand how to make AI packages, and how to arrange them within the NPC to cause the sequences of behaviors that you want, how to trigger and control those behavior sequences with a structure of variable values, how to work with quests, how to structure dialogue and result scripts (for the dialogue-based command interface and greetings), how and when to use object REFs, and basic scripting. Maybe more.
When you're new at this, on top of having big holes in your understanding, little things can destroy what you're trying to do. One example of what happened to me once was ... I did not have a particular dot selected on an AI package, and it caused the "wait" command to make the follower run away! It was inexplicable and puzzling at the time - - but now it's one of those "Duhhhhh" sorts of things, if I see a mistake like that in an AI package.
From what I understand, the tutorial you're talking about does in fact describe one way to make a follower (its not the only way). The thing is though, that thing wouldn't be a tutorial if it gave you enough knowledge to never make a single mistake. Because that process is so involved, that would be like a school course, or something.
If that tutorial isn't agreeing with you, and you are certain that this is something you want to learn to do, you might consider examining the game's existing followers and emulating that (that's how I learned). I think their variable structure is not the same as that tutorial tho, so expect to learn something a little different. (I like Bethesda's variable structure better, if I am correctly recalling what the tutorial suggested - - with Bethesda's, you never turn off the "follow" variable, and ride the "wait" and other control variables over top of it in priority due to package ordering within the follower).