Hiring for potential, Not Just Experience

interviewClaudio Fernández-Aráoz, senior adviser at Egon Zehnder, and author of the new book, It’s Not the How or the What but the Who, explains how to gauge potential when evaluating job candidates. In this video, he explains that the hallmarks of potential are motivation, curiosity, insight, engagement, and determination. Here is the link to the video:

http://hbr.org/video/3603876266001/hire-for-potential-not-just-experience

Book: “Dynamics of Software Development”

Image “Dynamics of Software Development” by Jim McCarthy

Although this book published almost 20 years ago, it has some timeless rules that are still applicable today. Here are a few lines from the book:

  • “If the leader can then resonate with the team’s complex emotional state–identify with it, articulate it, and give the whole constellation of feeling and thought a visible, concrete reality in his or her own personal voice or gesture–the boundaries among the individual team members and between the team members and the leader will collapse.”
  • “The truth is hard to take, challenges your character, but whether the truth is offered by someone else or you discover it independently, you have to listen to it eventually… Not only must you listen to the truth, but you must broadcast it to the rest of the team. And the medium for transmitting truth among humans, like it or not, is emotion.”
  • “not to slow the pace of change, or to create more stability; but to get good at change, at managing technology in motion.”
  • “you are not going to get away with many more than two developers for every one QA person”
  • “If a balanced group of people are mutually accountable for all aspects of design, development, debugging, QA, shipping, and so on, they will devise ways to share critical observations with one another. Because they are accountable, if they perceive it, they own it. They must pass the perception to the rest of the team.”
  • “leadership in software development require a high degree of sensitivity to the human nature of the enterprise, an awareness of the underlying drives and emotions that determine the team’s behavior.”
  • “if you are having a hard time understanding something about the team, you can look to the software. If the team and the software both tell you the same thing, you can act on it with some degree of confidence. Conversely, if the software hasn’t reach the desired state, the way to fix it is to analyze the genesis of the problem in the team.”
  • “Freedom is the cornerstone of empowerment, freedom to develop and apply judgement, freedom to think and say what needs thinking and saying, freedom to take risks without extraneously punitive consequences.”
  • “Empowerment is the result of teaching and learning, not neglect and anarchy.”
  • “invest significantly in paradigm-shifting features… Once you make a breakthrough in the paradigm arena, your competitor will be forced back to the drawing board, even if he or she is momentarily ahead in the feature shoot-out.”
  • “Shipping is the hardest thing to do. If you’re better at shipping than y our competitor, you’re likely to be better than y our competitor at virtually everything. Timely, frequent shipping is the manifestation of well-being on a software development team.”
  • “Teaching becomes the primary function of leaders and managers.”
  • “in a product that had unity, each element would be essential to the value of the whole and all essential elements would be there… since everything the customer needed would be there, the customer wouldn’t be tempted to go beyond the present experience, and that since nothing would be there that wasn’t required, the customer’s absorption into the world of the product wouldn’t be disturbed.”
  • “It should be a fundamental dogma that the person who has to do the work should predict the amount of time it will take.” “The ultimate act of disempowerment is to take away the responsibility for the schedule from those who must live by it.”
  • “You need to build schedule meticulously from the bottom up. Each person who has a task to do must own the design and the execution of the task and must be held accountable for its timely achievement. Accountability is the twin of empowerment. The two together can create a reasonable software development plan.”
  • “As a development manager, you’re working with only three things: resource (people and money), features (the product and its quality), and the schedule.” “When considering the possible solution to a schedule shortfall, keep in mind there are only four possible: add time, subtract feature, add resources, or do some combination of the three.”
  • “when something is unknown, the best policy is to state that simple fact, even if the unknown is not knowing when the software will slip.”
  • “The goal on a software development project is not to have the correct plan in advance but to make the right decision every day as things that were unknown become known.”
  • Team interdependence as a motivational factor to deliver software on-time: “The goal is to create a network of self-motivated individual commitments.”
  • “If you have an ‘empowered development team’ deliverables are negotiated among developers, writers, program managers, and testers. ‘Management’ has virtually nothing to say about deliverables.”
  • “Slipping isn’t the problem. Being surprised by slipping is the problem. A slip doesn’t say that the product is too hard to develop. Being surprised by a slip says that the organization is broken. People aren’t thinking. People aren’t talking to each other. People aren’t aware of the global situation.”
  • “A good general rule is that you don’t reset the schedule until the total extent of the slip is known for each component, the cause of the slip are understood, and remedies are in place.”
  • “The biggest mistake I see managers make as they hire people for software development team is that they overvalue a particular technical skill… Much more important than a particular technical skill is a history of relevant skills accumulation.”

Book: “Notes to a Software Team Leader”

Image“Notes to a Software Team Leader” by Roy Osherove is a refreshing read. I like his way of explaining concepts, making them easy to understand. His perspective that “a team leader grows the people in their team” is inspirational. Here are a few lines from the book:

  • “To get out of survival mode, you have to worry about one thing: creating slack time as a standard in your work process.” This is necessary for the team to find the time they need to acquire new skills, knowledge and capabilities to better handle challenges.
  • “To get to the next stage and to become much better than you are, you have to let go of the things you already know. You have to let go of the safety of the current position you’re in, so that you climb to the next level.” The concept of letting go what you already know is a new concept to me.
  •  “What’s under their control? Usually, their time and what they choose to work on are the only things under their administrative control.” This means that an engineer can’t reliably guarantee that s/he will be able to fix a bug by tomorrow. Instead s/he can commit to spending at least 6 hours today and 6 more hours tomorrow to work on fixing the bug.
  • “What are you going to do about it?” This is a question a leader can challenge his/her direct reports to learn how to handle a challenge by him/her self and commit to do something about it.
  • Forces that can influence behavior change: personal ability, personal motivation, social ability, social motivation, environmental ability and environmental motivation. Personal ability and motivation are straight forward. Social ability and motivation covers people around the person that is attempting to make a behavior change. Environmental ability and motivation extends not only the physical environment, also the organizational environment that controls the pay, bonus, etc.
  • “Team leadership is about creating an environment in which everyone can flourish to the best of each person’s ability–including yours.”

AfterShot Pro 1.2.0.7

It’s great to see that Corel released latest update to support new cameras. However, the new version would not import Canon 5D mark II RAW files correctly. After an import, the images would look blank when it supposed to have image content. Here is a screen capture of what I see:

aftershotpro

 

 

 

 

A look in Corel’s forum led me to a post that suggested to remove the files in cache folder (i.e. .AfterShotPro/cache in Linux). It worked for me! :)

Scale agile to the enterprise with distributed teams

Here is a podcast that might help managers and senior individuals managing multiple projects to better managing resources and planning projects. :)

The Project Management Podcast:Episode 231: Agile, Coffee, Tea and Trains

http://www.project-management-podcast.com/index.php/podcast-episodes/episode-details/481-episode-231-agile-coffee-tea-and-trains

HowTo: Setup GWT remote logging

I find the official documentation on remote logging wasn’t complete. Here are my notes based on various web sites I visited (here, here, and here). Hope this helps!

App.gwt.xml

You should add the inherits statement below. You should be able to adjust the log level to any of the following: ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE. I find the popup log console in the browser annoying, so I disabled it.

<inherits name=”com.google.gwt.logging.Logging”/>
<set-property name=”gwt.logging.simpleRemoteHandler” value=”ENABLED” />
<set-property name=”gwt.logging.logLevel” value=”FINEST”/>
<set-property name=”gwt.logging.enabled” value=”TRUE”/>
<set-property name=”gwt.logging.consoleHandler” value=”ENABLED” />
<set-property name=”gwt.logging.popupHandler” value=”DISABLED” />

web.xml

The following code is necessary for the server to receive log information and redirect to server log file.

<servlet>
<servlet-name>remoteLogging</servlet-name>
<servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>remoteLogging</servlet-name>
<url-pattern>/YOUR_MODULE/remote_logging</url-pattern>
</servlet-mapping>

java

Here is the example code you can use in GWT client-side.

import com.google.gwt.logging.client.SimpleRemoteLogHandler;
import java.util.logging.Level;
import java.util.logging.LogRecord;

SimpleRemoteLogHandler remoteLog = new SimpleRemoteLogHandler();
remoteLog.publish(new LogRecord(Level.INFO, “log message”));

Bluetooth Keyboard

Motorola bluetooth keyboard just arrived today and I am happy to use it to type this blog post. :) The only thing I wished it can do is to support Asian language keyboard layouts with Android.  Besides that, I did notice that the keyboard would cause one of the keys to trigger multiple times when I only pressed the key once. This happens a few times while typing this blog post.

Creating a strategy

Here are my notes from the following sources:

Problems of strategic planning:

  • In some cases, “strategic planning does not product novel strategies. Instead, it perpetuate the status quo.”
  • In other cases, out-of-box thinking “may result in radical new ideas, but more likely than not, those ideas cannot be translated into strategic choices that guide productive action.”
  • In many of conventional strategic planning, the use of hypotheses and hypotheses testing is lacking.

Steps to create a strategy:

  1. Frame a choice: In this step, the authors state that one should define options that can resolve the issue that the organization is facing, which focus the attention on what to do next, not just on the challenge itself. On the other hand, people might not know enough about the root cause of an issue to frame the options. Perhaps Gina’s proposed starting point of defining a strategic question will be more appropriate. Gina also pointed out that depending on how you frame the question (or the option), it may lead you to different paths. The choice of different path should be guided by organization’s mission, vision, values and data/information that answers the strategic question.
  2. Generate possibilities: “A possibility is essentially a happy story that describes how a firm might succeed.” A possibility should “specify in detail the advantage they aim to achieve or leverage, the scope across which the advantage applies, and the activities throughout the value chain that would deliver the intended advantage across the targeted scope.” Another possibility is status quo. Participants involved to create these possibilities should be diverse and no more than 8. According to Gina’s slides, stakeholders may play the following possible roles: “be informed, provide input, validate/consent, decide” It’s important to not shoot down possibilities early.
  3. Specify conditions: “What must be true for each possibility to be a terrific choice.” The conditions may be generated out of the analysis in the following areas: industry, customer-value, business model, and competition
  4. Identify barriers: Identify an ordered list of barriers to each possibility.
  5. Design tests: Test each key barrier conditions. The person “who is most skeptical about a given condition should take the lead in designing and applying the test for it.”
  6. Conduct the tests: Test the barrier condition that has the least confidence first.
  7. Make the Choice

A strategy for making strategy:

  • Factors for choosing a strategic style: predictability (“How far into the future can how accurately can you confidently forcast demand, corporate perforamnce, competitive dynamics, and market expectations?) and malleability (“To what extent cna you or your competitors influence those factors?”)
  • To understand predictability, “regularly reviewing the accuracy of your forecasts and also objectively gauging predictability by tracking how often and to what extendt companies in your industry chagne relative position in term of revenue, profitability, and other performance measures.”
  • To understand malleability, measure “industry youthfulness, concentration, growth rate, innovation rate, and rate of technology change”.
  • A classical strategy (if your industry is predictable but you can’t change it, example: Paper & Forest products, Consumer Finance, Water Utilities, etc.) This strategy includes five forces, blue ocean, and growth-share matrix analyses. This strategy often “aimed at achieving economies of scale and scope often create company cultures that prize efficiency and the elimination of variation. These can of course undermine the opportunity of experiment and learn, which is essential for an adaptive strategy.”
  • An adaptive strategy (if your industry is unpredictable and you can’t change it, example: Biotechnology, Transportation infrastructure, Computers, etc.) “Plans take the form not of carefully specified blueprints but of rough hypotheses based on the best available data.”
  • A shaping strategy (if your industry is unpredictable but you can change it, example: Construction, Internet software, household durables, etc.) “Like an adaptive strategy, a shaping strategy embraces short or continual planning cycles.” “But unlike adapters, shapers focus beyond the boundaries of their own company, often by rallying a formidable ecosystem of customers, suppliers, and/or complementors to their cause by defining attractive new markets, standards, technology platforms, and business practices.”
  • A visionary strategy (if your industry is predictable and you can change it, example: Aerospace, insurance, media, etc.)

Revisiting SSH Tunneling Tricks

SSH tunneling is so useful that I find myself revisiting it again. This post helped me to get started. I would add the -f option to run the command in the background. 5126 is the port I use on my own machine once the tunnel is established.

ssh -f -N -L 5126:TARGET_SERVER:22 USER@GATEWAY_SERVER

Once the tunnel is established, I could establish a ssh connection using the tunnel. In this case I also enabled X forwarding.

ssh -X -p5126 USER@localhost