I'm just going to aggregate a few of things that I have learned over my short time as a software developer:
1) Dont join a project that doesnt have a development process in place, or where you wont be able to easily implement one.
More specifically, I'm concerned with change control. This is the classic scope creep case everyone talks about. Everyone talks about it because it happens all the time, and I have let it happen on my current product. We are in a position where the client is demanding features above and beyond the featureset we initially agreed to, and in a compressed time frame. Because there is no process to manage change and make the cost of change visible to the client, it is now my team's fault if things fall 'behind'.
Additionally, your team will ALWAYS BE BEHIND if you dont have a change process, because your client will always think up new features. I've even thought up a few and contributed to this problem myself.
Next time: a simplified version of the mythical man month as applied to software developers.