Archive for the 'Mumbo Jumbo' Category

Professionalism

June 27th, 2008 | Category: 01100011, Mumbo Jumbo, Sector 7G

I wanted to talk about a few things relating to being a professional. Specifically, dealing with being a professional software developer. Whether you work for a small contractor, a start-up company, or a monstrous development firm. I want to focus on the idea of job security and the illusion many developers harbor about it.

I ended up discussing the topic with a coworker once. The discussion had ventured to the topic of what happens when a key developer leaves a project. In some teams or projects, the key developer takes with them the potential success of the project. That is, the developer had been employed under the “Superman Syndrome.” This is what happens when a single developer finds themselves in a position to create themselves job security through obscurity. Either they have mastered a complex codebase, memorized certain pieces of information and neglected to share it, or have an extremely high tolerance for bad code. When they leave the project, the remaining members are forced to pick up the pieces (at the peril of their paychecks) or scrap the project. Neither scenario is beneficial.

Under this situation, the developer has created what they believe is job security. The reality of the situation is this is a false sense of security. A lazy company or management may let this slide. It’s a slippery slope and it will only get worse with every day this developer is entrusted with resposibility. The up-tick is that this developer is not likely creating many new technologies, but rather maintaining the seemingly unmaintainable. If you are reading this and think you possess job security, you’re delusional. Your employer has no reason to be tolerant of such behavior; there is always a recent college graduate that can fill your shoes.

The worst kind of Superman is the kind that intentionally does their job in such a bizarre manner that others find it difficult to work with their products. By this I mean they write complex or poor code in the hopes that others will be incapable of maintaining it, thus ensuring the company will always need them. Some do this more indirectly than others by choosing a poor design or omitting the design process entirely. This is more poisonous to the company than anything else and I consider it a form of insider sabotage.

You never know when you or another key developer could be hit by a bus. If you are the key developer, don’t leave a mess for someone else to deal with. If you are not the key developer, it would behoove you to document as many things that can be learned as possible. This will create a knowledge trail that will help you and your co-workers deal with a gaping hole in the team.

I believe that what a single developer adds to a project should not be quantifiable. A high quality developer will add a skill-set to the group to fill a specific role. A developer’s success is measured by their intellectual output, so they must possess the ability to flex, learn, craft, lead, and take direction. For example, I hope that if I left the group or project I am currently assigned to that I will leave the group or project in a better state than I joined it. I also would like to think that the only thing I take with me would be my abilities and experience. I hope that the main thing that will be missed in my absence would be my ability to solve problems and create solutions to complex situations.

Moving on to something in a slightly different direction, I wanted to briefly talk about how to build yourself into key developer that positively impacts every development team you join. Jeff Atwood recently dug up a good article (by Steve Yegge) recently about how to do so. You have to treat software development like a craft. Crafts must be practiced, honed, and enjoyed. Going to work does not merely mean that you are advancing your abilities, so take a peek over at Jeff’s coverage of the article or the original article itself. While you’re at it, be sure to read Norvig’s article about how to develop yourself in the span of 10 years.

I personally believe that I have an ability to perform a craft that must be honed and perfected like any other artisan skill. Even professional football players have to go to practice to maintain and improve their abilities. I practice by playing a little golf, reporting bugs to prominent open source projects, and contributing patches. I eventually gain commitbit access to a full project, then I will likely have to tackle the more social and political aspects to being a developer. I am also a graduate student which requires the most critical and analytical thought process of any task I’ve undergone. If you are a developer, I urge you to practice your craft (or not, it’ll make me look better and get paid more).

So in closing, software engineering is a craft like no other. It’s possible for too many people to get comfortable in their job. It’s possible for some people to poison and ruin everything they touch. It’s also possible for someone to make a hugely positive impact to everything they work on and everyone they work with. As a professional, everyone has to decide what they want their role to be.

No comments

Perl Six

June 21st, 2008 | Category: 01100011, Mumbo Jumbo

I’ve been increasingly interested in partaking in perl6 development as of late. I have been keeping up with the various efforts and perl headlines. I even bought the first perl6 book when it was first released.

Lately, I have been keeping an svn checkout of parrot up to date making sure it compiles properly. The most popular implementation of perl6 appears to currently be Rakudo, which is perl6 on parrot. I was originally following the pugs implementation in haskell but was completely turned off by the language of choice. My attention was forced elsewhere due the primary developer losing focus, abandoning pugs.

Being written in PASM (Parrot Assembly Language), it has received plenty of attention. Also, because it is distributed (temporarity) with parrot in the languages section, there is no short supply of active developers.

Pugs did give the perl6 community one great thing: a starting point for the test suite. As of right now, all of the rakudo tests are pulling the test suite from the pugscode repo. This is a great starting point for any implementation and helps centralize the entire perl6 test suite (the pugscode suite is largely incomplete).

Last night, I was discussing the current state of the perl6 implementations with a few of the developers in the IRC #perl6 channel. I was caught up on what’s going on in the community and found a focus. My urge to write some slick new perl6 code can be satiated by working on the pugscode suite. Eventually, I’d like to start solving those problems in the Rakudo implemtation as well.

We’d like you to join us as a author for Pugs.

My interest and enthusiasm must have impressed someone, because one of the developers gave me commitbit access to the pugscode repo. If I submit enough quality patches to parrot/rakudo, I will get parrot/rakudo commit access as well. While pugs itself may be abandonware, the test suite is still the most advanced yet and is in active development.

Join me in #perl6 and help propel perl6 into history as the most powerful language available, yet again.

No comments

New Shoe Smell

April 20th, 2008 | Category: Mumbo Jumbo, Runner's Log

I finally bought a new pair of running shoes last weekend. I have been using the Brooks Adrenaline GTS for a while; I’ve gone through 3 pairs now (on the 4th).

I went to my local Run On! and pestered the saleswomen to fit me for various shoes like I do every year. That is, once a year, I go to Run On! and try on a bunch of shoes to see if any of them suddenly fit and feel better than my last pair. Every time so far, I’ve kept with the Adrenaline because they fit like a glove and I have yet to experience any pain. Granted, I keep the milage at or under 30 a week right now and I stick with a reasonable pace, but I put them through the ringer. The last pair I just switched from had turned a dingy brown and have been worn through about 700 miles or so (had them since last August). Around January, I had to start using my expensive inserts to prevent injury. I always get lectured about how I should replace them every 400 miles, but like the dentist telling me to floss, I usually blow it off.

Well, I have a confession to make. Every time I buy a new pair of shoes, I spend a while sitting in front of the TV smelling them. The smell of new shoes is exhilarating, intoxicating even. I’m not sure what it is about the smell, but brand new shoes smell so good to me. Perhaps it’s my brain realizing the smell as a vision of all of the miles and meditation ahead of me. I feel like Cinderella would if she bought a pair of glass running shoes instead of slippers and found that the prince was a runner as well. I bet he couldn’t get 700 miles out of glass running shoes though.

The best part of new shoes: the joy of feeling like Superman again for a few weeks while they wear in.

No comments

Legal Distractions

June 06th, 2007 | Category: Grinds My Gears, Mumbo Jumbo, Polinitpick

I promised a while back that I would sift through some of Microsoft’s patents to show how little merit their campaign against Linux really had. Well, I’ve been distracted from doing that lately, so let me explain a bit.

I have lived in 7 apartments since I moved out of my parent’s house 7 years ago. Seems like a few too many, but I actually took advantage of the typical 10 month lease most apartments offered (at the time) and moved into a new apartment every school year. I’ve had 4 roommates, one of which I am married to. I’ve never been evicted, but I have been evacuated before (I’ll have to tell that story later, it’s long). Anyways, the point I’m trying to make is that I am finally getting tired of living in apartments and think that we should start looking for a home of our own.

One thing that’s always bothered me about buying a home though is the Home Owners Association that many neighborhood force upon the owners. I’m not a big fan of someone dictating to me what I am allowed to do with my property so as long as it doesn’t violate state and federal regulations. To make things even less appealing, you have to pay fees and fines to this association. Sure, you get a well manicured entrance and possibly a community pool, but at what cost? Sunshine mentioned a friend of hers was evicted from her home because she did not pay some fines. Knowing this person, I suspect what really happened was the association dues were not paid. While I am not largely concerned with being forced to join a HOA as I have the choice of the neighborhood, I am very interested in the possibility of eviction over fines. I’ve even read that it would be possible for an HOA to foreclose on a home you own entirely, be granted the power of sale, and sell your home (which you own) to recover some fines. That seems extremely unethical and illegal, so let’s explore that some.

I decided to dig around and look into the Texas state regulations regarding property ownership rights and HOA regulations. I first started by finding a local area HOA website and read their CC&R’s (Convenant, Conditions & Restrictions). The HOA regulation that I will cite in the rest of this post refers to the Raven’s Nest neighborhood of Rockwall, TX (east of Dallas).

First let’s start by going over some of the statutes in the Texas Property Code since Texas (specifically, Hayes county) is used as a case study for property rights in the US. The applicable statutes is found in Chapter 209, titled ‘Texas Residential Property Owners Protection Act.’ Sifting through that chapter, you’ll find Section 209.009 the most interesting as it states the following:

Sec. 209.009. FORECLOSURE SALE PROHIBITED IN CERTAIN CIRCUMSTANCES.

A property owners’ association may not foreclose a property owners’ association’s assessment lien if the debt securing the lien consists solely of:

  1. fines assessed by the association; or
  2. attorney’s fees incurred by the association solely associated with fines assessed by the association.

Now, if I’m reading this correctly, an HOA is not allowed to foreclose on a home if the debt in question is based solely on fines from the HOA or legal fees incurred related to said fines. Digging around on the internet, you’ll find that this is in stark contrast to the Inwood North case back in 1985. This basically gave HOA’s in Texas the ability to foreclose on your home when you don’t pay your HOA dues. It’s unclear if these dues are the same as the aforementioned fines or legal fees assessed by the association. There is also the question of what is classified as debt and what is classified as a fine assessed by the association. That treads a very fine line and I bet there needs to be more of a legal precedent to define these terms.

So going back to Raven’s Nest. I took a look at their CC&R and found it to be rather restrictive and it actually contradicts state policy. Have a read, you’ll find that residents aren’t allowed to place any sign visible from the street, are forced to use white or light neutral window coverings, are not allowed basketball goals, and are not allowed to perform any sort of maintenance on their vehicles without prior authorization.

Of particular note is that Raven’s Nest prohibits signs of all nature. This directly violates the Chapter 202 Section 009, which grants all citizens the right to place political signs in the yard when an election is nearing. There are other contradictions, but it’s getting late and I am having a hard time looking for more (feel free to comment to others that I am missing).

In the end, I found that I will read every single article of any HOA rules and regulations as well as finish reading the Texas Property Code, as it applies to a homeowner. The good thing is the state legislature seems to be much more effective in making changes locally than the federal government. I now know that I will have to be in complete agreement with any HOA that I sign. I also intend on taking the system down from the inside out; I’ll probably join the HOA board and try to rectify arbitrary regulations that have little to no effect on the value of property.

No comments