72

I work as a software developer, currently in my first job out of school. I have been working here for about 15 months. For all intents and purposes, our software "department" is in absolute shambles. We have no such thing as quality, or code review, or testing of any kind. There is no semblance of a software life-cycle. There is nothing like SCRUM or anything even close to that.

Essentially, where there would be multiple teams or at least multiple people encompassing different positions, I account for every conceivable position related to this software project. I would be considered lead developer, project manager, and QA; I handle release of the product, and client support thereafter. I also make all overall design decisions for the software and new parts of the software. The only person who ever looks at or manages the code for this project is me. I have, at one point, for a somewhat separate project, had a college intern (paid) working under me, so I was able to delegate some tasks.

So my question is, considering I am working in a very improperly structured software environment, does spending a lot of time in this position possibly make my skills look incompatible with places that are structured properly?

Does it possibly sound bad to a potential employer if I effectively say that I encompassed all of those roles at my previous position? I suspect to an HR person who is not too familiar with software, it would sound good that I was the sole leader of all those positions. To another person in software, I suspect it may sound negative to them.

Since a few people have asked, I just wanted to add that it is a small company, about 50-100 employees, and the main product is not software. There are also 3 divisions to the company; I work for one of the 3, the smallest, in terms of employees, but about equal in sales. Also, thank you to those that took the time to respond.

  • 43
    why have you not got any of those structures in place. If you're the sole developer it doesn't seem there is anything stopping you from testing, using SCRUM etc other than your own unwillingness to do them. I assume that at the very least you test new functionality and bug fixes before handing it to users? – Móż Aug 2 '16 at 1:15
  • 62
    @Móż, what is the sound of one hand clapping? There's only so much one person can do. The OP should not attempt to cargo cult something like scrum as a one man band. Such practices are all about the coordination of a TEAM rather than one individual. – teego1967 Aug 2 '16 at 1:40
  • 5
    @teego1967 my point is that as a solo developer pay can do all the purely internal "development team" stuff that doesn't involve directly spending company money, and interact with management/customers using a SCRUM approach... if they want to. In my view SCRUM that only faces inwards is missing half the picture, but obviously not everyone agrees. – Móż Aug 2 '16 at 2:54
  • 3
    Is this job in a startup? If not, then is it a small company? Otherwise it makes no sense that you would be expected to be across so many areas with so little prior experience. – CyberFonic Aug 2 '16 at 5:38
  • 6
    Being almost always on projects where I'm the only developer, my position is quite close to yours. So to make this into something good regarding motivation and your career, try to make the most of it : it's the perfect opportunity to test new things like automatic testing and bug finding, performance benchmarking, documentation generation, efficient versionning and stuff like that. You'll learn a lot and in the end it's more about what you did with this situation than what was the situation. – Loufylouf Aug 2 '16 at 11:41

12 Answers 12

89

No, you are not ruining your chances of being employable. As a matter of fact, you are increasing your chances. If your workplace is so out of the norm, why don’t you try to implement some of the things that you said this place is lacking. I am not talking about you, singlehandedly implementing a SCRUM process, but a peer code review process is not too far out of question, regardless how little of a value it brings in such an environment.

These things might seem small to you, but taking an organization from a total disarray and helping it bring to a operational level, that is conformant with some standards, is something you can proudly put on your resume and future employers will like your take-charge attitude because of this.

If you go with the ebb-and-flow and do nothing, just show up, do the absolute minimum to collect your paycheck, then you can fear for future employment chances, as acting like this will not contribute to your professional development.

  • 26
    @pay: If I may give an advice: don't only talk about change (to your managers/colleagues), make it. People can always argue at the theoretical inefficiencyof what you suggest, but it's way harder to do when you actually proved things worked. Also, when dealing with people that have been around for a long time and don't "want" change, a trick I used in the past is to ask them (in isolation): "Hey Bob, How would you change that ?" to flatter them. You can then refer to the idea publicly as "Bob and I have talked about this and we feel like it could have value to do it that way, right Bob ?". – ereOn Aug 1 '16 at 21:32
  • 4
    I strongly agree, but I'd like to add a few things. When you are the only person running everything, you learn a lot about all those things. You can't do all of them really well, but you can do them. The jack of all trades comments in the other answers are true. But what you learn most ist functioning well under pressure. That is an invaluable skill that is really hard to learn, but you've got it, because that's all you know. It might sound terrible, but you'll actually get bored in other companies. This chaotic mess is teaching you a lot. Be grateful, but move on when you're too tired. – simbabque Aug 2 '16 at 10:04
  • 2
    @pay, my advice (as someone who has changed her company's processes), is to start with low hanging fruit, find out what bothers the powers that be (or is causing serious problems currently), and recommend the modern solutions for those issues. Just do that bit by bit, and over time the company will learn that you have good ideas, and the oldies will have time to adjust to each change. Take your time to really learn what you're advocating so you can be a resource for your company and properly explain the whys and hows. – McCann Aug 2 '16 at 13:38
  • 2
    @Alex, what we are talking about is not particularly a skill set but rather accomplishments. In today's interviewing process, you will encounter more and more of a question like "tell us what your biggest accomplishment(s) in this position at this employer. This will give you a chance to market yourself. On the resume, under this particulalr employer, you can create a subsection titled, big surprise, accomplishments and list what you did under this heading. – MelBurslan Aug 2 '16 at 14:27
  • 1
    "a peer code review process is not too far out of question" Is he going to pretend to be his own peer and review his own code? – Lightness Races with Monica Aug 2 '16 at 17:08
28

You're not hurting yourself long-term unless you start drinking the Flavor-Aid. (Some will call it Kool-Aid. They have not read their history.)

We all have "That job" in our history where nothing was set up correctly, we had no management support, nor authority to accomplish anything, yet we somehow managed to push through and get something accomplished.

That is actually a plus, in many people's eyes (including mine). There are many people who have low or no skills, and hide in the bureaucracy. These are hiring manager's nightmares. You waste your budget, have no improvement in productivity, and morale sinks, yet they contribute just enough and follow procedure to the letter to the point you can't get rid of them. When I'm hiring, those are the people that give me nightmares.

You, on the other hand, can show that you accomplished your tasks ENTIRELY on your own, and even with significant hindrances. You are who I want to see. I have no worry about your productivity. I may have some concern on how well you can take direction, but that's a much smaller problem than someone who doesn't want to do anything.

If you tell the companies you're applying for that you want to be part of a team, and that the "Lone Wolf" routine was not where you were happy, then they know they've got the best of both worlds: Someone who CAN get things done on their own, but WANTS to be part of the team.

Wish I was hiring, right now. I'd ask you to send in your résumé.

  • "no management support, nor authority to accomplish anything" - I should have mentioned that I wouldn't say my manager is bad, he is really just as much a part of this system as I am, and he is not a software person. As far as authority, I also should have mentioned that they effectively gave me full controlling authority of the product. I am also responsible for all software design decisions and changes. As far as I'm concerned, too much responsibility for someone's first position, however I am finding that I can handle it. Your point is right though, I really do desire to work on a real ... – pay Aug 1 '16 at 17:12
  • software team that tries to do things properly, and a company where the main product is the software would be nice as well. I appreciate the confidence boost though, and the response, thanks. – pay Aug 1 '16 at 17:12
  • Yep, when I'm hiring, I like candidates to have worked in at least one small organisation where they were the analyst, designer, programmer, tester, deployer, maintainer, etc. This is what the resume-speak term "experience with the full software development cycle" is supposed to mean. – MGOwen Aug 2 '16 at 5:52
  • actually: "Film footage shot inside the compound prior to the events of November shows Jones opening a large chest in which boxes of both Flavor Aid and Kool-Aid are visible." wikipedia – njzk2 Aug 3 '16 at 2:32
  • Yes, but the final batch was Flavor-Aid. That's been documented. – Wesley Long Aug 3 '16 at 2:34
12

Nobody's going to seriously believe that you've become expert at all those roles. Did you do them? Yes. Did you do them all for eight hours a day? No. For example, if your main track is development, it would be foolish (and a waste of time) to apply for a QA job as an "expert".

Your employability isn't being damaged per se. But your morale will take a dive the longer you stay in that position carrying such a heavy load by yourself. Doing things like platform upgrades on major systems will prove more and more difficult over time because you're the only one doing the work. It's in your interests, long term, to get into a position where there's a cleaner division of work -- because someday, you WILL need a vacation where you're not being called to fix production issues (as nobody else can).

Take care of "you".

  • 2
    All of what you say is true, but one thing to keep in mind: Everything this original poster describes falls right in the category of “first job out of school.” Meaning this position stinks, but it’s not shocking it’s a mess. Your morale advice is right also, but the OP has been at the gig 15 months. Meaning, it’s time to freshen the resume and apply for gigs so the OP can land someplace better. – JakeGould Aug 2 '16 at 1:30
  • 5
    In 15 months you would have been hard pressed to become truly experienced in single area you mention, yet alone all of them. You could identify which area you most enjoy doing and consider yourself the best at. Then apply for jobs where that skill is the main one and mention the others are additional skills. – CyberFonic Aug 2 '16 at 5:33
  • This is not accurate at all, because the capabilities depend on the person, not on what and how long he/she was doing. One smart person can in a short time become an expert in multiple fields, where other (stupid) person won't become expert in a single field in a lifetime. Companies pay for people skilled in multiple fields insane amounts of money and they become managers later on. Be single focused and you end up at the bottom expert or not expert. – Jerryno Aug 2 '16 at 8:31
  • 1
    I agree in that I wouldn't consider myself an expert (yet) really in most of these areas, but I have been able to produce effective results with minimal resources to do so. Also sometimes less-than-desirable workarounds become necessary, so as some have said, jack of all trades and master of none probably makes sense. I would be happy with a pretty wide range of positions, just so long as I stay involved directly in the development process, as I enjoy coding. – pay Aug 2 '16 at 13:11
11

I would ask you one thing. How is the company seen by others within the industry?

I used to hire people all the time within the Washington D.C.Metropolitan Area for some of the most demanding sites in terms of skills and professionalism. It was well known that some companies do not produce good employees regardless of the character of the individual. Sorry. But it is true. The reputation of some of the local companies for structure and environment was poor due to the people that have been hired from those companies. We are talking about consistency and not just a few. It does not take too long for a poor reputation to get around this way. It has nothing to do with the individual. It has to do with the individuals exposure to a professional work environment and their ability to come into a structured and professional environment and succeed. People with skills and experience would not work for these companies, and those who made the mistake in taking a job, left quickly and was able to save their career. It was not uncommon to hear people remark how they could not get another job and had to stay with the bad company.

Keep in mind that these primarily were government contracting companies that did not pay well at all and preferred headcount over skills for billing. Hell. It was not uncommon if you could BS your way through the interview, that was enough. You can figure it out once you get there. The company did not care about the customer or you. If you succeeded or failed did not matter. One I knew well was quickly promoted through the ranks because of his skill in BSing skills and once that no longer served him, he was made the scapegoat. Also keep in mind that it is not always government contracting or larger companies. Some small break-out companies have a bad reputation for the business they conduct and the employee can wear that tarnish too.

I did hire one person from one of these bad companies who succeeded extremely well. I hired him because he decided to look for another job when he was sent to their management training program and then quickly understood why his manager was so poor. Other than this one individual, all others ever hired from the company failed fairly quickly.

Staying too long may hurt you depending upon how other companies see your company. In fact, you may never get a chance to prove them wrong. It was not uncommon that people with XYZ anywhere on their resume to be screened out immediately. Why? Because the story was always the same. Sad.

While you can pick up skills in a smaller environment, you can also do this in a larger environment. One global company I consulted to routinely encouraged people to pick up skills and take on challenges out of their scope. Along the way, experts and mentors were within reach and ensuring that the employee succeeded. The company was so successful, one rather poor desktop support employee was challenged to take on networking and seek Cisco certifications. Within a year, he had become the best network engineer the company had. No kidding. It sparked something within he employee who took the challenge extremely seriously and strove to be the best he could be. We had company wide weekly meetings specifically looking for skills missing in projects and employees on other projects looking to take on the challenge and learn something new. Others volunteered to help walk the employee through to success. In the end, all of the company employees were exposed to many things and were far more valuable as a result and could jump in on a project quickly where necessary. The concept worked!

I know the problem of appearing to have too many skills. I am retired now, however, I was a systems internals engineer with coding experience at all levels, hardware design experience, along with expertise in products and platforms that made my sills list extremely long. While some doubted this was possible, others got it and I was hired for scenarios of extreme responsibility and was able to prove my expertise. It is a double-edged sword. It will keep you out of jobs in environments that are limiting, and open doors in environments that are expansive. I was able to consult in the highest of places and do the seemingly impossible in very short order including pioneering new uses for technology with Bell Labs, DEC Labs, BT Labs, and so on. Not bragging. I am just telling you that there is an advantage to having solid skills on the resume as long as you really can do the things you have listed. In the end, skills beget skills and you will be in demand more.

  • 2
    This is an excellent answer! Without more information about your current company I would suspect that it might have a reputation for being a mess. So unless you enjoy being a jack of all trades, jumping from one crisis to another, you could start focusing on one area to build your expertise and start looking to change jobs for a more focused company which has a better reputation. – CyberFonic Aug 2 '16 at 5:34
  • This is a very interesting approach, thanks for the response. As far as how this company would be seen in the industry by others, well, the products we work with are extremely niche, and the likelihood of working for another company in this area is slim to none. As far as just general business perception, the company has been established in this city for 30+ years and certainly has a good reputation, however I am likely to change cities anyway. When that happens, chances are any company I interview with will have never heard of this one. – pay Aug 2 '16 at 13:17
  • You also talk about learning and growth in a position, and I have actually been lucky enough to have the chance to teach myself a few new technologies. Node.JS, Socket.IO, much more proficient with JavaScript now etc. This was because I chose these technologies for a certain project specifically so I could learn them, so, in that sense, I have been trying to create my own opportunities to learn. – pay Aug 2 '16 at 13:18
  • While this is an excellent answer (+1), I would not automatically disqualify anyone from that company (I realize that you did not). I probably would disqualify anyone who had only ever worked for that company. But someone with lots of other experience who got suckered into a short stint there would still be worth considering. – Mawg says reinstate Monica Aug 2 '16 at 13:37
  • 1
    @pay It sounds like you are in a good position! Skills can be fairly easy to pick up when you realize how much of what we do is related. For example, C, C+, C++, C#, Perl, PHP, Java, JavaScript, etc. are all based upon C or one of the derivatives. Protocols? The same thing. Device drivers? Them too. I was ale to jump into areas with absolutely no expertise and do a professional job as a result. I was blessed to begin early as a systems internals engineer for one of the largest install bases out there. My name was everywhere on the OS drive. It helped set me up for the rest of my 30 years. – closetnoc Aug 2 '16 at 16:14
9

There is that saying that goes, “Jack of all trades and master of none…” that would apply to your scenario.

You might be doing all of the tasks you describe, but even if you are very good at doing all of them it will be hard to prove that to a prospective future employer.

Now does that mean you should jump ship? Hell no. At this point if this is your first gig out of college and you are only 15 months into the position, you are doing fine. The reality is pretty much all first gigs straight out of school are horrible, spread out and disorganized.

That said, 15 months is about the right time for you to focus on what skills you want to be dead center in your next position. And once you feel you have a grip on that, then you should start applying for positions elsewhere.

The reality is any recruiter/human resources person will see you are pretty much fresh to the field and will forgive you for having a gig that is “all over the map.” But the key to this is when you interview for other positions—heck, when you are even putting together your cover letter—you should make it very clear that you want to move onto a new role that focuses some aspect of your skill.

7

Chuckle ... "Your first job out of school?" Well, there are things which they just don't tell you in school, and this is one:   "how actual workplaces might be (un-)structured and (dis-)organized." But, entire books have been written on the subject. (Not coincidentally, many of them have the word Death in their titles.)

Nevertheless:   adapt, as best you can, to the (dis-)organization as it presently (in)operates, and observe carefully. I suggest that you keep your ideas fairly close to your chest, since, while you do have education, you do not yet have much experience. If you start "dropping ideas left and right," you will lose credibility and patience, no matter how well-intentioned you might be.

From time to time ... and you will recognize it when you see it ... a genuine opportunity will present itself for you to make a constructive suggestion for a small improvement to the status quo. Something that can actually, feasibly, be implemented by the group. Pick a small thing, and demonstrate it. As you gain the respect of your co-workers and managers, you will have the opportunity to be more of a change agent. And, you are also very likely to be promoted.

You see, disorganized and chaotic as your workplace might seem to you, that organization is "doing its job." Also, it exists in a larger setting (the company at large ...), most of which you are not presently in the position to see. This is why I carefully used the word, "observe." As they say, "you learn a lot by watching."

A final thing to keep in mind is the matter of "business risk." Every manager is trained to minimize business risk, especially in IT. Understand that every change involves some amount of risk. (And, so does status quo.) Observe how your boss makes decisions, and how s/he justifies them, if s/he does choose to explain or justify them to the group.

In my opinion, "far from hurting your 'long-term employability,'" the matters that I speak of are things which too-many employees never bother to learn. Those who do ... those who understand the human and the business side of IT technology as well as the ever-changing technical side, are "head-and-shoulders above the rest" in terms of employability. They are the hard-to-find people who are sought.

3

Most employers are looking for T-shaped people. By touching on all of these subjects, you are developing the broad basis you need to be an effective team member.

At a certain point in time, you will need to deepen your knowledge on a specific subject as well. When you have found your passion, it may become time to leave your current employer.

2

My advice from a similar position:

Learn how to ask questions.

Why do we frobnosticate the widget?

Very often in larger bureaucratic organizations, or even smaller and poorly run ones, there's a huge amount of inertia. If you try to stand in the way you will get flattened, frustrated, steamrolled, and worn out. Don't do that.

Instead, ask questions at every opportunity - but practice your asking first, so you can sound genuinely inquisitive. Also practice being able to say, "Huh. That's interesting. Okay, thanks!" in a way that doesn't give away by your tone of voice or body language that you think the response is totally idiotic.

One way to do that is to pretend that you actually don't know anything for the duration of the conversation, and you sincerely want to know. In some cases, you'll end out surprised because there are really good reasons for whatever thing they're doing. Of course most of the time it will just be institutional.

But by simply asking questions

Have we considered making our deploy tool be a one-click process? Would it be possible to save the project layout, and then just be able to call it with something like http://deploy.example.com/job/42?target=dev ?

You can start to plant seeds. As you plant these seeds you can slowly turn the course of your organization.

But also be prepared for the fact that many things will not change until you have been gone for many years. Practice now, and learn everything you can, because that way when you go to a new place that already has the spirit of learning and improving, you'll already be in the attitude of learning.

  • I really like some of the advice here. Funny enough I've already somewhat gotten used to doing some of this, particularly pretending I don't know anything when someone is explaining something.. It really seems to keep things flowing more easily. And on inertia? Yes. The head honcho of the division I work in is constantly in go-mode. Sell something that doesn't exist yet? That's fine, pay can get it done quick! – pay Aug 2 '16 at 13:26
  • 1
    In those cases, make sure you get head honcho to prioritize your work: Feature A will take N minutes/hours/days, Feature B will take M. I can complete either Feature A or Feature B this week, which would you like to defer until next week? (and make sure you get that confirmation in email. If they drop by to verbally communicate, send them a follow-up email, Thanks, Head Honcho - per our verbal conversation this morning, I'll get started on Feature A and defer B until next week. – Wayne Werner Aug 2 '16 at 13:29
2

I'm in a quite similar position as a developer, but things have been improving in the last three years or so, and I believe there are some things you can do:

  • First and foremost: understand the problem. If you have problems to solve, you need to know their structure and their deepest origins. In my case, things were disorganized only because no one knew how to do better, because the company owners were automation engineers with little to no modern software engineering background. They couldn't even articulate or recognize the problems they were about to face (due to scalability, rigidity, rotting code, etc.);
  • Study a lot. Look for books that talk about the problems you are facing. And also for books about professional self-improvement. The one I think you should read first is "The Clean Coder", by Bob Martin, specifically the chapters about "how to say YES and how to say NO professionally". These tips had changed me forever, with immediate impact on my company processes - and they didn't even know it!
  • With this "how to say no" tips in hand, you can start to prove to your employers that they are throwing money in the thrash can and at the same time exert significant pressure by proposing very pragmatic attitudes to revert the situation. In my case, that meant a lot of evangelization towards an ever-increasing Agile-orientation of our software development process, including budget for a consultant and the hiring of one more developer whom I helped to interview.

The professionalism is in you, not in your environment. If you can demonstrate somehow that your presence in an environment makes entropy go away, I bet any employer worth working for will think you an immediate keeper!

2

The upside to your situation that I don't see mentioned yet, is that you're acquiring a broader skill base and more skills that you otherwise would. You don't just know how to write code, which all software developers do (or at least claim to be able to do on their resumes), you also have team leadership, QA, project management, product management and client support skills that the majority of your peers don't have and don't claim, which you can use to differentiate yourself from your competition when it's time to move on.

Speaking of differentiators, being able to do it as a one-man operation is a big one, as mentioned in another answer. It demonstrates that you can actually get results and aren't free-loading off others' work, and is worth highlighting on your resume. I'm a fan of putting "sole [job position]" down on my resume/CV to make that point.

I think it's also worth pointing out again that you have an opportunity to change things for the better in your current environment, which isn't common or easy in large, established environments, and looks great on a resume. Think ahead to your next job for a moment, and consider that anyone who's a serious candidate for a development position will have (or claim) core development skills. Being able to add that you created a code review process and a QA system and so on at your current employer is something that will set you apart from the bulk of the other candidates.

Far from hurting your future employability, this position is probably a career-booster. After a few years there, in addition to the core skills you have and will improve on, you'll have differentiating accomplishments and supporting skills that the majority of your colleagues won't.

1

I would suggest looking for a new employer immediately. Any company (in any industry, of any size) that allows that much responsibility to be dumped on someone straight "out of school" for a sustained period is obviously very poorly managed. It reflects very poorly on whoever made that decision and everyone up and down the chain that has gone along with it for 15 months.

Car industry analogies are often helpful - I'd say you effectively are a mechanic fresh out of school who is expected to diagnose and service all faults on all cars without supervision or a service manual, check the safety of your own work and even handle all the customer interactions.

Would you take your car to be serviced at that shop?

You obviously have some potential, so take it from someone at the other end of their career: life is too short to waste most of your waking hours working in such a poorly-managed organization.

0

My first proper job as a developer was very similar. I was the developer and had to wear a lot of different hats.

Nobody is going to view you negatively for that, it will be seen by a lot of employers as a positive.

However, you say:

our software "department" is an absolute shambles. We have no such thing as quality, or code review, or testing of any kind. There is no semblance of a software life-cycle. There is nothing like SCRUM or anything even close to that.

You go on to say:

I account for every conceivable position related to this software project. I would be considered lead developer, project manager, and QA; I handle release of the product, and client support thereafter. I also make all overall design decisions for the software and new parts of the software. The only person who ever looks at or manages the code for this project is me. I have, at one point, for a somewhat separate project, had a college intern (paid) working under me, so I was able to delegate some tasks.

It seems as though implementing things like Scrum and code reviews is down to you. Have you considered, for example:

  • Saying to your manager that you want the team to have a standup meeting every day
  • Implementing some sort of task management software, and asking your colleagues to use it (I use Asana)
  • The next time you get an intern, take the time to do code reviews with them

You could potentially be the person to take this shambles and apply some structure, and that would look great to future employers.

Don't worry about people doubting your skillset, and whether or not you really did do X, Y and Z. Just focus on being actually good at those skills, and you will always be employable.

Not the answer you're looking for? Browse other questions tagged or ask your own question.