in

 

AgileJoe

Answering all world issues with, "...it depends..."

January 2008 - Posts

  • Should you blog?

    Jeremy Miller has a great post on should you blog.

    I agree completely with Jeremy in that as a professional software developer you should blog regardless of your experience.  Jeremy points out a lot of good points and bad so I am not going to reiterate what he said but what I will add is this.

    If you are a senior developer or you want to become a senior developer/lead someday, it is imperative that you have a blog. Why? 

    Our development culture changes at a rapid pace.  Because of these rapid change it requires that the seasoned professional be able to adequately convey this information to others in a written and in verbal communication mediums.  Blogs are a first place medium to covey this thought process in a written format.  As a senior developer/lead, your knowledge will have to be imparted to others of team.  I understand that the most effective scenario for this impartation is actually coding with the team.  But this assumes you are already there.  How about if you are applying for a job and your employer really wants to understand just who you are as a developer.  I hate to say this but if you have a blog and have the skill set to match, you have a better chance at getting the job then others.  Do all shops have this thought process? Probably not but I wouldn't be surprised if this becomes a standard weeding interview question in the future for senior developers.

    Blogs help you remember.  I can't tell you how many times I have a thought about something related to Agile and remember, "hey I posted about that."  Blogs allow you to instantly recall thoughts and ideas about a particular subject and refine what you may have written or completely dismiss what you thought at the time.

    Humility people!  Don't be afraid to be wrong about what you think.  It is ok to be wrong.  I am going to say this again.  It is ok to be wrong.  You are going to be wrong and it's ok.  The fact is, you placed your thoughts out there to share with the world.  If everyone agreed on everything everyone said we would have peace and joy in the world.  You can't remove the human element from the world, so just understand someone some where will ALWAYS disagree with your thoughts.  But remember you aren't blogging to make the world  a better place.  You are blogging first and foremost to simply convey your thoughts and opinions.  If the world becomes a better place because of it, well consider yourself blessed. 

  • dog : cat :: developer :developer :)

    Roy Osherove is looking for some help on his book on how to explain the ease of changeability of private vs. public methods.

    He is looking for an analogous representation on how to better convey this concept to the reader. What I found most amusing and at the same enlightening, where the different analogies that were thought of to explain this context. 

    When I am speaking to clients I always finding myself coming up with all sorts of clever analogies to explain the problem domain and the impact to the software for certain decisions they might have.  For the most part this goes over very smoothly.

    When pairing with other developers analogies tend to dissolve rather quickly.  I am not sure if it is because we are so analytical that we like to find an outcome for every possible scenario out there or is that we just like to debate.  Its probably a little of both. 

    The way we think is quiet different compared to others, our abstract thought process is geared around the relationship of compositional structure forming some kind of symbiotic state with one another.  As the behavior of one object effects another we look for ways to isolate the changes to only a specific stream of concern.  This thought process tends to degenerate when an analogy outside the problem domain violates the representation of the model that we have in out minds or if it doesn't compliment it in anyway.  Subjectivity does not lend itself either.  The fact that most of our craft is subjective astounds me to know end on how we are still able to create such works of art.

    I came across and interesting topic concerning analogies called "Shared Structures".

    From wikiPedia

    According to this view, analogy depends on the mapping or alignment of the elements of source and target. The mapping takes place not only between objects, but also between relations of objects and between relations of relations. The whole mapping yields the assignment of a predicate or a relation to the target.

    Which translates to this: Computer applications demand that there are some identical attributes or relations at some level of abstraction. Human analogy does not, or at least not apparently.

    Hence why we can't agree on common metaphors to explain anything between us.  I use the term "agree" because most of the time we don't, we simply compromise (give in) to the metaphor but we rarely agree to it.

    So I was wondering rather then debate about the concept I would like to hear different analogies on various principles and practices surrounding software development.  They are all going to different and at the same time brilliant.  The goal is to have fun and provide different aids to help convey these principles to other developers.

    Who know some of us may be able to bring epiphanies to others.

    I will start off the first topic:

    Separation of Concern

    My car radio and my cars horn both have a shared resource of my cars battery.  I can use the two independently without one effecting the other.

  • How to drink from a fire hose

    I have encountered several people over the last week who have simply lost interest in the Alt.Net mailing list due to the overflow of information.  Simply to much information to keep up with.  So I asked them to show me how they were utilizing the mailing list.

    For the most part, the people that were just over whelmed were going to the Yahoo group and responding through the portal.   I will be honest, Yahoo make the less then an enjoyable experience.  So here is what I recommended to them.

    Use GMail!

    By utilizing GMail's ability to automatically group discussion threads, allows you to easily view the discussion from where you left off.  If you have already read a message GMail collapse the entire block only exposing unread message threads.

    OK, so how do I do this Joe?

    < This is assuming you have a GMail account set up />

    1. Navigate to the home page of the Yahoo group, for instance: http://tech.groups.yahoo.com/group/altdotnet/
    2. Click on the "Edit Membership" link
    3. In Your Contact Information, under Email Address if your GMail address is not listed there add it at this time.
    4. For the Message Delivery Make sure that "Individual Email" is selected (if you don't do this you are not going to enjoy what you receive in GMail)
    5. Click on "Save Changes" at the bottom of the screen.
    6. Log into GMail
    7. Once you receive your first email from the list, open it.
    8. Click on the "More Actions..." drop down
    9. Select Filter Messages like these
    10. At this point the text box "Has the words:" should contain "listid:(<altdotnet.yahoogroups.com>)" or what ever list group you used.
    11. Click on the "Next Step" button
    12. Check off "Apply the label:" and in the Choose label... drop down select "new label" NOTE: If you already have a label you would like to use, go ahead and use that one!
    13. Name the Label "AltNetStuff"  or what ever you want to call it.
    14. Click on the "Create Filter" button.
    15. We are not done yet.  You should be on the home page of GMail now.  The Labels List should be in the left hand margin of the screen if it is not expanded, please expand it.
    16. Find the "AltNetStuff" label and click in the gray box to the the right of the label.
    17. Select a color.
    18. Now you are done!

    Now when ever a new topic is added to the list an email will be sent to you inbox and it will be flagged with the label "AltNetStuff" and a pretty color is added to catch your attention.  If you want to respond to a topic all you have to do is simply reply to the email.

    Please be courteous to those of us that use Smart Phones to keep up with the group by doing the following:

    1. When replying to ANY message make sure to perform the following keyboard short cut: ctrl-shift-A > Del
      • Now the message should be empty.
    2. If you need to reference any previous message simple copy the text that is pertinent to your reply and at each line prefix it with ">"
    3. Navigate to the end of your message.  Just to make sure you didn't forget to clear the box before you started typing perform the following key combo: ctrl-shift-end > Del

    Hopefully this gets people reengaged in the list and we will help each other grow this great community.

  • (A Belated) Welcome Chad Myers!

    Sorry about this one Chad, I accidentally saved it to my draft folder.

    LosTechies happily welcomes Chad Myers to the crew!

    Now I have even more people to hang out with in Austin!

  • Passionate about People!

    Over the last couple of weeks I have had time to observe many aspects of myself and of the development community.

    One of the epiphanies I had was that I am passionate about people more than coding. I love to mentor other developers. I love to mentor future development managers. I love to coach others about Agile practices.

    The reward I get is not in them simply listening to me. It is that magical moment when the light bulbs go off on a new concept or when they come up with an outstanding solution to a problem. I love when people accomplish things. Trust me people don’t come up with these ideas because of me, all I simply do is trim the forest so they can see the trees. They are brilliant in their own right.

    Don’t get me wrong I still love to code but I love to elucidate concepts to others even more. On top of that I care about people to much to the point that I can’t sleep some time. You see I am the kind of person who wants everyone to get along. I know, I know that is not always possible but I will try my best to create an atmosphere where everyone can at least be heard and talk through their issues with one another. If I upset someone I will usually seek them out and find out what I did to upset them. If I don’t, I usually end up decomposing the altercation to some resolution that will insure it doesn’t happen with anyone else.

    Why am I taking to the time to write this all down? Well for two reasons:

    1. I want to make sure I reflect on this in the future.
    2. Is this issue concerning the perception of emotion when conveying information in a written format. i.e. blogs, mailing list etc. Emoticons are a thin medium to convey emotion over these channels but personalities overall are usually lost or misunderstood. With the exception of meeting me in person you have no idea what my true demeanor is. While I love to mentor other I usually do it with a lot of humorous satire. My goal is to get you to smile first and learn second. If you had just met me for the first time you could mistake the satire as literal sarcasm and think I am demeaning you or others.

    I just believe that a lot of the rhetoric that is exchanged with other peers within our community can be brought down if we truly took the time to learn each other’s true personality. Or at the least take a moment to sit back and reflect on the question, “Is what I am interpreting truly what this person is meaning to convey?” If you are unsure, ask!  A majority of the time people just didn’t think what they had written would be taken in the way you perceived it.

Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems