<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>www.gregmajor.com</title>
    <link>http://www.gregmajor.com/index.php/site/index/</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:creator>greg.b.major@gmail.com</dc:creator>
    <dc:rights>Copyright 2008</dc:rights>
    <dc:date>2008-11-18T14:38:00-06:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title>Learning To Program</title>
      <link>http://www.gregmajor.com/index.php/site/learning_to_program/</link>
      <guid>http://www.gregmajor.com/index.php/site/learning_to_program/#When:14:38:00Z</guid>
      <description>From time&#45;to&#45;time, I&#8217;m asked, &#8221;Greg, what&#8217;s a good way to learn how to become a programmer?&#8221; To this day, I have a hard time answering that question. I got into programming nearly 20 years ago simply because I was lazy. I was working in a machine shop using AutoCAD and quickly grew tired of dealing with the repetitive nature of some tasks. At the time, AutoCAD had two principal methods for extension &#45; AutoLISP which was a specialized and ADS which was a C variant. Jarb, my colleague and first programming mentor, showed me the basics and I was off and running. It wasn&#8217;t long before I realized that I enjoyed programming much more than what I was being paid to do.


So when people ask me what the best way is to learn how to become a programmer is, I frequently respond with, &#8221;Find a problem that nobody has solved yet and go solve it!&#8221; Quite often, this results in a slightly puzzled look and a mumbled statement about some book they bought that guaranteed they would learn XYZ.NET in 21 days. Depending on my mood, I&#8217;ll try to explain that a solid engineering principal (and one that applies to computer programming) is to only build something because it can&#8217;t be bought, but that usually ends the conversation.


The trouble is, people have a tendency to approach programming from a tool&#45;centric point of view. They say things like, &#8221;Greg, I want to learn C#! Where do I start?&#8221; or &#8221;Greg, what&#8217;s the best way to learn PHP?&#8221; If I&#8217;m feeling impatient that day and they can&#8217;t tell me what problem they want to solve, I&#8217;ll probably just say something like, &#8221;Sign up for a class at XYZ. That&#8217;ll get you going. Let me know if you get stuck.&#8221; and move on. If they do have a problem to solve, often I&#8217;ll simply say, &#8221;Why not just download ABC software?&#8221; which makes me seem a little thick to some, but the smart ones usually read between the lines.


If you&#8217;re one of the people that&#8217;s asked me the question and you feel like I&#8217;ve blown you off then I will say that I&#8217;m sorry. Hell, I&#8217;ll even buy you a beer sometime. See, I have no interest in teaching you calculus. However, if you bring me an interesting problem that requires you learn calculus to solve then now we have something! If I need to help you learn calculus along the way then that&#8217;s great! If you ask, &#8221;Greg, I want to learn geometry because I need to find the surface area of a cylinder&#8221; then you&#8217;ll pique my interest, but I&#8217;ll probably respond with &#8220;2 (pi r 2) + (2 pi r) * h&#8221; since the problem has already been solved.


If, on the other hand, you came to me and said, &#8221;Greg, my grandfather really loves geometry. It&#8217;s a hobby of his. Unfortunately, his eyesight is failing and he can&#8217;t see the screen well enough to use the calculators that are currently available for Windows. I want to learn how to program so that I can write one for him.&#8221; well then my friend you will have my undivided attention! We&#8217;ll dig in to this problem and I&#8217;ll help every step of the way. Not because your goals are somehow noble, but because you&#8217;re approaching programming the same way I do&#8230; solve what hasn&#8217;t been solved and learn what you need to learn in order to solve it along the way.


Alas, there re still those that insist they want to learn how to program and yet have no real problem to solve. Well, in an effort to be a little more helpful, I&#8217;ll suggest that if you are a complete novice you might want to check out Small Basic from Microsoft&#8217;s DevLabs. Okay, so BASIC isn&#8217;t exactly sexy, but you have to start somewhere and Small Basic is designed as a learning tool. Download it, work through the exercises, and we&#8217;ll have some foundation to build upon. Good luck and let me know if you get stuck.</description>
      <dc:subject>Programming</dc:subject>
      <dc:date>2008-11-18T14:38:00-06:00</dc:date>
    </item>

    <item>
      <title>They Call Me KD0FEP</title>
      <link>http://www.gregmajor.com/index.php/site/they_call_me_kd0fep/</link>
      <guid>http://www.gregmajor.com/index.php/site/they_call_me_kd0fep/#When:04:42:02Z</guid>
      <description>It&#8217;s nice to finally get around to doing something you&#8217;ve meant to do for a long time. My own recent example is finally obtaining a amateur (HAM) radio ticket and my very own FCC&#45;issued callsign&#8230; KD0FEP. Yep, that&#8217;s me. For the next 10 years (and longer as long as I renew), I am Kilo Delta Zero Foxtrot Echo Papa. Next, I&#8217;ll be upgrading my ticket to work HF and kindly asking the state of Minnesota to issue me a set of amateur radio plates.


CQ CQ CQ DE KD0FEP KD0FEP KD0FEP K</description>
      <dc:subject>General</dc:subject>
      <dc:date>2008-09-17T04:42:02-06:00</dc:date>
    </item>

    <item>
      <title>Notable Quote 4</title>
      <link>http://www.gregmajor.com/index.php/site/notable_quote_4/</link>
      <guid>http://www.gregmajor.com/index.php/site/notable_quote_4/#When:04:47:00Z</guid>
      <description>Murray Gell&#45;Mann:


&#8221;Our planet doesn&#8217;t seem to be the result of anything very special.&#8221;</description>
      <dc:subject></dc:subject>
      <dc:date>2008-07-07T04:47:00-06:00</dc:date>
    </item>

    <item>
      <title>Designing For Rewarding Behavior: Part Two</title>
      <link>http://www.gregmajor.com/index.php/site/designing_for_rewarding_behavior_part_two/</link>
      <guid>http://www.gregmajor.com/index.php/site/designing_for_rewarding_behavior_part_two/#When:02:59:01Z</guid>
      <description>In the first installment of &#8221;Designing For Rewarding Behavior&#8221;, I closed with the sentence &#8221;Make it as easy as possible for people to do the right thing.&#8221; Another way of stating it is, &#8221;Make the right thing the easiest thing.&#8221; The best user interface designers have known this for a very, very long time, but system designers and architects often miss the mark. Top&#45;notch management in the manufacturing industry where cost of motion and safety are paramount leverage that concept to drive their employees to peak efficiency and satisfaction.


As you will recall, we were using time logging as an example. Like I said before, it is a thankless task that we put off until the last minute only to find ourselves scrambling to recall where we spent our time until we finally get frustrated and exclaim to ourselves, &#8221;That is good enough!&#8221;, and grab our car keys. It is fairly easy to discern that there are really only three factors influencing our user&#8217;s rewarding mechanism. First, users have been told that it&#8217;s important to the company because that&#8217;s how we make money. That&#8217;s the reward of doing what&#8217;s best for the company we work for. Second, they&#8217;ve have been told, &#8221;Do it or else!&#8221; and we know we&#8217;ll be in serious trouble with our boss if we don&#8217;t get it done. That&#8217;s the reward of keeping our job. Finally, we want to finish up and start our precious weekend.


Starting to see the picture? Timely and accurate timesheets are the desired behavior. However, keeping our job and starting our weekend generally carry roughly the same reward index and they both grossly outweigh doing the right thing for the company. This is the fundamental flaw we must correct if we want the desired behavior from the system. If we don&#8217;t change the indices then we&#8217;ll continue to see the same result which, first&#45;hand experience tells us is timesheets that are usually submitted on time, but are rarely very accurate. Given the value the company places on timely and accurate timesheets, these aren&#8217;t acceptable results.


I suspect by now some of you are rolling your eyes and assuming that the rest of this post will be about how we all need to be better corporate citizens. How we really need to buckle down and make those timesheet as accurate as possible and never, ever late. Perhaps you&#8217;re thinking that I&#8217;m going to offer up some droll, overt reward program that bestows some horrible tchotchke upon those that get their timesheets in on&#45;time every week for some period of time. You know, something right out of, &#8221;8,000,000 Ways To Belittle Reward Your Servants&#8221; or some other horrible middle management book. No, the former only serves as fuel to feed the fire that burns in the cynical belly of the typical IT employee. The latter, while popular, would be enough to make Deming puke a rainbow of red and white beads.


Hardcore change agents appreciate the irony that determining how to make the right thing the easy thing is often the hardest thing for us when it comes to effecting truly effective change. The easy thing (which we already know isn&#8217;t the right thing because we&#8217;ve tried it and it&#8217;s not producing the desired behavior) would be to implement that asinine reward program or start walking up and down the halls yelling about how you&#8217;ll fire the next person that&#8217;s late submitting their timesheet. What I&#8217;m suggesting is the hardest thing, but if you&#8217;re in a position to influence such things then it&#8217;s probably what you&#8217;re getting paid to do. You have to step back, define the desired behavior (the &#8220;right thing&quot;), look at the holistic system, and effect the changes necessary to make the right thing the easiest thing.


So what&#8217;s the tangible product? What&#8217;s the answer? Well, if it were that easy then we&#8217;d all be doing it. The simple truth is figuring that out is what makes it the hardest thing. In my ongoing, real&#45;world case the first steps are complete; I know the desired behavior and I&#8217;ve identified the factors that I believe are influencing the user&#8217;s rewarding mechanism. The first and most obvious system change I can make is to introduce any form of user&#45;visible reporting. The existing system is a black hole where timesheet data crosses the event horizon only to occasionally reappear as poorly constructed spreadsheet wielded by an angry manager wondering why a particular project is way over budget. By introducing concise dashboards that borrow heavily from Edward Tufte&#8217;s work, we can create the critical feedback loop that directly addresses a user&#8217;s typical &#8221;Why bother? Nobody every looks at that stuff anyway.&#8221; argument and that&#8217;s a start.


The next steps will be to enter into a lightweight variation of the classic Six Sigma DMAIC. My intent is to deliver those humble little dashboard widgets, but this time a principal design goal will be to influence the user&#8217;s rewarding mechanism in a way that increases the &#8220;because it&#8217;s important to the company&#8221; index. That won&#8217;t be easy, but I believe it is possible and even if my design doesn&#8217;t fulfill this particular design goal I will still learn something and deliver a better product.</description>
      <dc:subject>Programming</dc:subject>
      <dc:date>2008-07-07T02:59:01-06:00</dc:date>
    </item>

    <item>
      <title>Notable Quote 3</title>
      <link>http://www.gregmajor.com/index.php/site/notable_quote_3/</link>
      <guid>http://www.gregmajor.com/index.php/site/notable_quote_3/#When:02:50:00Z</guid>
      <description>W. Edwards Deming&#8230;


&#8221;It is not necessary to change. Survival is not mandatory.&#8221;</description>
      <dc:subject></dc:subject>
      <dc:date>2008-07-07T02:50:00-06:00</dc:date>
    </item>

    <item>
      <title>Why Feynman?</title>
      <link>http://www.gregmajor.com/index.php/site/why_feynman/</link>
      <guid>http://www.gregmajor.com/index.php/site/why_feynman/#When:20:36:00Z</guid>
      <description>The astute reader will quickly notice that the design of this site is influenced to no small degree by one of my heroes, Richard P. Feynman. I keep Feynman&#8217;s books in my home, bag, and office. I frequently quote him and use his work to draw my own analogies. My reasons are simple and personal; Feynman helps me to be a better person. Even though I never met the man and he passed 20 years ago, he&#8217;s still the most effective teacher I&#8217;ve ever had.


Yes, Feynman was an undeniable genius. Yes, he was a bit of a self&#45;admitted scoundrel. It&#8217;s those qualities and his very approach to the world, his deep sense of scientific and educational morality, and his reputation as the &#8220;Great Explainer&#8221; that inspire me the most. I believe that while the common definition of a hero is someone that exhibits outstanding courage and nobility, the most important characteristic of a hero is their ability to inspire. Richard Feynman certainly meets those qualifications as far as I&#8217;m concerned.


A good friend and former boss of mine once did as other bosses have in the past and took me aside for some coaching. He said, &#8221;Greg, you are a dragon among sheep.&#8221; and he was speaking, of course, about my tendency to get frustrated and upset when I don&#8217;t feel like those around me are &#8220;getting it&#8221;. His message was clear and since that brief, candid coaching I&#8217;ve tried to find ways to keep those frustrations in check. Ultimately, I&#8217;ve come to realize that it&#8217;s okay to be frustrated and it&#8217;s okay to be upset, but it&#8217;s important to express that only within the context of a respect for others (even if I sometimes fail at doing so).


As I get a little older and I move along my professional career arc, I will continue to strive and molt away the scales of the dragon. It&#8217;s difficult to make those sorts of fundamental changes. Not because I fear change. Quite the contrary! It&#8217;s often because I wonder silently if it&#8217;s too late to make the change and history will record me as the dragon rather than the man. The people I respect the most are those that have high personal standards and go out of their way to offer something substantial to the world and to others. People like Richard Feynman, my brother Joel, and many of my friends. With their help, maybe I can make those changes and be a little more like them. In return, I promise to help them learn to snort a little fire every now and again.</description>
      <dc:subject>General</dc:subject>
      <dc:date>2008-07-06T20:36:00-06:00</dc:date>
    </item>

    <item>
      <title>Notable Quote 2</title>
      <link>http://www.gregmajor.com/index.php/site/notable_quote_2/</link>
      <guid>http://www.gregmajor.com/index.php/site/notable_quote_2/#When:20:32:00Z</guid>
      <description>Kurt Lewin&#8230;


&#8221;If you want to truly understand something, try to change it.&#8221;</description>
      <dc:subject></dc:subject>
      <dc:date>2008-07-06T20:32:00-06:00</dc:date>
    </item>

    <item>
      <title>Designing For Rewarding Behavior: Part One</title>
      <link>http://www.gregmajor.com/index.php/site/designing_for_rewarding_behavior/</link>
      <guid>http://www.gregmajor.com/index.php/site/designing_for_rewarding_behavior/#When:20:29:00Z</guid>
      <description>Recently, I&#8217;ve spent some time with SQL Server Reporting Services and Microsoft&#8217;s Business Intelligence Development Studio. One of my goals was to create a series of dashboard widgets that could be published to the SSRS server and incorporated into various Windows Sharepoint Services team portals.


My first target wasn&#8217;t the Team Foundation Server data warehouse, it was our time reporting tool, Web TimeSheet. Like many organizations, it is critical that our IT staff collect and report time spent on various projects in an accurate and timely manner so that our company may, in turn, bill our various clients. Creating the dashboard widgets was a drop&#45;kick. I&#8217;m reasonably impressed with the BI Studio (with add&#45;ons from vendors such as Dundas, it can be made quite powerful). The experience, however, gave me some time to consider the implications of designing for rewarding behavior.


Time reporting is an excellent culture media for this particular petri dish. Why? Because only the most very twisted individual enjoys logging their time, but it is a necessary function in many organizations. My own hypothesis is that many companies struggle with this because they haven&#8217;t considered the system holistically and, as a consequence, have failed to design for rewarding behavior. By acknowledging the system and allowing the need to design it for rewarding behavior to influence changes, perhaps you can make substantial improvements in the accuracy and timeliness of the data.


As reasonably sentient beings, our actions are conciously and subconciously influenced by the need to be rewarded. Put simply, our nature is to invest energy into that from which we will reap a reward. Everyone&#8217;s rewarding mechanism is the product of his or her own experiences in life. Ivan Pavlov&#8217;s work on conditional reflex has context here, but the point is that our brains are wired so that we spend our time and make our emotional investments in the things that we realize value from.


So what about time reporting? At our company, everyone is required to account for each hour spent during the week and have that data, in the form of a timesheet, submitted to their supervisor at the end of the week. Easy enough, except that most of us spend time working on hundreds of different tasks that dozens of projects in that time period. We know that the company places value on entering the time accurately and we understand the need to be timely so that our finance team can collect the data and bill our clients. Still, it&#8217;s a thankless task that we put off until the last minute only to find ourselves scrambling to recall what we&#8217;ve done until we finally get frustrated, exclaim to ourselves, &#8221;That&#8217;s good enough!&#8221;, and grab our car keys.


I began developing dashboard widgets based on our timesheet data for the same reasons that most organizations do: to provide management with Key Performance Indicator (KPI) data at their fingertips. Shortly after I began, however, I began to realize there was greater opportunity to be had from the same investment of my time. I stepped back from the program and the data. I stepped back from the people and their managers. I stepped back and began consider the system. It didn&#8217;t take long to conclude that what I was doing was fundamentally flawed. Creating those widgets for management wasn&#8217;t going to improve how accurate or how timely the information was. In fact, I was probably going to make things worse.


When an organization is faced with assigning a task that nobody wants to do, it frequently takes the brute force approach to influencing an individual&#8217;s rewarding mechanism. Someone near the top of the organizational heirarchy proclaims, &#8221;Do this thing or else!&#8221; and people (begrudgingly) oblige. It works because people want to keep their jobs, but it certainly isn&#8217;t an enlightened strategy. The way that I believe the most successful organizations would approach the situation would be to consider the system; to define the desired behavior and the nature of the rewarding mechanism and effect the changes necessary to that system in order to acheive the desired behavior more often than not.


Make it as easy as possible for people to do the right thing.</description>
      <dc:subject>Programming</dc:subject>
      <dc:date>2008-07-06T20:29:00-06:00</dc:date>
    </item>

    <item>
      <title>Notable Quote 1</title>
      <link>http://www.gregmajor.com/index.php/site/noteable_quote_1/</link>
      <guid>http://www.gregmajor.com/index.php/site/noteable_quote_1/#When:19:11:00Z</guid>
      <description>John Kenneth Galbraith&#8230;


&#8221;Faced with the choice between changing one&#8217;s mind and proving that there is no need to do so, almost everyone gets busy on the proof.&#8221;</description>
      <dc:subject>Quotes</dc:subject>
      <dc:date>2008-07-06T19:11:00-06:00</dc:date>
    </item>

    <item>
      <title>A Series of Hills</title>
      <link>http://www.gregmajor.com/index.php/site/a_series_of_hills/</link>
      <guid>http://www.gregmajor.com/index.php/site/a_series_of_hills/#When:14:41:00Z</guid>
      <description>Nelson Mandela is frequently credited with the quote, &#8221;After climbing a great hill, one only finds that there are many more hills to climb.&#8221; Whether he said it or not, the words ring true for anyone that has accomplished anything of significance. I wonder, does this realization, consciously or not, somehow dovetail with people&#8217;s fear of change? Is fear of change actually a manifestation of that realization?


Perhaps at some age we all realize that there is no &#8220;downhill run&#8221; in our lives, but rather a series of hills. We have personal hills, professional hills, family hills&#8230; maybe some people react to that realization with hopelessness and dismay. Those people might be the ones to allow others to push them up the hills (complaining the entire time). I&#8217;ll call these people the &#8220;flatlanders&#8221;. Others, on the other hand, might embrace the uphill challenge knowing that is the best way to be truly satisfied with success. Those are the &#8220;mountaineers&#8221;.


Philosophy is, in my opinion, idle speculation when not applied to one&#8217;s self. After all, the true value of philosophy is to give us reason to think and reflect on our own beliefs. So if we all, at some point, realize that there are hills and how we react to that realization becomes one of our defining characteristics, where do I fit on the scale? Am I a flatlander or a mountaineer? I like to believe that, at least professionally, I am a mountaineer. I embrace the uphill and more often than not I do my part to push the flatlanders over the hills as well.


In the end, I believe that you&#8217;re free to chose how you&#8217;ll react to the hills. Success as an organization, however, can only be assured when the mountaineers outnumber the flatlanders, when the organization aggressively eliminates those that prevent others from climbing, and when the culture supports celebrating each and every summit.</description>
      <dc:subject>General</dc:subject>
      <dc:date>2008-07-03T14:41:00-06:00</dc:date>
    </item>

    
    </channel>
</rss>