Should I dump him?

So background info: I've been dating this guy for almost three years now, and we've had rough patches here and there, but nothing too bad. Lately, I started talking to a new guy I met at work and I found myself liking him a lot, and I figured it was just a friendly coworker thing, but it's evolved to something more romantic. Also, my boyfriend is almost 20, still lives with his mom, has no job or anything, and I call him out on it all the time and he always says he'll change eventually. My coworker and I have sort of started to flirt a little and I don't feel the same anymore with my boyfriend, and I've felt like that for a while. I sometimes want to leave him especially because I'm still young (17) and I'd like to date around a bit, but now maybe he's noticed me becoming distant because he's trying to get his act together for me and he's been paying a lot of attention to me, and I feel like it's a little to late, but if I were to leave him I'd feel guilty because he's finally changing. That, and I wouldn't want to risk losing someone important if the thing with my coworker ends up to be a fling. What should I do?