From Team Motivation to Design Hell

Every week I read thousands of blog posts. For your weekend enjoyment, here are some of those highlights.  What are you reading this weekend?

01_motivation

On Starting Up…

http://www.entrepreneur.com/humanresources/employeemanagementcolumnistdavidjavitch/article206502.html
Motivating your team can be tricky in the best of times.

 
 

On Design & Product Experience…

http://theoatmeal.com/comics/design_hell
Finding humor in a design process gone wrong.

02_design-hell
03_blippy

On Modular Innovation…

http://news.cnet.com/8301-27076_3-20004735-248.html
Blippy broadens its Modular Innovation footprint.

 

Have a great weekend!

Jeremy Horn
The Product Guy

About these ads

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

anotherstar … motivated, excited and productive. And she, or he, may be sitting right next to you.

The prevailing element cited by all those who participated within this series or provided suggestions for World’s Best Programmer was Respect. From UltraRob discussing the understanding of ‘why’…

UltraRob Says:
February 26, 2009 at 1:02 pm

Most programmers are very self motivated. We like to solve problems and create cool things. Sure we sometimes need to be guided to focus on things that make business sense but if we’re given the information to see what is important that usually isn’t a problem.

From my perspective programmers don’t need much to be motivated but many managers don’t understand what it takes. For me it’s the little things that make me feel respected and take ownership. I don’t even have to agree with decisions as long as I understand why the decision was made and my view was heard. If I’m given those things, I’m pretty unstoppable.

…to Chris Geier’s nomination of Mike Scheider as World’s Best Programmer

chrisgeier: @theproductguy Mike Schneider. Does the amazing in limited time, and is always looking to do it better. A great quality

…the one element, evident throughout the successful implementation of all of the previously discussed characteristics, as well as noted in almost all of the feedback received is Respect.

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.

Let’s take a deeper look at Respect.

Respect

If Communication is the glue that binds together the environment of the World’s Best Programmer, from Clarity to Inclusion, then Respect can logically be seen as the glue’s glue, the foundational element upon which the rest is built.

Without Respect between programmers, between programmers and managers, and any other relevant permutations of these, no one, not even the World’s Best Programmer, can thrive. The key characteristics described throughout this series…

    • Clarity
    • Organization
    • Focus
    • Communication
    • Inclusion
    • Challenge
    • Respect

… cannot be built upon without the most basic foundation of them all, Respect.

Respect, more importantly, MUTUAL Respect, a 2-way relationship, comes from all parties establishing and fostering mutual credibility and understanding. It is something that either exists or is lacking in the whole. If Respect is not mutual, then it can be truly said to be lacking. If Respect only flows in one direction, the effect on the individual on the receiving end is negligible since the source is not respected and, therefore, is not valued.

Building Respect

Sometimes easier to accomplish than others, most difficult if already lost, there are some examples that everyone, from programmer to manager, can learn from.

Micromanaging. Getting overly involved in a technical process for which you will not be directly creating, no matter the intention (e.g. "to help") is most frequently interpreted as a lack of trust, either of skills, and/or Respect, for co-worker space.

"So Easy." Don’t be the individual known for telling other programmers "Oh, that’s so easy." Programmers consider boundary cases, scaling, etc. which are not always "so easy." Just because a high-level business case is simple, its simplicity does not necessarily extend to the technical implementation. Exclaiming such simplicity often minimizes programmers’ skills, and, in turn, their Respect for individuals making these broad assumptions.

Corollary: Time. Make sure everyone has the time to do things properly. It, of course, goes to say that everyone is communicating about time constraints and other requirements associated with the "things to be done."

Explain. Don’t assume everyone is on the same page when it comes to methodologies and processes. Whether you are a programmer or a manager, explain and clarify the processes. For example, when projecting that a task will take X time, explain the ‘what’ and the ‘why’ behind the methods and logic of the projection.

Strength. Present strength with clarity. When working with other programmers, do not mislead them about the level of influence you have in the processes, or their change.

  • Stand up against feature creep.
  • Stand up for your programmers / co-workers / managers (from time to disruptions).
  • Don’t promise what cannot be delivered.

World’s Best

anotherstar The World’s Best Programmer may be sitting right next to you, maybe it’s you. Every programmer has that potential and it is up to everyone; programmer, manager, and organization to carefully craft and maintain the environment with the characteristics…

Clarity. Providing clear project requirements and goals.
Organization. Balancing the art and science, of programming, through structure.
Focus. Removing distractions and hurdles.
Communication. Promoting openness, free flow of ideas and information, and teamwork.
Inclusion. Empowering throughout all aspects, from idea origination to release and support, from business facing to backend, of the product processes.
Challenge. Fostering growth, new learning, and meaning.
Respect. Establishing and fostering mutual credibility and understanding.

Through careful thought and application of the characteristics discussed throughout this series you may soon become, meet, or be introduced to the World’s Best Programmer.

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 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!

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

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 Challenge.

Challenge

Challenge can be seen as a double-edged sword. Challenges surround programmers each and every day, both as motivators and demotivators. While not necessarily a driver of success in every programmer, some prefer to keep it simple and focus on the familiar and ‘what they are good at.’ Nonetheless, leveraging Challenges towards positive outcomes is very prevalent where good programmers are found, especially within the environment of the World’s Best Programmer.

Challenges that foster …

  • personal and career growth,
  • new learning, and
  • meaning

… represent the best drivers of excitement and reward.

Many programmers will always be able to find fun, productive, and new ways to Challenge themselves simultaneously benefiting those around them.

Other programmers may seek a challenge that provides that personal meaning, but require a little guidance. Work with programmers and assist them in finding or building upon Challenges that are new and exciting to them. Reinvigorating a common task or a persistently onerous effort through finding that Challenging, motivating spark will bring new life and engagement to both the work and the programmer.

Different programmers are motivated by finding different, personally appealing, Challenges in their daily work. These Challenges can be anything from …

  • Optimizing speed or memory,
  • Reducing the total number of source code lines,
  • Satisfying the needs of a client,
  • Maximizing modularity and reusability, and/or
  • Crafting that perfect algorithm.

Competition

One way to build an environment with positive challenges is to support the many seeds already present in the form of friendly competition. Such friendly competition, when appropriately encouraged and reinforced is great in the establishment of a self-sustaining, self-organizing system of motivational Challenges.

Friendly competitions can take on the form of total number of tasks completed, to fastest execution, to more broadly inclusive contests for ‘coolest’ app.

Leverage

Within an atmosphere of open Communication it becomes easier to learn how to transform problems that demotivate into those that Challenge in a rewarding way (for the programmer, as well as many more within the organization).

No Limits

A common mistake when thinking about what sort of ventures are best for Challenging programmers is to stereotype and only think technically. There are many ways a programmer may be seeking to grow in their job that can equally be great motivators of success, from tech, to business, to peer interaction. Keeping the Challenges varied and the communication flowing will help identify those tasks (perhaps not previously even realized by the programmer) that bestow new and meaningful experiences. These could be such activities as being a manager for a product or learning to be a better communicator or more socially engaged with the non-technical groups.

……………

From the good programmer to the World’s Best, Challenge them and provide new ways to give meaning and value to their work.

The Search Continues

In addition to…

Clarity, Organization & Focus
Communication & Inclusion
Challenge

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

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!

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!

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!

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!

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!

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!

World’s Best Programmer is…

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

unkown-personI 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.

My answer is many fold…

Create an environment that values empowerment, self-worth and meaning. These are the pillars on which motivation and self-satisfaction in the workplace rest. Through an understanding of these pillars, and how they relate to, in this instance, programmers, one can then foster the conditions necessary in this search, as well as instrumental in providing an environment where programmers / developers can thrive.

A good programmer, just like anyone else within your organization, seeks these things. The challenge for many a manager (especially for the technically challenged) is relating to the individuals that make up their team, and understanding the underlying motivational drivers, from the programmer’s perspective.

Motivation

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…

From Clarity to Focus

Clarity. Providing clear project requirements and goals.
Organization. Balancing the art and science, of programming, through structure.
Focus. Removing distractions and hurdles.

From Communication to Inclusion

Communication. Promoting openness, free flow of ideas and information, and teamwork.
Inclusion. Empowering throughout all aspects, from idea origination to release and support, from business facing to backend, of the product processes.

From Challenge to Respect

Challenge. Fostering growth, new learning, and meaning.
Respect. Establishing and fostering mutual credibility and understanding.

And More…

These all present a sound foundation to build and reflect upon, in search for the World’s Best Programmer! But, before this individual, World’s Best Programmer, is announced, the characteristics…

Clarity, Organization & Focus
Communication & Inclusion
Challenge & Resphttp://tpgblog.com/2009/04/14/worlds-best-programmer-respect/ect

… 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!