There are some fundamental questions you need to answer in order to be a productive member of a software team. You need to answer these questions every day and the answers are always slowly changing. The next two chapters focus on the basics of communicating in real-time and written communication. Throughout both of these chapter we will be returning back to these fundamental questions and how each communication mechanism helps you answer them.
How can I ask simple questions?
What time is the meeting? Where is the string utility function? There needs to be a simple way to ask questions like this. Should you send an email, ask in IRC, or just shout over the cubicle wall?
What should I be working on?
At any given time you need to know what you should be doing. Sometimes this comes from a project tracking system and other times you just know. What is everyone else working on? Knowing what the rest of your team is doing isn’t just for managers, it is a fundamental part of the job of every engineer.
How can I ask questions without being disruptive?
You have to feel comfortable asking questions without worrying that you are preventing other team members from getting their work done.
Where is the information I need?
When you are looking at an unfamiliar part of your product or a new tool you need a method for finding information about how it works. Is there a design document, code comments, or should you just look at the code? The answer is different for every situation.