Hi Tauri
Chapters 5 through 9, and parts of chapter 15 and 19 in Making it Big in Software will probably answer your questions and provide some useful insights for you. I can't do them justice here in a forum posting. I'll try to add a few quick ideas, but I strongly recommend you refer to the book to get a more complete answer.
1. The #1 thing we all need to do to advance our careers is communicate. There are several things we need to communicate about, but one that people don’t often do enough of is communicating their accomplishments. We can’t expect to get credit for the work we've done if nobody knows about it. Some managers are better at tracking the accomplishments of their staff than others. However, even the best managers aren’t fully on top of this. In short, making sure that your manager is aware of what you have accomplished and the quality and sophistication of your work (not just its function) is your job and nobody else’s. It’s appropriate to keep your manager informed of your achievements ever few weeks, both in writing (a summary email) and in a personal discussion. Again, make sure that the qualitative aspects of your work come through, not just the functional attributes.
2. To quote from the book Making it Big in Software A picture is worth a thousand words but a demo is worth a thousand pictures. While you are helping to develop software as either a designer/architect, developer or tester, it’s worth developing a small demo that you can use to showcase the technology to others. Not only will this help highlight your contribution, but if you develop the demo, you’ll probably be the person who most frequently is asked to run it, showing it off to managers, architects and possibly customers and executives, leading to a lot of visibility for you and your work.
3. The value of measuring value. Most of us working on software features are content when we get a new feature working well. However, new features/capabilities often have the stigma of creating a ‘New and Improved’ version of the product. This is a bit like Tide detergent, which has been “New and Improved” for the past 40 years (or more). New and Improved doesn’t really impress anyone anymore, we are all, as a society, far too jaded. Why? Because New and Improved could mean a 400% improvement, or a 0.01% improvement; we are all too accustomed to marketing ploys that usually refer to the latter. To really make your contributions clear, take the time to measure the value your work has provided, measuring it in a way that yields a quantitative result. That’s not always easy to do, but most software provides value that can be measured through improved performance (speed), improved usability (user satisfaction, improved simplicity), added market share (more customers), reduced development effort for user (e.g. in the case of middleware, or a programming API), and so on. Once you measure the value of your work you elevate yourself from the status of a person who has simply make things ‘New and Improved’ to the much more meaningful status of having made things a specific amount better. In virtually every case I have experienced, measuring value has clarified the contributions of the people working on projects and amplified the recognition they received for it.
In fact, measuring the value of what we produce is a sensationally powerful catalyst for success, far beyond the simple personal benefits; there's a lot more on this idea in chapter 15.
4. Career killers (see chapter 8). The items above refer to some things we need to do to receive well deserved recognition for our work. But there are behaviors that people exhibit that actually negatively impact perceptions, and these may require a deliberate effort to avoid doing. Here are just a few
a. Being consistently late on project deliverables
b. Providing too much constructive feedback without providing suggestions and volunteering
for corrective action (usually perceived by others as complaining a lot, and being a constant source of negativity).
c. Working as an expert team of one, instead of a member of a team who willingly shares and both reuses code and expertise.
Sam