Scrum Anti-pattern: Outlier Pigs

Posted in: Software Development, Development Processes

In the Pig and Chicken analogy for Scrum participants (Jeff Sutherland explains Pigs & Chickens), the Pig is the one who is required to make the biggest commitment and put his proverbial skin in the game. For the Pig, it is an all or nothing proposition. They either meet their commitment or they do not, there is no gray area. However, many teams fail to get this level of commitment from their Pigs, or don’t even ask for it in the first place. This is the genesis of the Outlier Pig.
Continue reading »

Scrum Anti-pattern : Prioritizing Stories Within Sprints

Posted in: Software Development, Development Processes, Effecting Change, Software Development, Leadership, Software Development

The prioritization of Stories is a core practice in the Scrum agile development process. In fact it is probably the single most important responsibility of the Product Owner – making sure the Product Backlog is prioritized properly to maximize business value (a.k.a ROI). However, there is a common anti-pattern that I see regularly in which the Product Owner and the Delivery Team act complicitly to establish a priority order for Stories that are being committed too within a single Sprint. The need to do this comes from a negative place and it has dramatic consequences for the Delivery Team.
Continue reading »

Apple MacBook Pro Memory Upgrade

Posted in: Reviews, System Administration

When I buy a tech gadget, whether it be a cell phone or a laptop for example, it always costs me twice as much as everyone else. No matter how good a deal I try to find, it always ends up costing me exactly twice as much as everyone else. Does this happen to you?

It is caused by Geek Wife Gadget Purchasing Syndrome, wherein I cannot buy any cool technology without also getting the same thing for my wife because she also covets cool gadgets.

We had planned to update to the latest MacBook Pro this coming January, as that would mark 3 years since we purchased our current identical in every way MacBook Pros. However, in these turbulent economic times and because of the syndrome mentioned previously, we decided to explore alternatives.

In the end we decided the laptops were not too bad and we could probably squeeze another couple of years out of them, but we had to do something about hard drive space and RAM. So this post details the RAM upgrade and I will detail the hard drive upgrade in another post.
Continue reading »

Microsoft Hates Testing … Um, No Surprise There

Posted in: Software Development, Craftsmanship, Software Development, Development Processes, Software Development, Quality Assurance & Control, Reviews

A colleague of mine forwarded an article to me during this last week, which he prefaced with the following statement …

guys, I’ll write it in all caps and bold:

I AM NOT PROMOTING OR IN AGREEMENT OF ANY OF THE POINTS THE ARTICLE MAKES.

… which begs the question, why did he send it not only to me, but an entire team of people? I choose to believe it was because he is an enlightened soul that understands that the best way to reinforce your own beliefs is to read more of the opposing point of view, not more of the view you already have. I am lucky to have a few of these souls working for me right now.
Continue reading »

Coding Standards – Quality From The Ground Up

Posted in: Software Development, Configuration Management, Software Development, Development Tools, Software Development, Open Source, Software Development, Quality Assurance & Control

Coding styles are THE religious debate of the Software Engineering industry. Everyone has an opinion, but no one has an iron clad argument as to why their ideas are better than someone else’s.

It doesn’t matter what language you write your code in or what company your work for or even what open source project you contribute too, the topic of coding styles will sooner or later raise its head. The debate can range from the banal, like which line the curly brace goes on, to the overly subjective, like how to name variables.

In the end most of the decision points are pretty subjective and it is somewhat irrelevant what you choose, as long as everyone agrees and you are consistent. But don’t be mistaken, a consistent coding style is an important consideration on any project, from the solo developer to the multi-national team.
Continue reading »

SoCal Code Camp Los Angeles II

Posted in: Software Development, Craftsmanship, Software Development, Development Processes, Software Development, Training

SoCal Code Camp is back, November 21st & 22nd

Code Camp is a place for developers to come and learn from their peers. This community driven event has become an international trend where peer groups of all platforms, programming languages and disciplines band together to bring content to the community.

Who is speaking at Code Camp? YOU are, YOUR PEERS are, and YOUR LOCAL EXPERTS are…all are welcome! This is a community event and one of the main purposes of the event is to have local community members step up and offer some cool presentations!

Design Patterns 15 Years Later

Posted in: Software Development, Architecture & Design, Software Development, Craftsmanship, Reviews

It is one of the most venerated books in the world of Software Engineering. It is such an icon it even has its own nickname and even the acronym of the nickname is easily recognized by most software architecture and design zealots.

I am of course talking about Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Also known simply as the Gang of Four book, or even more simply as just GoF.



I in fact never purchased the book myself, but I have definitely read it and it has been on my bookshelf for the best part of a decade now. When I first moved to the United States I moved into an apartment that was being rented and paid for by the company that hired me. It was the heady days of the .com explosion so there was a high rate of turnover at the company. When I moved into the apartment, it was clear that the previous occupant/employee had only just vacated and had left some personal belongings behind. One of the items carelessly discarded was a copy of Gof.

Now to be fair, the book will put the hardiest of readers to sleep pretty easily – it is most definitely a tome of knowledge, not a work of entertainment. But nonetheless, my copy is certainly worth the dead trees it is printed on.

As with many new ideas, there is rarely just one person thinking about them. It usually takes these visionaries getting together and coming up with some common terminology and cohesive thoughts to really launch the new idea into the mainstream. This is what GoF did for Design Patterns, and it is in this launching that its main value resides.

It is hard to believe that this book is already 15 years old. But InformIT has just published an interview with 3 of the gang (Vlissides died on Thanksgiving Day in 2005) to look back on the book, its influence on the Software Engineering industry since its release and whether in the rapidly changing world of app stores, mashups and the like, whether the book is still relevant.

InformIT: Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson > Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson

Should You Use Recruiters?

Posted in: Consulting & Entrepreneurship, Software Development, Leadership

There has been a good debate on the Los Angeles Java Users Group mailing list this week about working with recruiters, both from the job seeker side and also from the employer side.

In my career I have worked with recruiters on both sides of the fence and I think the argument boils down to the same issue no matter which side you are on – working with good recruiters is a good idea and working with bad recruiters is a bad idea. Apologies if you were expecting something more earth shattering!

Many recruiting houses are simply glorified keyword matching services and they all function almost identically. If you visit their offices you will find a large room with two large tables, one designated for “Hardware” and one for “Software”. All the folks around the Hardware table are working to fill Hardware related positions and the Software folks are doing the same for Software positions. There will be 4 to 8 folks at each table, each with a computer and a phone permanently strapped to their head. At the end of each table will be a large white board with the “Hot Jobs” listed with the keywords to try and match, plus salary and commission rate (not surprisingly the higher the salary and commission rate, the hotter the job miraculously becomes). The main purpose of the folks at the table is to process the highest number of resumes as is humanly possible (from active job board postings, from their DB of past resumes etc.) and bring the resumes with the best keyword match to the top of the pile, then do a bare bones phone screening interview (ie. does the person actually exist) and then pass the pile of resumes off to the employer. The employer then has to process the resumes all over again, screen out 80% of them because while the keywords are there, there is an obvious problem elsewhere and then interview the other 20% to find out if any are even close. Most of the time you can achieve the same results as an employer by paying the fees to monster.com and doing the search yourself – it might even be quicker.

But as a job seeker you do need to be in contact with recruiters because many positions are never posted widely/publicly (at the request of the employer). In this scenario the employer is engaging the recruiter to get at their pool of contacts that are hopefully pre-screened etc., some of which may not even be in the active job market, but are known to the recruiter. This becomes increasingly true if the position being filled is higher up the corporate ladder (manger, director, VP etc). However, a bad recruiter will waste a lot of your time if you are not careful.

As a manager, these keyword matching recruiters are the bane of my existence and 50% of the reason I never answer my phone at work (the other 50% of the reason is software sales guys, but that is another post). The endless cold calls just trying to present me “a really exceptional candidate” they have found or “just wanting to know” if I have any open positions. These guys are really the sleazy used car salesmen of the IT industry.

As a job seeker it will be pretty obvious if you are working with one of these houses. Firstly if you ever get a phone call in response to a resume you submitted and it sounds like the person on the other end is sitting in a room full of people talking loudly, then they probably are. I have even been asked to hold the line when talking to one of these guys and while I was waiting I could hear another recruiter at the table talking to another candidate on their phone about the exact some position!

One of the other classic traits of these organizations is their incessant need to keep the job seeker and the employer at arms length from each other – the theory being that they need to control the communication stream so as the employer and the job seeker don’t reach their own agreement and the recruiter misses out on a commission. This is a symptom of the fact that the recruiter and the employer are not closely engaged with each other and do not have a strong working relationship. This also just hurts your ability to present the best of yourself to the employer. You are the person who knows your skill set and experience the best, and yet you are letting a recent high school graduate with 2-days in house training represent you. Another tactic is for these houses to take your resume and rebrand it with their logo and add their contact information and remove all of your own contact information. This involves a cut-and-paste from the resume you submitted and invariably ends up in a less than professional looking document. Just wait until one of these guys takes it upon themselves to actually edit the content of your resume “on your behalf” without asking you and you will very quickly realize that these guys are probably hurting rather than helping your job search.

Also, just be a little wary about the employer if they are using these kinds of companies. Its probably not a deal killer for you as the job seeker, but just pay close attention to what else your employer might not be paying close attention too.

But! There are good recruiters too, they are just a little harder to find.

I have worked with good recruiters on both sides of the fence as well. From an employer perspective a good recruiter who knows your industry and knows the local talent pool can be invaluable. They can help you shape the job description and salary of an open position to align it with what is happening in the rest of the industry and so attract the type of candidates you want. They can find candidates that are not in the active job market because they have built up a high quality contact list of candidates they have placed in the past or have met during prior searches etc.

These recruiters are usually smaller shops with a smaller focused recurring client base. Many work on a mix of retainer and actual placement fees, so they are not all about placing as many people as possible, they have an incentive to establish and keep long term relationships with employers by providing exceptional candidates.

From the job seeker side you will have to do your research to find these kinds of good recruiters. They probably won’t be posting hundreds of jobs on monster.com because they simply are not filling that many positions at one time. All of the ones I have dealt with in my job searches have found me, not the other way around. When they call you, the background of their side of the conversation will be quiet, because they are not working in the bull pen, they actually have an office! They will likely want to talk to you for a while and have an actual conversation. They will want to determine if you are an all around good candidate, not just a good keyword match.

If you are presented to an employer by one of these trusted recruiters, you are going to be going into that interview with a lot of credibility already on your side. Plus you already know you are one of just a few folks that are going to be interviewed, because that is what the employer is paying for – to not have to do hundreds of interviews.

So in the end, a good recruiter is someone you want to be in contact with, no matter if you are an employer or a job seeker. A bad recruiter on the other hand can waste a lot of your time and also actually hurt your chances of finding a job or filling your position.

Introducing Google Chrome Frame

Posted in: Software Development, Web Technologies

Today, we’re releasing an early version of Google Chrome Frame, an open source plug-in that brings HTML5 and other open web technologies to Internet Explorer.

http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html

Agile Open California – SoCal Gathering in September

Posted in: Software Development, Development Processes, Software Development, Training

Agile Open California is a coalition of agile practitioners and advocates with an intention to provide an opportunity for learning, networking and growth to the Agile community in California and others who are interested.

Using the Open Space Technology framework, we hold Gatherings where sessions are self-organized around topics important to the participants. We invite you to take this opportunity to share your experiences, test new ideas and learn what other practitioners are thinking and doing!

http://agileopencalifornia.com/index.php?option=com_content&task=view&id=19&Itemid=46