Wednesday, July 30, 2008

Improving Web Services Security Guide is Available

In an earlier post I wrote about the experience of working with Microsoft on a guide to help teams use Visual Studio Team System more effectively.

I'm happy to announce that we recently completed a new guide - Improving Web Services Security. The goal for this guide was to collect best practices and guidance to help architects and developers create more secure Windows Communication Foundation (WCF) applications. Much of the guidance is also generally applicable to any Web Service development project, so if you are focused in that area its worth checking out.

You can download the guide here:
http://www.codeplex.com/WCFSecurityGuide

Monday, July 28, 2008

The Change Frame

Do you ever find yourself in a situation you don't like? Most of us find ourselves in difficult situations in our professional or personal lives from time to time.

In a tough situation you can adapt yourself to the situation, adjust the situation, or avoid the situation entirely. This 'change' frame is a great way to think about how to handle difficult situations when they occur.

  • Adapt. Adapt yourself to the situation by changing your approach or your mindset. If you are in a situation you cannot change but don't want to leave then this is your best choice.


  • Adjust. Adjust the situation to better suit you. Many times an intractable situation can be adjusted to become more bearable. If you are in a tough situation which would require you intolerable adaptation to make right and you see that there is a possibility of adjustment then this is your best choice.


  • Avoid. Sometimes the best choice is to run away. If the situation is intolerable, you cannot adapt to it, and you see no possibility of adjustment then this is your best choice.


  • Here is an example to make it more real:

    Imagine a work situation in which your manager gives you incomplete or vague direction. When you follow this direction you often end up getting criticism that you completed the task incorrectly. As a result you end up repeating work in what feels like a wasteful cycle. You may feel that your manager is mistreating you and that you cannot succeed in the situation.

    Here is how you could apply the 'change' frame:

  • Adapt. Change your work habits to ask for feedback more often so you can correct your course quickly and have more confidence in your work. Change your mindset to see the situation as an opportunity to learn how to be more effective at working with uncertainty.


  • Adjust. Speak with your manager and explain your need for more specific direction. Provide positive feedback to your manager when he provides you with the specifics you are looking for.


  • Avoid. Look for another job.


  • I think most people have a tendency to fall into one of these strategies by default. Some people tend to avoid too often, depriving themselves of opportunity. Others tend to adapt too easily, bending themselves when the situation should be changed instead. Others tend toward rigidity and will work hard to adjust a situation when a small adaptation on their part would have accomplished more.

    I tend to adapt more often than I probably should. What do you do?

    Special thanks to JD for teaching me the 'change' frame and blogging about it first.

    Thursday, July 10, 2008

    What Makes an Achiever?

    J.D. Meier asked me:
    Do you see a pattern where some are “achievers” and some are not?
    Achievers tend to produce, but just need coaching.
    Some people (Non-achievers or whatever to call them), seem to need more than coaching -- it’s more like a bad fit for a job that produces results along the way.

    That got me to thinking:
    1. How can you tell when hiring someone that they will achieve the results you are looking for?
    2. How can you tell when someone on your team is worth investing in and when you need to look for a replacement?
    When interviewing I test for aptitude, attitude, knowledge and experience and I usually hire with pretty good results. There are times, however, when someone will slip through that interviewed very well but doesn't do well on the job. My conversation with JD reminded me of this problem and got me to thinking about what I could do to improve my interview 'hit' rate.

    I think the best indicator of an achiever is where they focus their energy. Do they focus on process? Do they focus on theory? Or do they focus on results. If they don't focus on results they will not ever get those results. You get what you focus on. A lot of it has to do with how you are wired - what makes you excited? Some people truly get excited over theory. They make good scientists. Others get excited about results. They make good engineers!

    What is Your Management Style?

    I recently conducted an interview for a highly capable developer. I was the last person in the interview loop and I already knew I wanted to hire him, so I opened the time up to allow him to ask me as many questions as he wanted. Normally this translates into a few easy to answer questions. In this case I was asked a bunch that really made me think.

    One of the more interesting questions was - "What is your management style?"

    There are so many ways to answer this that at first I was stumped. Does my style even have a name? Should I talk about examples of what I've done to manage my team or talk more abstractly? In the end this is what I said and I think it rings true as a good, though not necessarily complete, answer:

    1. I believe in treating people like professionals. From the start I believe in giving and expecting trust. You don’t have to earn trust when you join the team. You receive it automatically and keep it unless you do something to lose it.
    2. I believe in delegating responsibility and authority. I want to give each person the chance to grown and reach for the stars, not be hobbled by low expectations or some ceiling I’ve put into place.
    3. I believe in personal accountability. If you make a mistake, own up, learn and move on.
    4. I believe in making mistakes. No one should be afraid to make a mistake. If you are going to fail, then fail fast.
    5. I believe in results. I measure people on results not activity. Activity without impact is poison to me.
    6. I believe in building a team. Each member of the team should be clear on their role, know where they fit in and feel they can depend on and lean upon others in the team to achieve group goals.
    7. I believe in adapting my management style to the needs of the employee. Some people need a very directive approach, some just need goals and the freedom to achieve them.
    8. I believe in real-time feedback. If you do something wrong you should know it immediately. If you do something right, you should hear about it right away. The further removed feedback is in time, the less effective it is.
    9. I believe in continuous improvement. On a daily and weekly basis we look at what went right, what went wrong, what needs to be tuned to improve effectiveness.
    When I was done talking I realized that I was the wrong person to ask. The best way to understand my management style is to ask my team - not me!

    My Related Posts