Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
September 17, 2021 09:46 am GMT

Tech-Philosophy - The day of a software developer

Did you ever wonder what a Software Developer does on his day? You wonder what your friend sitting in front of a computer has to do? What is this incomprehensible text they are writing? Or what will be my day by day routine in my future career? For what they pay these people?

I have been doing that for my last 20 years and coding a little longer than that. And will try to generically tell you my routine.

REMARKS:

The pandemic times in which this article is being written, and the geographical and technological differences between projects, of course have a big impact on the routine, I will try to abstract it as much as possible.

I am now a Java/Angular fullstack developer, in one of the biggest assurance companies in the world, based in Luxembourg/EU. And I am mostly a JAVA/SOA/BPM/FRONT-END developer, and sorry for the selfishness I am mostly talking about my routine here! That may be different if you are a tester, manager, or DB administrator, for instance.

Working Hours:

8 hours by day from Monday to Friday, 40h/week. That's called full-time, some slight variations might happen, some abusive contracts might happen, some extra hours never paid might happen, but luckily 40 hours a week have been my full period.
Sometimes I had worked on a bunch of projects, managing my own time, that's a totally different case. And sometimes I've worked half-period (4 hours).

When working on projects and in big companies, I have meetings with other people. Yes, I have contact with people, directly, not through the computer, a few times a day. And yes, pandemic time changes that a lot. Those meetings require me to be in the office at specific hours. Mostly between 09 in the morning and 17 afternoon I must be in the office, or "online and available" when working from home (WFH).

What do I do?:

A software developer doesn't code full time non stop, taking only a few pauses for basic human needs and a lot of pauses for coffee. NO! At least 30% of the productive time (in front of the computer, working) happens in management tasks. And I would say that the more senior I am , the less time I spend "typing code". First because I might solve the problems in a more cirurgical way and be more productive to build boilerplate code. But also because I might accumulate some other tasks that I will share with you below.

Start the day:

Waking up 3 minutes ago, being now in my notebook with a cup of coffee or Arriving in the office after two hours by bus.
Some offices I worked had their own ritual when arriving, like saying hello to each one (or each one of your team), or even having some breakfast available.

Update myself:

I start my day updating myself about company and project information.

That is mostly done in your mail box first and then in your task managing tool (JIRA, for instance). In the first one you will notice, for instance, some possible contract changes, or if there will be some fire training that day, or if everything really blew up (like the alerts of the pandemic period in 2019 and beginning of 2020). Then warming up to code, you check your tasks that day, that happens mostly in your task manager tool, JIRA, it's the most used today.

At the end of the previous day, I made a TODO list for tomorrow. That eases a lot of planning myself in the morning. So now I am just reviewing my JIRA to check if nothing has changed. So after that, I might say I am "working on a specific ticket", that means a specific requirement that was opened in my task management tool, in JIRA case, it's a ticket.

Let'z Work:

Also working on the ticket is not just about code. I always have to do some environmental work. In fact, in most companies, in the first days I was mostly installing and testing the local environment that I will work in. That will consist, in most cases, AT LEAST of an IDE. But I might also have a database (client and/or the DBMS itself), application servers, containers, VPNs, and many other utilities that might really complicate my life.
TIP: It's always wise to keep track if you are spending more than 20% of your productive time worrying about the environment that might affect your productivity.

With the environment all set we grab a cup of coffee, and code. That's where the magic happens!

When we copy incomprehensible code from stack-overflow and things magically work.
NOOO! I am just kidding here. Although some might really do that.

Most of the time I spend really good time analyzing the code. Looking at the IDE going through uncountable files to find where the problem, or the development to be done, really might be placed.

After that I also might need to debug something. That means, with a sometimes complex environment already in place and running, I execute the code where I think the problem is placed, and then, in some controlled way, I can get information about the code's execution. The debugging might happen with the help of a friendly IDE or with console outputs and log files, the easier will sometimes not be available, I am sorry to tell you that.

When debugging points me where to do, I might not know yet the answer for what to do. And that's where communities like stack-overflow help all programmers so much!
TIP: But you should always understand the code you are trying to copy and paste, and adapt it to the standards of the project you are working on. Or you will have a Senior developer angry with you.

Then I code a little bit! Honestly here, I have the impression that the more senior I am the less code you are writing. I had so many tasks that took 2 days to find out a couple of lines of code that solved the problem. Also it happens that the code might not work in the first try. So I will go through the cycle of analysing, debugging, researching, and coding a few times. Untill, voila: "My bug is solved." or "The new screen is created" or "I did whatever my manager told me to do and I will get a raise, or not get fired".

Let me get my things and go home. NOOO!!! First I have a full period to do, that's painful sometimes. Second, the work about this demand is not done.

Yet about this ticket I go to the delivery/release activities. That might really take some time also. And if more than 20%, also not good.

At this point you have to AT LEAST commit your code in some source-code control tool, the mostly used nowadays are based on GIT or SVN. But the release of your code might need more complex tasks about the GIT (or SVN) like branching, merging, creating pull requests. And that might really go crazy, taking a lot of my time.
And in some places there might be some code review that happens, where some of my colleagues might have to review and approve my code. Then I might have tasks associated with the delivery process (nowadays called DevOps) that might be related to creating or following deployment pipelines or even testing the code after deployment.

Then the technical part is done, my code is "attached" to the system. But I still have to make my manager aware that this is done. That is mostly done at scrum, and I am using JIRA today. So I go there, put some comments about what was developed and change the status of my ticket to done, to be tested, or delivered, or to be approved, or whatever the process of development requires.

Other Tasks

Some other "non official tasks" might happen during the day. And I try to always have an eye on them to participate. These tasks are not directly related to the tasks I have assigned to me in JIRA but they have 2 important points. They help the company for what I am working for, therefore giving me some visibility. They help other people to work better, it's always good to help others and sharing knowledge is a great opportunity for learning.

Tasks like:

  • helping a colleague with a technical doubt in a subject that I master;
  • helping the production team to find out the reason of production problems (that, if happens, will have first priority always).
  • help the support areas lihe HR or marketing in technical knowledge for campaigns, product specification, or for describing technical job roles.

Socializing

Indeed it's not just about bits and bytes. So there are people involved also in some parts of a routine of a software developer.

When in the office it's common to have a few minutes socializing with other people close to the coffee machine. Nowadays I live far away from my home-land, with a lot of new languages to learn, so I always go with some conversation about the weather. :)

I always try to use opportunitieslike hall encounters or door or elevator lines to talk with others, instead of getting down to my phone or closed inside myself.

I believe personal sharing and friendship are a great help in the office and the team environment. I always think it is easier to work with someone I have a friendly relationship with. It's sometimes tricky to manage the professional/personal barrier, but that's a point for another talk.

Technical terms and links

If you don't know some of the technical terms or tools mentioned here you can follow the links bellow:
JIRA
GIT
SVN
SCRUM

Finish the day

After a ticket or a task is done, I move to the next one, and then to the next one, and that's my day. Untill the end of my 8 hours period.

At the end of the day I do some closure tasks:

  • TO DO list for tomorrow;
  • Review weeklyor even monthlytargets;
  • I might write a diary of the day or something like that, if I feel like I am working on many different projects. That was usefulmany times in my past experiences.
  • Grab a last coffee:)

Rest, Rest? REpresentational State Transfer?

Then, after 8 hours of all that I can finally rest.
I rest for one hour because I now have a half-period (4 hour) job at night, but don't do that folks! It's too much.
Alt Text


Original Link: https://dev.to/joaofelipefaria/tech-philosophy-the-day-of-a-software-developer-2hhf

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To