What I Will Do To Be a Better Developer in the Next Six Months

Wendy Friedlander tagged me into this thread. Here’s my response.

There are two prongs of efforts that I’m committed to over the next six months that will contribute to my improvement to be a better developer. They are:

  1. Integrity. To persist in an effort to more accurately perceive the technology world by continuing to gain awareness of my susceptibility as a human being to manufactured consent, and to make software that reflects any integrity that I may gain.
  2. Community Facilitation. To continue to create opportunities for conversations with technologists who have some mastery of dimensions of technology that I barely have a vocabulary for.


In the past few months, more Microsoft field staff, and even some MVP’s, have made an effort to take me aside and let me know that my criticism of Microsoft complicates their work, and that they’d appreciate it if would stop. In each of these cases, I have been the benefactor of a concern that if I don’t get “on-message”, I’ll be putting my MVP status at risk. In the wake of the Jamie Cansdale debauchery, I’m not quite sure that I’m willing to believe that these intimations are entirely baseless.

My personal goal is to gain a facility with software development so that I can better-serve a society that is utterly dependent on software and that has largely been given the crappy end of the stick. If I can’t do that, I’d simply like to not make matters worse by putting myself before the people I serve, and put yet more bad software in the world just so that I can maintain my lifestyle.

Gaining a better understanding of what great software is and how it gets made is in inseparable part of how I do my work. I’m not a day-coder. I’m in the software business because it allows me to have a job that monetizes my capacity to think, and to increase my capacity for thinking and for understanding. Software development lets me work with my mind. It lets me deepen my understanding of the fictions that limit me. It forces me to drive for a clearer understanding of reality by providing opportunities for wakeful analytical and sometimes even single-pointed meditation.

I plan to continue to explore and assimilate as many ideas about what great software is and how it’s made as I have the capacity for. I want to be a better software developer. Without this pre-disposition, no amount of memes in the entire sphere will make a lick of difference to how good I can be.

Until I’m no longer hungry for ideas or motivated to better serve society through the software that it deserves, I will continue to seek a broader and deeper perspective. If this results of my poking into places that aren’t officially-sanctioned by folks whose lifestyles are threatened by dissent… well… that’s not my concern. I’m not in it for the status. I appreciate some of the opportunities to meet up with kindred programmer spirits that status brings, but status is just a tool and a means to an end that is concerned with greater understanding.  If status comes, it’ll be because it’s deserved, not because I’ve agreed to perjure myself.

Stepping outside of the daily technological confines of where I focus my mind most often gives me a perspective that I can bring back and apply to my work so that I can do it with less susceptibility to influence that doesn’t have a greater good at heart.

I want to serve the lives of the people who can be enabled by software that I’m asked to make to empower their work.  I believe that my lifestyle will inevitably benefit by doing things in a substantive way that doesn’t suport the growth of artifice.  I can’t do that by trading a broad perspective for a narrower one, even if it means that my broadening of myself brings me into contact with ideas that so obviously contradict the agendas of folks who have been my benefactors – neither at work, nor at play, and certainly not in the MVP program.

Part of my plan to become a better maker of software over the next six months is to not cave to interests that don’t put better software development before themselves.

I’m committed to a deeper and broader perspective over the next six months that may inevitably carry me further from my Microsoft status quo than I have ever been. I can do this because I want to be a better programmer, not a better MVP – at least not by the definition of folks who seem more willing to pervert the idea of developer community toward more fear, uncertainty, and doubt.

I plan to write software with integrity, and I don’t believe that I can do that by sacrificing my own integrity for the sake of convenience. The best software that I’ve seen lately uniformly comes from programmers with integrity. I don’t plan to stand down from my own integrity because I know that integrity makes me a poorer programmer.

Community Facilitation

A number of years ago I was part of the first wave of .NET community efforts. The first meeting of the organizers of the Austin .NET User Group was in August of 2001. A while later, Bill Evjen started the International .NET Association, and a while after that I was the only person available to be to the chair of the Speaker Committee, which manages the part of INETA that provides user groups with big-name speakers a couple of times a year (actually Nancy Mesquita manages the Speaker Committee, we just took the credit).

There are two principal motivations for community involvement: personal gain and community service. When any community participant does one to the exclusion of the other, the effort suffers. When community leaders do one to the exclusion of the other, the effort is usually perverted.

I’ve had a lot of great experiences in developer community, and I hope that I’ve given as much as I’ve received, but over time I’ve found it increasingly difficult participate with the part of developer community that trades the support of some of its sponsors for the influence over the community’s perspective of some of its sponsors.

A couple of years ago I started the AgileATX community of agile software practitioners in Austin. It was established in a way that was contrary to the standardized template for a user group that had become that was promulgated and reinforced by international user group associations. Don’t get me wrong, presentation clubs are great things, but they serve only a part of the need.

Presentation clubs are the training wheels of community participation. They’re definitely better than a kick in the head, but they have terrific susceptibility to negative interests. In my own experience with communities of practice, the greater benefit came when the community members became invested in each others’ success – even when, or especially when, they didn’t even work for the same company.

AgileATX then isn’t technically a user group. In two years, we’ve never had a speaker, and we’ve never had presentations. The AgileATX membership takes advantage of the presentations given around town, but the primary thrust of its own meetings is the membership’s investment in itself.

There are no sponsors; we don’t have overhead. There’s no logo; we have no object that distracts our identification with anything but the community itself. This group has literally no artifice in either its substance or practices. It’s purpose is only to communicate experience and to create a web of relationships that amplify the stuff that the members understand and do, and it’s form and structure are the way they are so that the community is focused on its values rather than its trappings. We might do presentations at some point, and we might get a logo, but the group will stand firmly enough on its feet to not be distracted by some of the more materialistic concerns that often result by putting user group events before the user group people.

Scott Hanselman recently called developers to get more involved with active developer community situations that call us to engage and interact. This is what AgileATX does, and as a facilitator of this group, I plan to continue to find opportunities for greater interaction and integration.

Developer communities like AgileATX exist all around the country and many of them are sub-groups or presentation clubs, and their members often participate in an even broader global dialog in the blogosphere.

In October of 2007, a number of members of a global community of practice including Jeremy Miller, Hamilton Verrissimo (Castle Project), Jean-Paul Boodhoo, Dave Laribee, and many others will be coming to Austin to participate in a weekend developer community event focusing on those things that the recently-named ALT .NET community practice and promulgate.

The event will follow an open space format, and is open to who ever would like to attend. It has has to be officially-announced, but since I’m taking about facilitating community interaction over the next six months, there’s no harm in pre-announcing it here and now.

This event will offer two days of presentations, discussions, panels, and maybe even some workshops on software design, agile projects, test-driven development, domain-driven design, open source, ORM, domain-specific language, and you name it. In fact… you do name it. The content of an open space conference is driven entirely by the participants… which in itself is one of the most meaningful interactions that the community engages.

Engaging in community means much more than sitting passively through a couple presentations each month and eating some free pizza.

I plan to continue to do whatever is needed to facilitate opportunities for members of software communities of practice to negotiate meaning and create and become aware of new knowledge and understanding. I plan to do this to feed my own hunger for the understanding that makes me a better developer, and fankly, because I just like being around people who think freely and aren’t afraid to go below the surface of issues.

This entry was posted in Commentary. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

Leave a Reply