When is the status set to ASSIGNED?
Developers use the ASSIGNED status to signal that they are working on a bug or enhancement request.
In some bug workflows, QA assigns NEW bugs to developers (by setting the Assigned To field), and then developers accept the assignment by changing the status field to ASSIGNED. In our workflow, we usually just CC a developer and allow them to assign the bug to themselves if they'd like to tackle it.
In some cases someone will ask you to assign a bug directly to them -- e.g. "Please create a bug about XYZ and assign it to me" or "Yeah, I'll take that bug; please assign it to me." In such cases, there won't need to be a two-step process: The developer has already agreed to accept the bug.
New developers solving easy hacks may also assign bugs to themselves. However, this only makes sense for easy hacks that concern one single thing and not a repetitive task. If you see someone changing the status to ASSIGNED in an easy hack that is meant for multiple successive or parallel developers, change the status back to NEW and reset the Assignee.