Software Developer vs Consultant - What's Better For YOU?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

It's not necessarily a choice. I am actually both.

๐Ÿ‘๏ธŽ︎ 1 ๐Ÿ‘ค๏ธŽ︎ u/oweiler ๐Ÿ“…๏ธŽ︎ Jul 25 2017 ๐Ÿ—ซ︎ replies
Captions
are you just starting out in your software development career and you're trying to decide should I be a software developer for a company or maybe go into consulting and software or maybe you've been a software developer for a long time at an existing product company and you're entertaining the thought of going into consulting well stay tuned because today we're going to talk about being a software developer versus a consultant and what might be better for you in your career hi I'm Jamie Edwards and I help leaders of software development teams and software companies to do a better job releasing their software understanding what their customers want and having an environment where people can be as creative and innovative as possible today we're going to talk about the trade-offs between going into software development at a software product company versus being a software consultant now I've got a lot of experience with this I've been doing software development for about 21 years and the first 10 years of my career were for product development companies as an employee after that I went into consulting and really learned a lot about that side of the business and so I hope this video today can share with you some of the things I've learned to help you make a decision that might make your career more fulfilling for what you're really looking for right now so the first thing to talk about is influence how much influence do you have on your projects your company and maybe the technology that people use things like software processes specific toolkits and frameworks well as a developer at a product company being an employee of that company it usually depends on your title or your position so if you come into a company as let's say a junior developer depending on the culture of that company people will be somewhat receptive to your ideas especially if it's a start-up or a smaller company but at a larger company oftentimes people with you know bigger titles or names are kind of looked up to as the people that make those kinds of decisions and you can be a little more difficult to get influence now as a consultant it's more often that the influence that you have may be a little bit higher you may have more influence than a product developer when you come into a company but it really depends on why you're there usually when a company is hiring a software consultant they're not really thrilled about it per se it's usually because there's something at that company that they figured out we can't do this ourselves and so we are going to hire a consultant well sometimes companies hire consultants and the consultant shows up and they boss them around and tell them what to do and they're not very receptive receptive rather to their input it's a little silly the whole reason they're there is because they figured out they can't do it themselves but there's other companies that are very receptive to software consultants they're more humble and hiring someone and bringing them in for their skills they're figuring I'm probably paying a lot of money per hour for this person so I might as well listen to what they have to say so as a consultant at least the potential exists you can have quite a bit more influence than a product developer the next thing to talk about is how does the business perceive you whether you're a software developer at a software company versus a consultant well most businesses have two different ways of treating software development if software development is creating value for a company and with the investment they make in development they're able to offer new products and services that make money software developers can be looked at as a profit Center each person is helping generate revenue and hopefully resulting in a good business model profit for the company now in a company instead where their main product is something that has nothing to do maybe with software development or maybe the software developers that they hire an employee are really there to kind of keep the lights on and help manage and control and keep things running smoothly but they're not actually adding direct value instead those software developers can look be looked at by business as a cost center they really cost something that the business wishes they didn't even have to pay for and often those businesses are going to look at you as a software developer as your overhead so whatever we can do to reduce how much we either have to pay you or maximize your output that's often what they're focused on as a consultant when you come in the business is usually looking at you as a provider of a solution you're there to solve a problem you're there to either show them the way to do something or more often you're brought in because nobody can figure out how to do a certain thing or they've maybe even hired another consulting firm before this happened to me oftentimes that just failed didn't do a good job and they're like we need someone who can come in and just get this done you know solve this problem for us so the business is typically looking at a consultant as this is not somebody I'm going to keep on full-time this is somebody I'm going to pay temporarily and I may even have to pay more than my own people but once they get me through this issue I have or this problem then I'll be able to maintain it you know with my own employees or my own people so let's talk a little bit about how consultants or product developers you know developers at product companies are looked at by their peers well in the first ten years of my career again when I did software development for product companies my peers looked at me like family you know I'm a member of the team I sit there with them every day I go to the same meetings everybody else does I'm you know getting the same benefits about as everybody else I have pretty much the same influence and say I'm susceptible to the same company policies and usually people are just going to look at me as you know I'm a member of the team now as a consultant you're not often looked at as a member of the family and in fact it's the opposite you're looked at as an outsider or a third party and so people can be very distrustful of a consultant so one thing that I tell people is if you're considering getting into software consulting one of the things is you're going to have to be very calm scribble with coming into a company where they're going to be looking at you with a lot of scrutiny and being a little bit skeptical and paranoid of you at least at first I had a really hard time with this probably my first two or three years and software consulting but after a while it becomes one of those things you just know it's part of the the business you know that you know when you first get there a big part of your job is to establish that trust and it's fine you know you see people treat you with skepticism and it doesn't even faze you after a while it's just part of the job but it's something you need to consider if if you really think it would be very difficult for you to have people be worried or concerned or paranoid about whether you can do you know what they're asking you to do that spotlight on you tends to be at least in my experience it's a little stronger as a software consultant you know the product developer sure you're going to go through an interview process you're going to get on the job people still don't know if you are a good hire but again that extra stress of a software Consultants usually being paid more because they're being looked at as we hired this person as an outsider because they're an expert or a guru I hate that term but people love to use it you know about some particular technology or process that scrutiny is something that you just really are going to have to work at to get comfortable with if you want to get into consulting of software so key traits what are the things that really are really important from a skill standpoint if you're going to be a developer that works for a software company versus a consultant well if you're working for a software company typically unfortunately the main thing most companies look for is technical acumen so we all know anybody who's went out there and tried to get a job through you know the many job hiring sites that are out there most job positions they have a section that talks about you know communication and knowing agile and you know whatever process stuff people are looking for but the bulk of the focus especially by recruiters you all know this tends to be do you know the technologies that we're using on this project so when you go into a company as a software developer that works for a software company it's really key that you have the right skills that they're looking for at least when they bring you in the other thing that usually companies look very strongly for in a hire that's going to work for the company as a permanent employee that's going to do software development is culture fit and this is one of those things where I have a really hard time with it because you know I've worked at companies where they look at culture fit as kind of how people communicate and treat each other I've looked at other companies that honestly in my opinion culture fit is really just are they as smart as we are that's very subjective and you're going to have to just kind of figure out on the job or during the interview process rather what their idea of culture fit is and you know I've seen people and I myself as well and been rejected from you know jobs through an interview where people just say oh they weren't a culture fit and they give you no other information than that and it tends to kind of just be a catch-all for there's just some reason that we're not comfortable communicating to you that we don't think you'd work out here it's really unfortunate because you know I look at the interview processes as a time that if you're a company interviewing someone this is your opportunity to really help them even if they're not the right fit for you but you know so many companies are so worried about lawsuits and saying the wrong thing and discrimination that they tend to be very cold about the interview process it's just a reality but you know again culture fit is something that I think is really going to be important when you're going to be a permanent hire but it's up to you to kind of figure out what does that even mean for that company now as a software consultant the key traits are very different the first key trait I would say that's really important if you're going to do good as a software consultant is likeability meaning how much about your personality and how you interact with people and how you convey yourself is really likeable that people are going to enjoy working with you this is really important because this is a software consultant you're often brought in again being paid by the business they don't really they wouldn't pay for you if they didn't have to and you need to get a job done or solve a problem as quickly as possible and the only way you're going to do that is if the key people that you need to work with and interface with to be successful because usually again as a software consultant you're not a lone wolf even if you go in there by yourself maybe you work for yourself and you don't even work for a consulting firm your ability to make good relationships work with the people that already work for that company is huge and if you get good at this you can build bridges with people and do things that nobody who works for that company can do so likeability is something you need to consider now am i telling you to go out and dress a different way and change how you relate to people and you know completely polish yourself in a different way No be yourself but you know at the same time if the way that you interact with people tends to be in you know I know everything kind of attitude or you talk down to people you might start considering what kind of effect that has on people and if you're going to go into software consulting you probably can't continue those behaviors and really at least reach the success that you could have if you learn to be you know professional confident but a little humble you know and a little more appreciative of the people that are there because they need to like you to trust you so you can actually do the work and that brings me to the second point about that that's a key trait I think if you're going to be a software consultant and that is communication you need to be excellent and above and beyond about communication and when I say communication you know I think a lot of people think PowerPoint presentations written documentation you know big videos they might make you know the media that you use and being able to get in front of a bunch of people and you know stand in front of a podium and talk about how you know everything sure those are great skills but really when I talk about communication it's more about clarity meaning how clear can you about what you're trying to get across and also understanding your audience can you get in front of the CFO and help him or her understand this is why we're going to budget differently while I'm here or can you get in front of the UX department or you know if it's embedded UX the people who are on the team that are doing design and help them understand this is why we're going to release more quickly and we need you to actually let's say be helping us make design decisions embedded with our team if that's the way you're going to work you know whatever that is being able to talk with people and help them understand why the change that you need them to make you know is important to the business but it's also important to them really really important okay there we go giant wasps probably practically diving at my head again I'm in Austin so I can't always control the outdoor environment and the third key trait if you're going to be a consultant and I think you know all these traits I'm talking about they're beneficial to both but I think it's really beneficial at least in my experience when I went into the consulting side being good at the software business so what do I mean by this I mean when you go into a company as a consultant it's really important that you figure out how does their business model work at this company what kind of effort do they have to put in to make money and how do they actually collect revenue from their customers or their channels and how do their software products play a part in generating that revenue and who are all the people that are key decision-makers that make that happen and kind of what some history of the business so you know as a software consultant even though oftentimes I would be brought into a project to solve a problem I wasn't very effective if I just showed up and tried to understand okay let me look at the technology of your existing product let me look at the code let me look at the infrastructure let me look at your development process that was all key but if I just look at that then I really just kind of dropped into the organization and started doing work the way everybody else was and oftentimes the reason that there was a problem that existed I was brought in for in the first place didn't have to do with technology it instead had to do with culture or some way that the business and engineering were interfacing with each other that really was not working at that company and the only way you're going to find those things out is by not just talking to the engineering side of the house so I think as a consultant if you're if you're going to do this kind of work or if you're going to move into the consulting side of software development for your career being able to have you know you don't have to be an expert of business you don't need this that's not really what I'm talking about but having an appetite for it in an appreciation for it in an understanding of how necessary understanding how each company's making its money structured its organization you know positioned its products in the market how all the people work to produce that at least at a fairly high level that's really going to give you the vocabulary you need the terms the history so when you get in meetings with people or you propose things they don't look at it like who's this person that we hired who the consultant that has no idea how we even make money here they're suggesting things that don't even make sense you know you're going to be able to suggest things that are perfectly aligned with how things are looked at there and so they're going to be accepted and people are going to be able to move on them much quicker so let's talk about pay or benefits you know as a software developer or a software architect or you know an engineer at a software company when you're an employee it's typically you're making somewhere some number that's related to you know market rate there may be a rate that in your city let's say people tend to pay for someone with your title or experience and the company you go to work for is usually going to pay you some range around that you know some companies pay a little higher some pay a little lower if you're doing remote work you know some companies are willing to pay you the rate in the city you live in some are going to try to get you to accept a salary that's the market rate for wherever the headquarters is located you know you kind of have to decide yourself how you feel about that and if that works but usually your pay is somewhat limited to market rate now again a startup or a company that's willing to offer you equity you may have some shares or you know some percentage of ownership of the company should it grow that you know if you're there long enough for that to vest you may get some money that way too and there certainly have been some people who have made a lot of money that way there's way more people who have not made anything from it but you know it's it's a way to make money as a software developer as at a company now as a consultant it depends a little bit on how you setup the contract when you get work with a client but there's a couple different ways one is you know the most common way that customers tend to want to pay consulting firms is billing per hour you know they want to look at if I were to hire let's say a DevOps architect if they brought you in for DevOps you know what's what are typical consulting firms you know asking or offering services per hour for for someone with that skill set and what are you asking you know what what do you want us to pay you and doing some negotiating around hours and you know if a company hires a consulting firm and they're going to hire let's say a whole team of five people to do something sometimes the consulting firm will cut them a deal like hey you're paying for five of our people we're going to charge you a little less since you're you know buying so many resources or so many people's time of so many people's effort at a time that all kind of depends but the other way and especially it's easier to do this if your independent consultant that you can also potentially make a lot more money than a software developer at a product company or a consultant who's being paid per hour is you know getting a percentage of the opportunity so what does this mean well if a company brings you in as a consultant and they're saying we're looking at solving a problem that's going to generate you know three million dollars in cost savings for us in the first year and two million dollars per year after that for the next five years we'll shoot that's like you know around over ten million dollars for the total solution if somebody comes to you and wants you to solve a problem for them that's worth to the business ten million dollars it would be silly for you to negotiate around hourly rate when instead you can negotiate a percentage of that opportunity you know if they're going to save ten million dollars if you solve the problem you can ask them yeah I'm willing to do this for you for five hundred thousand dollars and this will be done in the next six months and if they understand the opportunity cost and what you're charging them they have to make a decision now they can go out and find somebody if they can find somebody to solve that problem for less but I see many consultants that don't try this because they don't understand look a company if they've got a huge upside to making a change and they can quantify that and sometimes as a consultant you need to help them quantify that they don't even know how much they're going to save but let's say you can help them get to that number well then if it's honest and it's fair to ask for a percentage of the opportunity you're enabling that company through your work and not looking at it as you're going to pay me per hour because you're not just doing a number of hours of work you know that they're going to pay the market rate you're actually enabling them to have a huge profit or amount of extra revenue coming in or cost savings or whatever that is so that's something you need to consider as far as your rewards if you're going to be a consultant is you may want to get better at negotiating and understanding how does the work I'm doing enable a larger effort that's going to make money for that company and how can I ask them for a reasonable piece of that opportunity you know and it's going to take some some negotiation and tweaking a little bit and kind of seeing how they feel you know negotiation is a huge thing whether you're in sales you know or you're in consulting or whatever but again I just want to encourage you to think about if you do get into consulting of technology or software there's the potential to make significantly more money you just have to price and have your business model be set up to align with that different way of actually making money off of an engagement with a client so growth what are the differences in how you have potential to grow your skills depending on if you're a software developer for a software company versus a software consultant well it depends a lot on the culture however I can give you my experience which again is about 21 years I'm not an expert at everything but I feel like I've had you know decent amount of time on both sides of the house and give you some at least feedback based on real experience when you work for a software company the skills that you improve our 10 are going to tend to be related to whatever skills are needed to build the product that you've been asked to build so you know that that sounds amazingly obvious but it's important to think about you know if you go and work for a company and they're building their product and let's say Ruby on Rails and you've got it in the back of your mind I want to become a node.js developer and so I'm going to go work for this company but eventually what I want to do is no js' well you're going to have to go to that company probably prove yourself for a while do the work in Ruby on Rails or you know whatever technology stack they're using and then eventually convince them to allow you to do no js' if you want to learn nodejs in that environment you're not really going to have the time to learn it on the job at least at first so you really going to have to spend some time outside of working hours improving your skills learning node maybe building some sample projects or having some little side gigs or you know things that you do even in your spare time for fun to get fluent with that technology should you want to do that as your full-time job now as a consultant it's often that and it depends a little bit but if you work for like a firm I work for a firm for many years oftentimes you may have a little teeny bit of experience in a technology and you're sold to a company you know in an engagement hey Jamie we'd like to have you go help this client with capacity testing in you know some environment and oftentimes I would actually have to cram on a weekend or you know there may be like a week that I have a lull between my prior client and when I'm about to start my new client they call that being on the bench and consulting you're basically not making any conference any money for the consulting firm but you're kind of reaping your skills to get ready to start that new gig so you actually in my experience in consulting you get a higher percentage of your time you if you're working on shorter engagements to improve your skills you know because in the ten years that I've been doing consulting already so far what's about eleven now you know the amount of opportunities I've had to learn new technology were so much larger than when I worked for a product company you know the amount of times I was asked to go into a client and help them solve a problem where I had never used that technology ever before and I had to show up and be confident about it and talk fluently about it and be honest about the parts that I didn't know yet but get up to speed really quick you know it can be intimidating to some people but to others it can be really exciting because you know like the first probably half of my career I mostly did dot just dotnet you know or some Java to and you know JavaScript web programming and things like that the second half of my career in consulting I mean I did business intelligence and mobile apps and master data management and Enterprise Service buses and you know service-oriented architecture and micro service all this stuff you know and it was never just like dotnet it was you know Nets this part and job is this piece and maybe they use Ruby for this so you know when I go into the market often to find a new opportunity you know I'm not really looking for a job that's like you know we want a ruby grew we want a dotnet grew you know I tend to be more of a hire I've got more hours spent probably working on web technology and mobile technology and things like this than anything else but you know I consulted you're going to build up the skill set kind of like I have where you really become an axe at how does technology enable different capabilities for a business and how do I get up to speed quickly on all the patterns that are there to understand how they work and make really good decisions about how we're going to use the technology to help the business profit and really it's exciting but it's much more challenging you have to actually not rest on you know I've spent the last five years of my career or maybe ten years in my career becoming an expert at technology X and so now I'm going to milk that for all I can know you might get done with a project if you're in consulting and two weeks later you start a new one and it has nothing to do with your prior technology and so that just kind of sits on the back burner for a while while you work on something new so that's something just you should you should keep in mind is if you're going to work for a software development company there tends to be and again it's not true of all companies a lot of this is very flexible but it tends to be that your ability to learn new skills is really dependent on how well you're able to steer the company into changing the technologies that they're using or the processes as well as how much time do you want to put in on top of your job to learn things yourself as a consultant really just the nature of the job you're going to probably have many more opportunities to learn but it can be higher pressure and you have to be willing to accept that kind of an environment so recognition how do you get recognized for good work depending on these two you know types of ways of producing software well as a software developer it tends to be that if a product that you worked on building is successful in the market you can potentially get a lot of recognition and rewards for that as a consultant it's more often that if you same type of thing if you help a problem get solved then the clients going to be very happy with you and they're going to recognize you however if you're working for a firm it's really the firm that has to recognize the good work and reward you you know again I worked for a firm for about ten years and I would often go into a client and do amazing work for that the client would be thrilled with what I did but because the firm that I worked for didn't really have an appreciation for everything I did often I wasn't rewarded by my firm you know equally for the level of effort or recognition that I got from the clients so one thing that you need to keep in mind if you do go the consulting route is oftentimes and this is something that I think is really important you should consider your your good work will not get recognition for you long term over your career you know I went into so many companies over the last ten years and completely transformed the way they do some aspect of their software development or their or their delivering their product and nobody even knows about it other than that company because you know I can't go out and say hey I helped company X and company Y and companies V when I work for a software consultancy firm because it wasn't really me that helped the company it was my firm now if you're an independent consultant or you were the head of a software consulting firm you can claim testimonials and things like that but that's something you should consider if you're thinking of being a software consultant you know if you go into a firm where you're an employee of that firm you know you may do amazing work for your clients and they're going to know about it and you know hopefully with good karma and you know just the good work you put in just like I've experienced here in Austin and you know around other other cities I've done work with remotely in things you know you start to build up a good reputation and if you ever need to get another job or you know you ever are looking for an opportunity there's people out there that remember you they remember what you did and they remember how much you helped them and they're going to want to support you but if you're working for a firm you may not get recognized at least in the short term for the amazing work that you're doing so that's something you need to consider and the last thing I'll talk about is changing the way that people work or processes for software development you know at a software development company as an employee if you've got a good reputation you've done good work at the company for a while and people trust you or you were brought in with the title to specifically do changes to the process well then you're really equipped now you need to have the skill to pull it off but you're really equipped with as long as you know how to influence people you know how to do it you're willing to put the work in you can change the way that people budget plan deliver you know get feedback how UX and QA and DevOps or ops are integrated you know you can change all those things if you want to and you're willing to put the time in if you're a software developer or a technology person working for the company that's building the software if you're a consultant however it's often at least in my experience that you're kind of at the behest of the way that client develops software now that's true if they develop software if you instead get a client where let's say for example their core business they need software to do it but the people that they employ there's no software developers you know they always outsource everything well in that case sure as a consulting firm and you personally as someone who works for them or is an independent consultant since you have complete control over how the software development process works because that's not really a skill that the business that's hired you has sure you can influence that but at least in my experience often times when I would be asked to go into a client and help them develop software you know I had to use their time tracking system I had to use their source control approach I had to use their you know idea of what agility and scrum means which was typically far from how I look at agility but again if you have like a high likability you have a good track record you know how to build bridges with people all the things I talked about in the beginning of the video you can change those things as a consultant it's just going to take you a little bit longer and at first sometimes clients can look at it like hey I brought you in here just to solve a problem why are you trying to tell me how we work needs to change and you know if you're an effective communicator and you're really passionate about it like I tend to be you can get it done it's just not as easy but the upside is it you get good at that I found as a consultant once I was able to help a client deliver software better in anyway all of a sudden I got a lot of attention on me and people were very willing to then bring me into higher-level conversations where oftentimes I met with people that were way up in the company that you know other people in the engineering side of the house would never even get to sit down and talk to and I'd be sitting in meetings with them you know pitching a whole bunch of stuff that I had already talked to the engineering team at the company about and I knew they wanted to do so it wasn't like I was going behind their back but I was helping them get their ideas to a larger audience so you know the summary of this just is if you want recognition and stability and a pace where you kind of can adapt and you know and learn new technologies in a little bit slower I don't want to say slow not at all but a little bit more paced work style you know software development at a software company I think is going to work better for you if you want to actually be able to branch outside of just the technology and be challenged with having to learn the business more have the potential to make way more money if you learn to negotiate you know how much money you're going to charge based on the opportunity cost you know the percentage of what opportunity you're enabling for that company and you also want to just be able to have much more influence at higher levels of or of the organization if you learn the right skills you know being a software consultant can be really exciting and lucrative so if you like this video today please give me a like below give me a thumbs up subscribe to the channel and we'll talk to you next time Thanks
Info
Channel: Healthy Software Developer
Views: 49,666
Rating: 4.9647937 out of 5
Keywords: software developer, software consultant, software, developer, consultant, career, software development career, software engineer, engineer, technology, technology career, consulting, software consulting, influence, cost center, profit center, likeability, culture, culture fit, communication, software business, programming, programmer, software architect, software leader, career growth, grow, technical skills, consultant vs developer, software development, engineering
Id: 28Uh9erOyLg
Channel Id: undefined
Length: 34min 57sec (2097 seconds)
Published: Mon Jul 24 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.