World’s Best Programmer is… [w/ Inclusion]

anotherstar …to be announced at the end of this series.

unkown-person I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.

Motivation

My answer is many fold and I provide a framework towards greater understanding in part 1.

The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.

Today, let’s take a deeper look at Inclusion.

Inclusion

I have already included certain aspects of Inclusion under the discussion of the importance of Communication to the environment of the World’s Best Programmer, so the following represents my continued thoughts and emphasis on this feature.

Communication encompasses the mechanisms by which ideas and the knowledge base, in general, are transmitted throughout the organization. While some organizations believe that there are only a select few who “need to know,” studies of effective organizations have demonstrated that it is important from a morale (and subsequently, a productive) standpoint for knowledge to be shared as much as possible. In that way, everyone working on a project understands the value and interrelatedness of their individual efforts and can then take pride in its successful completion/outcome.

Inclusion is an atmosphere of valuing the members of the organization for those contributions. While channels of communication promote Inclusion, it is only when those channels become institutionalized that individuals feel included. Saying everyone’s efforts are valued is one thing. Demonstrating that the organization truly does that takes place over time through repetitive actions that serve to strengthen that value in the organization.

True Inclusion is “in the air.” It is one thing to put in channels for communication, but it is also necessary that there be respect for the communications, and acceptance of communications, and the organizational value that every programmer just believes and accepts that this will occur.

On a more basic level, Inclusion in any organization is embodied by practices that have become part of the culture (second nature) that the contributions of all are anticipated and valued. If there is not a sense of Inclusion in an organization, the cost can be high, both in terms of money and time. Different perspectives do not see the light of day and are therefore not considered. No matter the channels of communication that are put in to place, if the programmer does not believe the organization values Inclusion, they may/will be reluctant to propose what may prove to be a more viable solution.

Examples of building that culture of Inclusion are…

Junior Programmers. Teach junior programmers, and team members, how senior people throughout the organization make decisions. Even though the junior individuals may not have a measurable impact on the end result of, or introduce a small cost of educational overhead to, meetings, being included and understanding what results in one idea being accepted over another, or why one approach is considered superior to an alternate, helps everyone feel more a part of the process, learn a thing or two, and become a stronger contributor.

Early. Get the technical individuals and other programmers involved early in a project. As the more business-oriented, or technically-oriented, components of the organization begin making the plans, both sides will benefit from mutual Inclusion helping one another steer toward much easier, cost-effective solutions and approaches.

The Search Continues

In addition to…

Clarity, Organization & Focus
Communication & Inclusion

… and before this individual, World’s Best Programmer, is announced, the characteristics…

Challenge & Respect

… will be further explored and discussed in the subsequent articles of this multi-part series.

Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.

Enjoy!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!
About these ads

The Product Guy’s Weekend Reading (March 27, 2009)

Every week I read tens of thousands of blog posts. Here, for your weekend enjoyment, are some highlights from my recent reading, for you.

01_vc-value

On Starting Up…

http://www.web-strategist.com/blog/2009/03/21/beyond-the-money-vcs-provide-startups-with-a-competitive-edge/
On the added value and competitive edge provided by VC’s.

 
 

On Design & Product Experience…

http://blog.facebook.com/blog.php?post=62368742130
Facebook’s learnings from consumer outrage feedback over the new site design.

02_facebook
03_portable-contacts

On Modular Innovation…

http://www.readwriteweb.com/archives/google_implements_new_open_standard_for_friends_li.php
Portability, Interoperability, and how Google is furthering Modular Innovation through adoption of Portable Contacts.

 

Have a great weekend!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

World’s Best Programmer is… [w/ Communication]

anotherstar …to be announced at the end of this series.

unkown-person I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.

Motivation

My answer is many fold and I provide a framework towards greater understanding in part 1.

The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.

Today, let’s take a deeper look at Communication.

Communication

You can’t get anything accomplished without good Communication. Everyone, from CEO to manager to the World’s Best Programmer, knows that. Many different professions and skill-sets come with their own special keywords, languages, and manners. Sometimes this difference could not be more obvious than when it is demonstrated between manager and programmer, even within the environment of World’s Best Programmer.

Inadequate or poor Communication leads to a programming environment characterized by …

Distrust,

Confusion, and

Paranoia.

These conditions, like a disease, will demotivate and crush the spirit and productivity of any programmer, from the good to even the World’s Best; and, like a disease, can fester and eat away at the core of any product, team, and organization. And, as is the nature of this illness, it is harder to correct once it takes root, since discovery would entail having good Communication.

Open

An open environment wherein people are comfortable expressing their thoughts, where they don’t feel ignored, is where the World’s Best Programmer is found. And, by open, I am not referring to an environment defined by shouting, or disorder. It is a structured environment, where teamwork flourishes, and authority is respected on par with the feedback, ideas, and other issues brought up and discussed, regardless of ‘rank.’ It is an environment within which the programmer is comfortable questioning, and suggesting alternatives, all the while expecting that his thought s will be respected. While they need not be accepted, they are at least considered.

Some exemplary steps and practices that can lead to this motivational, empowering environment are…

Passion. Having passion in one’s work is very important and can be very constructive for many individuals — nurturing friendly, healthy competition in many. However, passion should be carefully targeted in both good and bad situations. When passions are appropriately checked, when tone is stern, not angry, care taken for understanding technical complexities, fear and unease are reduced, or eliminated, enabling all to speak-out about problems before they get worse (or it is too late).

Leave. For some managers it is reflexive to just ‘let the programmers be.’ Such behavior is often the result of the discomfort associated with finding a common language and grasping necessary programmer concepts. For others, this behavior may come from the flawed logic that to ‘let the programmers be,’ steering clear of them, minimizing the Communication is a sign of trust and respect.

Simply put, for managers of this sentiment, leave your office; interact. Interaction breeds teamwork and understanding. Present an environment where business meetings are equally important as those meetings with programmers, always working towards establishing and enhancing community and commonality.

For example, perhaps once a day outside of the normal meetings or, perhaps on recurring dates and times (see Focus for more information), briefly walk around observing, learning, and Communicating.

Interest. It is important to not feign interest in the issues of programmers. Furthermore, as a manager of programmers, don’t simulate knowledge of programming topics and challenges – as is the inclination for too many.

When items are discussed with programmers, follow-up; if you don’t understand something, ask questions. Be patient, as it may be difficult to convey some concepts; but, through the demonstration of valuing the programmers’ thoughts, opinions, and insights, each individual will better understand the starting points of understanding for the respective parties and allow for the converging of minds.

Through the simple practice of demonstrating that you value the opinions of the programmers, through action demonstrating your interest in feedback from programmers, by following-up and being accessible (not forcing people to have to leave their programmer to ‘chase you down’) Communication is improved – paving the way for an ever greater number of open and frank conversations.

Squash any ethos of secrecy, demonstrate trust through inclusion and open Communication, and, in turn, you will provide the motivational drivers to propel your programmers to succeed, within which environment, too, can be found the World’s Best Programmer.

The Search Continues

In addition to…

Clarity, Organization & Focus
Communication

… and before this individual, World’s Best Programmer, is announced, the characteristics…

Inclusion
Challenge & Respect

… will be further explored and discussed in the subsequent articles of this multi-part series.

Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.

Enjoy!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

The Product Guy’s Weekend Reading (March 20, 2009)

Every week I read tens of thousands of blog posts. Here, for your weekend enjoyment, are some highlights from my recent reading, for you.

01_corrupting-vc

On Starting Up…

http://gigaom.com/2009/03/15/tech-startups-dont-need-the-valley-unless-they-need-vc/
On the corrupting influences of VC from SXSW.

 
 

On Design & Product Experience…

http://blogoscoped.com/archive/2009-03-17-n63.html
For buttons, bigger is not always better.

02_bigger-buttons
03_comment-aggregation

On Modular Innovation…

http://blog.broadbandmechanics.com/2009/02/store-your-own-comments-as-a-solution-to-comment-aggregation
Modular Innovation exploration of the concept of comment aggregation.

 

Have a great weekend!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

World’s Best Programmer is… [w/ Focus]

anotherstar …to be announced at the end of this series.

unkown-person I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.

Motivation

My answer is many fold and I provide a framework towards greater understanding in part 1.

The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.

Today, let’s take a deeper look at Focus.

Focus

Many very good programmers will frequently feel the pull of new technologies, newer more exciting projects, tangential and/or ‘very cool’ innovations. It is very important to allow for the artistic, curious, knowledge seeking side of every programmer to be able to explore exciting alternatives, from new hardware and languages to discussions on new technologies, new vendor tools and other programmer-y things.

However, it is also very important to facilitate the needed Focus that will empower the programmer to stay on track and on schedule, to be able to point to front-line accomplishments while also allowing for the time for growth. ‘Exploration time,’ as can also be seen in the case of the World’s Best Programmer, announced at the end of this series, can result in …

  • Fresh ways of thinking,
  • New and exciting group discussions,
  • Constructive and illuminating debates, and
  • Company-applicable ideas and solutions.

Facilitating Focus

Helping a programmer with Focus can be as simple as implementing some of the Organizational tips already discussed, or limiting general business-side Q&A to specific times of the day/week. Further examples on delivering oft sought after Focus are …

Process. In offices where the programmers share the dual-responsibility of creating and maintaining, or overseeing, production support to keep the organization running smoothly and rapidly addressing bugs and the common real-time production issues, the introduction of processes for the minimization of work-stopping, deadline-killing, frustration-inducing, time-and-money-wasting, Focus-sapping distractions are truly useful.

For example, instead of everyone sharing simultaneous oversight of production, have a rotating schedule where one individual (or a subset of the team) is on-call for a specific day. And, while this individual, with all production issues diverted their way, is focused on the short-term handling of ‘putting out fires,’ the remaining team is 100% removed from the fray and 100% Focused, shielded from the issues of production, empowered to Focus, on their current projects, deadlines, strategic long-term planning, design, etc.

Scheduling. As I briefly touched on above, ‘exploration time’ is an important part of any programmer’s growth in their job, spent on anything from reinforcing the basic to exploring the latest, coolest framework. However, as most can relate, when you are working on that cool thing, or deeply focused on learning a concept, other action items can quickly fall by the wayside.

Every programmer should have time for exploration. Simply allot that (sacred) time in the programmer’s schedule, appropriately take into account this time in project scheduling, and provide clear business deliverables. To bring more structure to this ‘exploration time,’ provide a recurring venue (e.g. monthly lunch) for people to share their own goals, findings, and accomplishments with one another; in turn, this results in ‘exploration time’ being a valuable experience for all, existing within a focused environment, not distracting nor detracting from the business milestones or long-term strategic goals of the company.

Prioritization. A fundamental characteristic present in the environment of the World’s Best Programmer is Prioritization and the added boost in productivity over the loosely prioritized or non-prioritized list they receive. Such Focus supporting prioritization can be achieved through the maintenance and presentation of a personalized short-list of to-do items to each individual programmer within the organization. The list should consist of clear priorities, with no overlapping / identical priorities, so the programmer can work on each item, one at a time. As a society, we often make claims of being able to juggle multiple, simultaneous projects and priorities – more recent studies …

… have proven this to be false, misguided, and harmful to productivity and correctness. As a very wise programmer once told me, as I tell you here today, “while we like computers to multi-process as much as possible, having humans do that usually comes with a price of context switch and mistakes from lack of focus.”

For Focus

A good programmer, as does the World’s Best Programmer, will value the freedom to explore and learn, but equally value, and be motivated through, the successful efforts you take to help remove unnecessary distractions and provide for an environment that permits Focus on their short-and long-term goals.

The Search Continues

In addition to…

Clarity, Organization & Focus

… and before this individual, World’s Best Programmer, is announced, the characteristics…

Communication & Inclusion
Challenge & Respect

… will be further explored and discussed in the subsequent articles of this multi-part series.

Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.

Enjoy!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

The Product Guy’s Weekend Reading (March 13, 2009)

Every week I read tens of thousands of blog posts. Here, for your weekend enjoyment, are some highlights from my recent reading, for you.

01_shark-jump

On Starting Up…

http://www.businessinsider.com/the-new-startup-dream-jumping-the-shark-2009-3
The upside of "jumping the shark."

 
 

On Design & Product Experience…

http://www.joelonsoftware.com/items/2009/03/09.html
On being a ‘product guy’ at Microsoft.

02_microsoft-product-manage
03_theguardian

On Modular Innovation…

http://www.web-strategist.com/blog/2009/03/10/dream-how-the-guardians-api-could-let-a-thousand-stories-bloom/
The Guardian’s opening up contributing to the increase in Modular Innovation.

 

Have a great weekend!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

World’s Best Programmer is… [w/ Organization]

anotherstar …to be announced at the end of this series.

unkown-person I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.

Motivation

My answer is many fold and I provide a framework towards greater understanding in part 1.

The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.

Today, let’s take a deeper look at Organization.

Organization

Programming is both an art and a science. The art can be found in requirements that a program must not just work, but be aesthetically pleasing (easy to maintain and understand, and sometimes enjoyable, appreciated and admired) to current, and future, programmers. The science keeps everything coordinated and efficiently functioning in harmony — be they the programming efforts of a team of one, or many.

And through, as well as with, the sciences and scientific arts come the call, the requirement, for Organization, and some basic steps and examples that can assist in creating an environment of Organization – within which is found the World’s Best Programmer.

For Example

Empower the programmer(s) with an organized, structured work environment. Such structure should clearly delineate which individuals are responsible for accomplishing/providing what and when. Clear processes avoid confusion. At a minimum, very clear processes should exist, and be succinctly documented, for…

Meetings. A daily (or regularly recurring) update meeting, where people can share their task status updates with the rest of the group and highlight challenges and potential project conflicts with potentially relevant parties, is very valuable. All meetings do not have to be, nor should they be, longer than is useful, but they should occur like clockwork, on specific days and times, with no exceptions (even if the next meeting is to give everyone a quick 30 second update that there are no updates). This institution of sacred meeting time builds regularity and consistency into the often overlooked value of information and knowledge sharing — and can be a central driver of all of the other highlighted programmer motivational tips.

Development. From the origination of a project idea through to business analysis, design, development, QA, acceptability testing and final project release there should exist very clear, ordered processes for working within each stage and regarding movement of a project from one stage to another.

And, as a corollary, the necessary tools and resources needed to accomplish the various tasks should also be made available to further bolster the Organization and consistency of the environment. For example, everyone should be making use of the same version control software, as well as applying the same procedures for checking-in, -out, and promoting the versioned content.

Furthermore, a well organized environment will be one within which goals and processes are clear, wherein the end goals can be clearly understood without overburdening any individual with excessive details beyond those needed for the current and upcoming tasks. This, while simultaneously allowing for the ease of access to deeper knowledge along with capabilities to be flexible and adapt to changing goals and business cases, will create an environment that breeds great programmers and, in which, the World’s Best Programmer is found.

The Search Continues

In addition to…

Clarity & Organization

… and before this individual, World’s Best Programmer, is announced, the characteristics…

Focus
Communication & Inclusion
Challenge & Respect

… will be further explored and discussed in the subsequent articles of this multi-part series.

Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.

Enjoy!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

The Product Guy’s Weekend Reading (March 6, 2009)

Every week I read tens of thousands of blog posts. Here, for your weekend enjoyment, are some highlights from my recent reading, for you.

01_advice4vcs

On Starting Up…

http://particletree.com/features/how-not-to-pitch-to-a-startup/
Feedback to VC’s from a startup, on pitching.

 
 

On Design & Product Experience…

http://www.newsware.msnbc.com/
MSNBC is experimenting with the news experience. Check them out and please share what you find, like, and don’t like.

02_msnbc
03_nytimes

On Modular Innovation…

http://www.readwriteweb.com/archives/times_open_developers_new_york_times_api.php
New York Times moving forward with the openness and connectivity of Modular Innovation.

 

Have a great weekend!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!

World’s Best Programmer is… [w/ Clarity]

anotherstar_thumb2 …to be announced at the end of this series.

unkownperson_thumb8I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.

Motivation

My answer is many fold and I provide a framework towards greater understanding in part 1.

The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.

Today, let’s take a deeper look at Clarity.

Clarity

An important condition in crafting an environment, within which the World’s Best Programmer can exist and thrive, is Clarity. Clarity is the act of providing programmers clear project requirements and goals. Elaborate upon objective, measurable project, and longer-term overarching, expectations. When deadlines are involved (as they typically are) convey them within the context of clear, reasonable, understandable timelines.

For example, instead of saying to a programmer …

“This program has to be scalable with little maintenance.”

… elaborate by saying something like …

“This application has to be able to handle up to 300 transactions per second per machine and can scale horizontally up to 20 machines. Maintenance can not take more than 1 hour of a system administrator’s time per day.”

Use consistent terminology. Maintaining this consistency can often be facilitated via a wiki, or other centralized knowledge repository, that people can access and update as new words are introduced and existing expressions evolve. Building upon the previous example, the word ‘machine’ should be a defined quantitative, such as…

“A computer with 512 GB RAM, Dual-core Intel Itanium 1.6Ghz, 1TB Raid 0+1, running RHEL 4.”

Another common example can be seen in the frequent use of words that imply an amount, coming in short of the necessary Clarity that a quantifiable value would provide.

For example,

“This application should always be available.”

… should elaborate upon ‘always.’ The manager providing this requirement to a programmer should consider and provide, to the programmer, insight into …

What does ‘always’ mean?
How long should the application take to recover?
What type of fallbacks should be in place?

Also, with word like ‘always,’ a wide range of solutions depending on its final elaboration that can lead to vastly different cost projections for building and/or maintenance of a project. Further Clarity can be imparted by providing guidance on the budget available, and / or the budgetary goals with respect to a task, when available.

Consistent Expectations = Improved Clarity

Within projects and tasks, make it a habit of having a goal(s) statement; walk the individuals involved in the task through an explanation of the goals. Leave no requirements implied.

Another great approach to providing Clarity, especially consistent Clarity, is working from project template documents with sections for goals, requirements, deliverables, tasks, work assignments, etc. (n.b. A template also reduces the chance of forgetting to clarify an important item/step.) Templates provide a sound foundation to build upon, enhancing and expanding a developer’s project and task Clarity, as everyone learns and adapts.

Short of these points, providing confusing, unclear, indecisive requirements with unrealistic, or artificial, timelines will only breed frustration, and worse, anger.

The Search Continues

In addition to…

Clarity

… and before this individual, World’s Best Programmer, is announced, the characteristics…

Organization & Focus
Communication & Inclusion
Challenge & Respect

… will be further explored and discussed in the subsequent articles of this multi-part series.

Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.

Enjoy!

Jeremy Horn
The Product Guy

Add to Social Bookmarks: Stumbleupon Del.ico.us Furl Reddit Magnolia Google Add to Mixx!