I didn't realize Projectile had similar functionality until after
I had written project-buffers.el in the first place. And I probably wouldn't
have noticed, because I didn't realize that what I needed was similar to
Projectile until after `next-buffer-in-project` and
`previous-buffer-in-project` were written, because those were the two
functions I really wanted, and the functions `switch-project` and
`close-buffers-in-project` came afterwards due to a realization that they
would be really easy. Once those were written, it became more obvious that
what I had was similar to Projectile.
But now that I look at Projectile, I think it does Too Many Things™. For
example, to find a file in my project, I use find-file-in-repository (MELPA)
which does just one thing and does it extremely well. For running tests in my
project there are other utilities that do this too, same for TAG files, grep,
etc.