With my latest contract, I will be celebrating almost seven years ( 6 continuous years ) as a senior consultant. Â I’m comfortable with that title for some very simple reasons: Â I started my first business ( onsite tech. support ) when I was 13 then got bought out by a larger firm and became a junior partner at 16. Â Then after moving from Florida to Philadelphia ( trust me, official records say Philadelphia is a city but it’s really a state of it’s own ) I started college and multiple companies. Â I know the cardinal rule of business, which is to provide less for more but appear to be providing more for less ) regardless of domain.
As a consultant, your technical know how usually plays second fiddle to finding ways for your client’s to be profitable and self-sustaining. Â Not to say that you can be technically inept but I’ve worked with a few consultants that were/are. Â It doesn’t really matter what the most elegant choice is sometimes if its going to take to long to ensure your client keeps the initiative in their business domain. Â That really sucks, but its the truth.
That said, both my clients and my consultancy agencies I’ve worked for have thrown all sorts of crazy titles at me. Â Chief engineer, chief sys. admin, architect, senior engineer, lead engineer, software developer, etc. Â I’ve been somewhat dumbfounded by the naming choices as the reality doesn’t always match the title.
During the interview for my recent client, when they asked what grade/title I felt I was at I told them I was a competent software engineer with full stack experience. Â It would have been quicker to just say “I’m the mother fucking man” but I refuse to do that because all it takes is one little estoric piece of knowledge I don’t know about to blow that card house down. Â Somehow we got into a monologue where I explained my opinion on titles:
Apprentice
What’s the difference between a POST & GET based form? Â I don’t know how to setup a development workstation. Â Of course I know SOAP but why do we have to use all this XML? Â Why do I need to use a quicksort when this works? ( emergent bubble sort ).
I don’t know what you’re saying.
Journeymen
Caching is stupid, it gets in the way. Â Why should we use that open source framework when we can write our own? Â Documentation sucks and we don’t have enough time to implement unit-testing! Â Yo dawg, I herd you like patterns so I put a singleton factory in your observer so that I can command pattern inject your dependancies…. uhm no, I’ve got no idea how to fix that bug, let me get back to you in a couple days ( turns out to be an entire week). Â But we’re going to need all this extra complexity because I’m bored and figured will need it someday soon.
I don’t know how to implement that and won’t tell you that until I’ve fucked things all to hell.
Craftsmen
I think I can get that done in the needed timeframe. Â I hate this language/framework/database but will bear down and get this done while looking for opportunities to make things better. Â I refactored feature X to use a factory pattern and will make notes to try and reinforce that change elsewhere. Â I’m hesistent to add more complexity here and realize this will be a problem in the future so I’m going to add a quick unit-test to ensure integrity.
Here is how I would implement that, what do you think?
Master
No I won’t/can’t implement that right now until we get the core features down. Â Why don’t you like technology X,Y,Z and how can we compromise? Â I appreciate your input and will take that into consideration. Â Hey boss, check out what minion 12 accomplished, I think he/she/it has a bright future. Â It’s unacceptable to modify the system tier framework to resolve your issue, asking the framework mailing list/group for advice/criticism and if they accept it then submit a path.
I will delivery these features in this time frame and if I can’t I will tell you why and a better target date.
Summary
I’ve been writing software since I was 7 or 8, I’ve made a couple million dollars in revenue writing software over a decade or two, and my clients have made several more million using that software. Â I’ve worked with people with decades of “experience” but no practical knowledge and inversely people with literally a year or two of experience but are masters at their trade. Â I remember working with a Ruby on Rails developer a couple years back who was a goddamn bad ass combat developer knocking out reliable code and pulling epic 90 hours weeks..he learned to program the year prior. Â The conclusion is that I think titles are a bit of crap. Â Sticking around long enough with a company and you’ll end up being the lead/chief/senior company minion by default. Â OR have enough clients you half-assed through and you can claim the title of senior… but neither is an indicator of competence.