Developing realistic job preview for software engineers

Imagine you are the HR manager for an IT firm and you are responsible for developing realistic job preview for software engineers. The goal is to provide a balanced picture of the job to the applicants so that they understand what to expect on the job. In doing this, you put together the job duties, the schedules, and the other aspects of the job proactively prior to the recruiting process. These efforts help to avoid a situation of bad person-environment fit.

In light of this scenario, how would you collect information about the job context and environment? Explain what sources you would use and why.