Pay us well (and give us raises as we gain experience so we don't have to job-hop to be paid market rates).
Treat us well (no more 70 hour weeks, no more rollout-on-weekends-with-no-comp-time, no more demand to fix bugs on our own time, no more keeping us in meetings all week then wondering why work didn't get done on time, etc).
Give us job security (no more you-are-useless-if-you-are-over-40).
Do that, or even some of that, and the workforce will swell with tech workers.
Wow, these are all so true. I was at a company I really liked... really liked the people and my boss. I was the lead engineer on a team of 15, but was the second lowest paid guy. Everyone coming in got to negotiate, but I couldn't. Went to my bosses, they agreed I deserved the same wage, fought for it, but HR shot them down. I guess HR didn't think I'd leave or something. But I did. I have a young family of five to support, and I can't afford to be underpaid. At the end, the difference between my pay and the industry average was $30,000. I left and immediately ended up at the average. Now they have to replace me with someone who doesn't have eight years of experience with the company (and new people are always a risk), and they will have to pay the market rate I was asking for. And I actually wanted to stay and would have if they had just paid me what they WILL now have to pay the external hire. Why are idiot HR departments so short sited?
And yeah, the meeting thing is so true. Seriously, STOP the meetings. If I have five hours of meetings and three hours of emails being sent to me each day (many of which turn out to be FYIs that I didn't need to be copied on that waste my time), how can I get anything done? I truly believe the fix is agile for infrastructure: pick what you are doing for your two week sprint, and work solely on those items for two weeks. Instead of that though, most places give you an annual list of 15-40 projects that you work on simultaneously (impossible), and you have the overhead of having to go to status meetings and send constant emails about them every day/week, even though you really aren't working on most of them in a given week. Such a waste... it's like a computer that has too many processes and spends all its CPU time doing context switching rather than actually processing meaningful work. I really think the ideal number of projects at a time would be about 3. If people were allowed to work on a small number at a time, knock them out, and then move to the next thing, I think they'd actually get more total projects done in a year than the "work on them all at once" method that seems way to common.
Sidenote: IMO, the "do them all at once" method is nothing more than a crutch for bad managers. They don't want to tell anyone their project is less important and needs to wait until mid-year to start, so they pretend they are going to start it right away. They don't care if having 20 active projects at a time bogs everything down in project overload and everything takes longer, just so long as they can make themselves look good because they are "servicing" it.