Should a developer care about the business?

Yesterday I was in a meeting with my team lead (backend dev), another backend dev, a business analyst and a designer. The designer kept asking questions about the admin panel of the app, about the technical limitations, what is out-of-the box and what not so that she can design a solution that will not be too creative for our limitations.

And after the team lead answered all her questions and the meeting is over, the other backend says (with an annoyed voice):

“Why should I, as a programmer, care about the business. Why do I need to know about all of this stuff. I know PHP and that’s it. How can we create high performance if I care about the business”

At the time it just seemed odd to hear that from a programmer (and a backend, no less), but I said nothing. I just paused. Now, a day later, after I processed the words I ask: How can you not care about the business? How can you provide the client with the best possible solution if you do not know and understand his business, the roles, the client types, the products, the categories – everything that is business related? How?

Should a developer care about the business?

Log: How I learned, little by little, Magento 2

This post is in progress. I am updating it daily.
It was started on January 3rd 2017. Not sure when I will finish it

 

Let me start with: I worked with Magento 1 and I am willing to learn Magento 2.
I am learning about Magento 2 + Docker

Day 1: I hate it

Day 2: I will give it a chance. Maybe is not that bad

Day 3: Maybe I was lucky enough to learn Magento 1 from the right developers. I hate Magento 2. It is sooo slow!

Day 4: Learning how to add a new attribute in PDP (Product Details Page)

Day 5: Learning how to change the PDP layout:

  • Lesson 1: Check the admin: do you have the right theme applied?
  • Lesson 2: Did you flush the cache?
  • Lesson 3: Do you have the right layout?
  • Lesson 4: Did you read the Docker docs? Some devs might say that Docker is not for devs, but for devOps [what does devOps stand for?]. How can you work with Magento 2 if you can not set it up? How can you run a command from terminal and not know what it does? You just type commands blindly?

Day 6: in day 2 I should have read (more) about Docker!
Start here: https://docs.docker.com/get-started

Day 7: How do I run multiple projects on the same host without stopping the containers? Need to read about posts!

Log: How I learned, little by little, Magento 2

How to make a developer feel unwelcome

It’s December 15th 2017 and I am happily starting a new job that promises a lot.

I arrive at the office around 11am. They usually start at 10, but since here no one really comes in time…

As I said, I arrive around 11am and I go straight to the HR department (because HR is the only contact I have). There I am invited to sit at a desk until the IT guys will bring my laptop because they do not know what my project is going to be nor what team I am part of. I know I am frontend and I will work with Magento2. 2 minutes later the IT guy comes and says:

“Let’s go to the other floor. There’s where you’ll live”.

We arrive at my desk, I see a laptop (with a nasty scratch on the exterior of the lid). It looks kind of old to me, but I think maybe I should not complain from the first 30 minutes. The It guys helps me connect to the wi-fi and hands me and envelope saying: and this is the envelope. He sounded as if I knew what that envelope is. Again, I don’t ask about it, thinking i will figure it out, or maybe it is self explanatory. Then he leaves.

I open the envelope and there are a lot of instructions on how to access the internal net. First thing I do is change the default password I got with the laptop. And I am successful (or at least I think I am for 5 minutes). Although the IT guy said that all the passwords are synchronized, guess what, they are not (and my guess is they weren’t supposed to be). And by changing my mac’s login password I am no longer able to access anything, not even wi-fi. I call for the IT and after more than 30 minutes of trying he ends it with

“let’s ask the other guy”.

The other guy comes and says:

“why did you change the password? I purposefully set an easy one. And it had all the security checks”

I look at him and say nothing. Then he explains that my change did not propagate and be cause I assumed it did and I tried to use it was as if i used the wrong password. So now he has to reset it.

I say “fine” and set a new password.

It is now a little past noon and I am finished with all the instructions from the envelope. I assume that someone (like a line/people manager will come by to tell me more – or at least where the bathroom is), but not. I try to ask the colleague siting across the table from me, but all I get from him is:

you will be told

Pretty encouraging, I would say…

So I use the internal chat to find a familiar name (HR or some sort of office assistant), I tell them I am done with the IT and ask what should i do next. In the meantime I managed to convince the colleague across the table to tell me where is the bathroom and where do I get water.

I finally get in touch with my line manager and she tell me she will stop by my desk  in 10-15 minutes to see how I’m doing. (really? to see how I am doing?)

She drops by and asks:
Her: “So how are you? how can I help”
Me: “You can start bu telling me what to do. I finished the instructions I got from IT and I am on hold now”
Her: “OK. Did someone show you around?”
Me: “No. I managed to find out where the bathroom is and where to get drinking water”
Her: “Good. Here is the coffee machine. And now will will got talk to X, that is him over there”

Does not point to anyone, but expects me to understand which of the 10 people in front of me she is talking about. Since no one looks back at us I smile and look left to right and back; but she stops me when I reach right: “here he is” and stops in front of a desk in the middle of the room.

Mr. X is the frontend lead (inside the company). She asks him for some Magento trainings and all he says is “But we don’t have any”

Her: “Sure we do. Remember you gave some last time?”
Him: “But those are for the certification and are paid”

Discussion ends here.

The mention something about projects and that I will be assigned starting January 8th.

I am then invited to  move my things next to Mr. X. Which I do right after.

He seems like a nice guy and allocated some time to discuss with me and explain how things work (at least in general on the frontend side).

The next week is only documentation reading (general stuff) – which is kind of expected…

Then comes Christmas and almost everyone is away on vacation. In the second week I only worked for 3 days (due to national holidays). But imagine my surprise when In reached the office (in the first of the three days and It was only me and another 4-5 people on the entire floor). Apparently the rest were either in vacation or working from home. Including my future team – but do you think anyone bothered to tell me that? I had to, again, go to HR people and ask (they were the only ones online). I was told to go home and work/keep documenting from home for the next 2 days and we’ll get back at the office in January.

3rd of January: I am back at the office hoping for the best. I arrive in time, but there is no internet connections and no IT guys to tell it to. I use my phone as a hotspot thinking it will be fixed soon. It took them 5 hours to send an email saying he have internet connection problems that are currently being dealt with, but they do not know when will be fixed so we might as well go and work from home for the rest of the day. I wait for my team lead (the same guy standing across the table from me in the first day) and ask if it would be alright to go home. He said yes and off I went.

Today, in the second (working) day of the year, I had to force myself into a project related discussion otherwise the other two team members would have discussed and decided without me ever knowing – 2 backends discussing wire-frames.

So, my dear employer, do you believe I feel welcomed to your team? Do you think I am happy or am I looking for a different job? How long do you think it will pass until I leave the company?

 

How to make a developer feel unwelcome

I am John and I solved a problem

I am John, I work for a company whose name I can not say and we have this client, but I am not allowed to mention their name, and we had this problem for which I cannot give specifics but I am here to tell you about how we implemented the solution.

Sounds familiar? Maybe, maybe not.

Well, for me this is the thing I hear at almost every conference I attend. Truth be told, I can understand that one can not give specifics, but one should also not start a topic meant to teach others unless you are willing to go into specifics.

I have the feeling that these “Jonhs” want to create the impression that they encountered a million problems and found at least one solution for each.

But how do I know that the problem was not created due to a faulty logic? How do we (the attendees) know if maybe the requirement was stated or understood in the wrong way. Usually that is where the problem stands. And it is best to ask all the questions before starting to work.

Anyhow, there are speakers for whom I would travel half the planet, but there are also others that have fancy job titles and do not have a clue of what’s going on in the dev world.

So, conference organizers: please, please I would rather see the same 3 speakers in all the conferences than having different poorly prepared speakers, just for the sake of not repeating.

And for the speakers: Please speak for the sake of sharing and making the community better not for the money. Remember why you became a programmer! If money is the first answer, you are doing it wrong.

I am John and I solved a problem

The consistent Petr (part 2)

In our project we have this Sentry integration that would let us know when something goes sideways (I am sure most devs know what I am talking about).

About a moth ago (all of devs and dev-ops) have missed one notification (we were all in a meeting an ignored the email) and live site was unusable.

Ever since I made a rule (for myself) to put the errors in a common Slack channel for all the devs to see. All good, no one was bugged.

A few days ago, Petr makes this announcement:

“Note – it seems that current errors from production are maybe false-positive and they are not affecting user. Sentry integration will be updated shortly.
Second note – even these errors may be false, we will still take a look into them.”

Today I see tow dozen errors in my email  and I notify the devs, that maybe something went wrong, as there are too many different ones. If they are nothing than only 5 mins of our lives were lost.

To my notification I get this from Petr:

Yes, the FE errors on production were mentioned on stand-up and also in #frontend channel. They can be false positive, due to complications with Sentry integration.

There was no mention of said errors in any of the stand-ups this week or past week.

The consistent Petr (part 2)

The consistent Petr (part 1)

This morning, when I got into the office, I was surprised by my tester who said that none of the bugs I’ve put in for testing are fixed. Imagine my amazement when I checked the bug-branch I was working on and the testing-branch and they had very different code! So I go to Petr and:

Me: hey Petr, did you get any conflicts when merging the bug-branch into the testing-branch
Petr: Yes. But I fixed them. I kept the testing-branch code
Me: You should have kept the bug-branch code as it was the newest one (and I added it to fix some bugs reported on the testing-branch)
Petr: Yes, yes. That is the one I used.

Half of the day has passed since and we still have different versions of code even though the bug-branch was merged into the testing-branch…Petr is on it (fixing).

The consistent Petr (part 1)

What is a senior developer?

There was a very interesting discussion in the office today about what a senior developer is (we were talking about JavaScript developers, but I guess it could be applied to any programming language).

I was saying that there is no possible way that a developer can be senior after only 2 years of experience. There is simply not enough time to meet the unexpected. And that is what, in my opinion, makes a senior: the unexpected. The ability to not be surprised and blocked. That is when a developer becomes senior.

There were of course voices that said that 2 years is more than enough. And it only depends on how passionate you are (how can passion be a factor in establishing seniority?). Then there was a slip from someone who said: if you convince your current employer to make you a senior, than you can put it in your CV and the next job recruiter would have to take you into account for a senior role. That made me think: hm.. sneaky one. So you you put it in your CV just for to market yourself? So the seniority became just a keyword? Who is to blame for this? Can we fix it?

About 3 years ago someone estimated that the number of programmers doubles every 5 years. I suppose then, there is this need of making oneself appear “seniorer” than the rest. But is it fair? and I mean it. There are senior developers with less than 2 years of experience and less than 25 years of life who participate in technical reviews during interviews (and I mean it because I have seen it) and they evaluate people that have more years of experience then they have of life, only to conclude that the respective developer is not good enough. I guess I am a bit afraid that I will one day be evaluated by one of these. And maybe I am more afraid of my reaction to it. I am afraid that I will try to impress this kid into hiring me. Is this ok? Is there something wrong with me? Are there any others like me?

 

What is a senior developer?

Interview questions

I was recently invited to an interview for a frontend developer role. After the interviewer asked me a lot of questions about http, http2, devOps, linking backend with frontend he said: now let’s go to the more unpleasant questions. And he started with: what is this small tag at the beginning of an HTML page <doctype... And he went on about DTD then we moved to local storage, then CSS and pre-processors …

When and why did HTML and CSS became unpleasant? how else would you develop for the web if not using HTML and CSS?

I am now asking you: people of the world that you call yourselves web developers, who are you and what did you do with the web developers?

Interview questions