Saturday, January 5, 2013

Seven Habits of Highly Successful Software Architects

Source: http://thebookshare.blogspot.com/2007/12/seven-habits-of-highly-successful.html
visited on 6th January, 2013


Do you practice the habits of highly successful software architects? Can you deliver a solution while acting as a technical mentor, empowering others, improving the process, and developing a focused, high-performance team along the way? In Software Architect Bootcamp, Raphael Malveau and Thomas J. Mowbray, Ph.D. write about the habits of successful software architects.

The 7 Habits of Highly Successful Software Architects
Malveau and Mowbray write the following:
  1. Keep it simple. When communicating various architetural concepts or software mechanisms to team members, resist the temptation to provide a complete and detailed explanation of how things work or a detailed comparison against all the alternatives in front of a group. Instead, the software architect should say enough to communicate the idea at level that is high enough to be generalizable but just low enough to be understood in principle, so that the individual team members can do their own homework or meet separately with the architect to address their specific concerns.

  2. Let others defend the architecture. It is always peferable to have someone else respond to a technical concern rather than have the software architect appear to be the sole source of knowledge. It reinforces teamwork, provides the architect with insights from people who agree as well as disagree, and is a key aspect in mentoring others, among other benefits.

  3. Act, don't argue. Arguing technical points in a meeting wastes time, hurts feelings, and seldom, if ever fully resolves any technical issues. When such an argument starts, the software architect must act - by assigning people to get or verify the relevant information, setting up a meeting specifically for resolving the debated topic, or, if time requires, an immediate course of action, laying down the law by explaining why the time constraints force an end to the matter.

  4. Keep an eye on the prize. Software architects must always be aware of the end goal. It is easy to be distracted by tasks and smaller technical issues, and frequently other team members will succumb to one form of tunnel vision or the other. However, it is vital that the architect always be focused on the overall vision of the system and relate every task or technology to how it contributes to the end goal.

  5. Be willing to change, but never too much at once. After the initial bootstrapping of a software development effort, the architect should be wary of implementing too many process improvements all at once because there is a risk of compromising the effective parts of the process.

  6. Learn where to stop. Software architects must resist the temptation to go into too many details and to micromanage design decisions. For example, it would typically be enough to specify that caching is required in client applications and that the caching code should be reused throughout the application. However, detailing the specific caching algorithm used or writing the caching pseudocode is probably overkill. Learning to trust other team members to provide design and implementation details and letting them ask for help is essential.

  7. Know how to follow. No matter who is in charge, software architects should avoid publicly confronting others on major design issues. This can be accomplished by knowing ahead of time what is going to be discussed and the reasons for the various decisions. This is a key aspect to developing a focused, high-performance team.
    Key Take AwaysBeing in the software building business, I can easily relate to this. I think there's a couple of themes that underly the habits:
    • Balance connection-focus with task-focus. Building software is a team sport. It often means building rapport and getting others to buy into ideas over time. While knowing your stuff is a good thing, you should use it to lift others up and produce a great results. Winning technical battles at the expense of the human relations war, will cause unecessary friction and reduce your results and drain your energy.
    • Focus on value delivered over the shiny object. If you're passionate about the technology, it's easy to fall into the trap of focusing on the technology or the shiny objects. At the end of the day, your credibility and perception will be about the solution you deliver and the team impact.
    • Be a mentor and a coach. It's true that knowledge is power. The trick is to grow yourself, by growing others. What you share comes back to you tenfold.

    What does Situational Leadership® mean?

    Source: http://leadershipchamps.wordpress.com/2008/02/27/what-is-situational-leadership-means/
    Visited on 6th January, 2013


    Around the world, there is always a debate going on about leadership styles. There is no one-size fits all leadership style exist. Successful leaders are those who can adapt their behavior to meet the demands of their own unique situation. This is called ‘Situational Leadership®‘.
    General human tendency in decision making differs time to time and depends on the circumstances. Applying this general behavior into leadership gives excellent results in achieving the success & one becomes Leadership Champions.
    Below are the lines that explains briefly about Situational Leadership®. These lines are from HOW TO CHOOSE A LEADERSHIP PATTERN by Robert Tannenbaum and Warren Schmidt.
    “The successful leader is one who is able to behave appropriately. … If direction is in order … able to direct; if considerable participative freedom is called for … able to provide such freedom.”
    The concept of Situational Leadership® was proposed by Ken Blanchard (who later wrote the famous – One Minute Manager book) and Paul Hersey. According to them - “Leadership is the process of influencing the activities of an individual or group in efforts toward goal achievement in a given situation”
    The Blanchard & Hersey Situational Leadership® Model helpful to managers in diagnosing the demands of their situation has been developed as a result of extensive research.
    Situational Leadership® model is based on relationship among the amount or the extent of:
    • Direction (task behavior) a leader gives
    • Socio-emotional support (relationship behavior) a leader provides
    • “Readiness” level that followers exhibit on a specific task, function, activity, or objective that the leader is attempting to accomplish through the individual or group
    Task behavior is the extent to which a leader engages in one-way communication by explaining what each follower is to do, as well as when, where, and how tasks are to be accomplished.
    Relationship behavior is the extent to which a leader engages in two-way communication by providing socio-emotional support, “psychological strokes”, and facilitating behaviors.
    Readiness is the ability and willingness of a person to take responsibility for directing his own behavior in relation to a specific task to be performed.
    According to this model, as the level of readiness of the follower continues to increase in terms of accomplishing a specific task, the leader should begin to reduce task behavior and increase relationship behavior. This should be the case until the individual or group reaches a moderate level of readiness.
    As the follower begins to move to an above average level of readiness, it becomes appropriate for the leader to decrease not only task behavior but relationship behavior as well. Now the follower is not only ready in terms of the performance of the task but also is confident and committed. People at this level of readiness see a reduction of close supervision and an increase in delegation by the leader as a positive indication of trust and confidence.
    They define four leadership styles:
    1. Telling/Directing Leader — a leader provides detailed instruction and closely coaches the follower.
    2. Selling/Coaching Leader — a leader provides explanations and principles, engages the follower in a discussion of the work, and coaches as needed.
    3. Facilitating/Counseling Leader — the leader assists the follower with goal clarification and ideas, then coaches as needed
    4. Delegating Leader — the goal is clarified and the work turned over to the follower.
    Situational Leadership Styles
    Any or all of these leadership styles can be used effectively, depending on the readiness of the follower as determined by:
    • The ability of the person to do the job (Skill) —has the necessary knowledge and skills to do the work.
    • The willingness of the person to do the job (Will) —has the necessary confidence and commitment to do the work.
    Following picture shows various stages of Follower’s Readiness/Maturity Level based on Skill & Will.
    follower-maturity model
    Four stages of follower readiness according to Hersey & Blanchard are as follows:
    People who are both unable and either unwilling or too insecure to take responsibility to do something. They are neither competent nor confident. (M1)
    People who are having less skill level, but willing to do necessary job task falls into this M2 category. They are motivated but currently lack of the appropriate skills.(M2)
    People who are able but unwilling or too apprehensive to do what the leader wants (M3)
    People who are both able and willing to take responsibility and do what is asked of them (M4)
    We can have better understanding of the Maturity Level & Situational Leadership® Model by integrating their views.
    As followers reach high level of readiness, the leader responds by not only continuing to decrease control over activities, but also by continuing to decrease relationship behavior as well.
    * At stage M1, followers need clear and specific directions. So the appropriate style is high-task and low-relationship or Telling/Directing (S1).
    * At stage M2, both high-task and high-relationship behavior is needed or Selling/Coaching (S2). The high-task behavior compensates for the follower’s lack of ability, and the high-relationship behavior tries to get the followers psychologically to “buy into” the leader’s desires.
    * Stage M3 represents motivational problems that are best solved by a supportive, non-directive, participative style. The right approach would be low-task and high-relationship or Facilitating/Counseling (S3).
    * At stage M4, the leader doesn’t have to do much because followers are both willing and able to do the job and take responsibility. The followers need neither task directions nor motivational support, thus low-task and low-relationship style or Delegating (S4) work best for this kind of subordinates.