2

I work in a web development company that makes a range of websites for different clients. I have only worked there for about a year (this is my first programming job) and I'm currently part-time because of Uni. The company is fairly new, only a couple of years old, and very small (about 7 employees). The other developers are fairly inexperienced as well.

Most of my knowledge has been self-taught, and from what I've read, my company seems to be missing a lot of "best-practices" such as:

  • We never write tests and have no automated build process.
  • Everybody commits straight to master.
  • We have no style guide for any of the code.
  • Issues or bugs with sites are often sent over email or printed out rather than being logged in bug tracking software.

In the past, I have tried to make gentle suggestions in different ways, such as casually suggesting how we could integrate automated testing into our projects and I also wrote a semi-formal report on which agile approach would suit the team best and how it would benefit us and the clients.

In both cases, my suggestions seemed to be received well and the boss agreed with any points that I made but then the suggestions were forgotten after a few days and nothing ended up changing. In the case of my agile suggestion, we ended up doing a daily stand-up for about 2 weeks before it seemed to be abandoned because it took too long or it was a waste of time (I don't know the exact reason because I never asked).

I often feel demotivated at work because it feels like I am writing bad or messy code because it doesn't get tested or critiqued. Some of the other developers I have spoken too have expressed similar feelings, although some don't seem too troubled by it.

I want to suggest some of these best practices again. What is the best way to go about it and what should I focus on in my reasoning? I have tried to always express how the business could benefit from changes as well as developers, but I think my boss feels any change would just be too difficult.

marked as duplicate by Mister Positive, Draken, user34587, gnat, scaaahu Feb 20 '18 at 5:40

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Seven employees in the company; how many of them are fellow developers? – user34587 Feb 19 '18 at 15:18
  • 2
    Related reading: Should I propose a big change as a newcomer? – DarkCygnus Feb 19 '18 at 15:38
  • 1
    This seems to be the most commonly asked question on this site. Just forget about it and get on with your work. Every single boss you will ever have, every colleague, every one who ever works for you - will have these problems. It's software. It's like stating that you surprisingly noticed you got wet while standing in the rain. – Fattie Feb 19 '18 at 19:33
  • @Kozaky out of the seven employees, 4 of them are fellow developers, then there is the boss, me and a marketing/social media guy – James Ferguson Feb 20 '18 at 4:06
  • Hi James, fellow James here. What you are working in is called an agency. These places have to get through clients as fast as possible, and code quality, best practices, tech are not the highest on their priorities list. What you want (and stay passionate about this, because you will do better in your career if you do and will enjoy it more), is a place where you can work where you build applications and systems, not just websites. Make that your primary search goal when looking for your next job, and if it's not clear, ask in the interview about the projects. I did the same, it's worth it. – James Feb 21 '18 at 9:16
5

Well, it seems that the company is new/small and there are no official procedures on Version Control, issues and bugs, nor Dev/Ops (or at least they don't seem to care much). This is not rare of such companies or startups, where one usually has more room and freedom to act and decide.

In that case, I think that you could show some initiative and get organized among all developers to agree on such best and standard practices (and use them). If other developers also feel this way then it wouldn't be much problem at all.

I suggest you try this in moderate steps. You could start with the small changes, like using branches in your development for better integration and testing. This will eventually have its benefits, which will serve you as better evidence to support such "official" changes in the company.

When your manager sees this improvements and that they are already in place he/she will recognize the benefits of using such tools, and perhaps be more interested in other changes you propose.

After you are comfortable with that, try adopting an issue tracker feature, or create some automated tests to help you on your daily builds, do code review on each other and agree on a style, etc..

  • While testing procedures and CI/CD are more common the larger you get, even a one person shop should have version control,especially since there are tons of free and inexpensive options. If you don't have version control, you're going to have a really bad day some time in the future, and that's a fact. – Chris E Feb 19 '18 at 15:39
  • 1
    @ChrisE exactly, Git, CI/CD and other tools and practices should really be standard among professionals. If you lack them then you should start building them asap – DarkCygnus Feb 19 '18 at 15:40
  • 2
    +1 For moderate steps. Don't be this guy – Robert Dundon Feb 19 '18 at 15:40
  • Agitate for changes in moderate steps - and be sure to document your work! Gather statistics on how many hours are spent on doing certain tasks (e.g. bug fixes), how many errors you find in production, etc. BEFORE you implement a change and AFTER. You can use these metrics to show your manager and team the value of adopting some of these changes and hopefully get buy-in on future changes... and it will be very valuable to be able to back up your contributions with data when the time comes to ask for a promotion or seek a new job. Good luck! – QuoteRadar Feb 21 '18 at 14:16

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