Well there are all kinds of ways to do this.
To answer your first question, YES, you are developing a custom module... ok, it's probably maybe. There are issue tracker modules out there or you could use something like xmod that would do most of the work for you. But if it were me, I'd build my own module.
As for where to start, you should read the Module Developers Guide and all supporting items in the pinned post of this forum topic. Once you have an idea how module development works, you can decide what you want yours to look like. To achieve what you described, you could create a disabled page called Issues and child pages for view, new and followup. Then you could create a module with view controls (at least view) for module definitions view, new and followup. Put one on each page and all you have to do is write the code for your functionality.
That said, I'd probably do it all as one module with one definition and handle the different views all together. The code will stay wired up better. You can either use panels or the multiview control to handle your different views.
Those are only two ways to accomplish what you want. There are dozens more. It's really a matter of preference.