Pros
Since you'll swap projects every few months to a year, you never really get to know anyone. Great for anyone that doesn't care to make workplace friends. If you're lucky, you may end up between projects getting paid to take certifications for extended periods of time.
Cons
You can be put on and taken off a project with no notice for no reason and put right back on the bench. There's usually no feeling of accomplishment or completion because you probably won't be working on anything long enough to see it finish. You're brought in for what you're good at and then you start over with the same thing at the next project. Flexibility for hours can vary greatly depending on the project you're currently working on. I've had projects that don't care when you're online as long as you keep up with the work, and others that watch you for every minute and still ask for overtime.