This is the second post of the Mayfield + DEV Discussion series. Please feel free to go back and answer yesterday's question as well.
What parts of the software development process and job take up most of your time?
Be as detailed as you feel appropriate. On a day-to-day basis what takes up most of your time?
Latest comments (35)
dealing with docker ...
As a front end dev mostly fixing bugs and building new features
Recently in one of smaller projects we are starting I spent most of my time doing refactorings. Our first code was not really great, part of data design was just not great (eg. we had table
users
, but we found out we need to split it tousers
andmembers
, as we want one user to be member of multiple groups). So it was splitting tables, writing migrations, changing code in most of the project and all the time testing if all is still working as before. Which lead to many more small changes here and there, as I stumbled on something that was so six months old code we don't use here anymore.But the feeling that our code is much more future-proof, cleaner and sane makes it really time well spent. Oh, and also I had to read
SQLAchemy
docs like ten times to try to really find out what decisions make sense.As a junior with less than a year experience my day pretty ouch consists of creating forms and working out the best events (mainly datagrid events) for the job.
I've been tasked with trying to make a Xamarin app recently which is going to be huge for me, both excited and scared 😂
Naming things 🤣
I spend most of my time coding because I'm senior enough to get away with it. Most of the other devs spend less than 50% of their time coding (my guess). Some of that gets eaten up by socializing (it's amazing how many people think that work is a social club), but most of it is process, and most of that process in my view is actually failing to help or even making things worse.
One of the ideas I've been promoting is that of micro-apps. Breaking a large monolith down into small apps -- small enough to be handled by a single dev -- and then putting those behind a reverse proxy like nginx. (I'm talking front end applications in front of, say, microservices).
Use a pubsub system to communicate between apps, pages, devices, etc. -- even components -- with BroadcastChannel, websockets, and/or server-sent events. Totally decoupled. I've done this for a large enterprise (a bank) and it works beautifully.
There are many benefits to micro-apps, including scalability, robustness, security, etc. not to mention the ability to completely refactor individual apps easily or to experiment with new technologies. To the end user, it's all transparent.
But one of the biggest benefits is the ownership model. One dev per app (with a buddy looking over their shoulder so that they can step in if the dev disappears, and as a sanity check). But in each micro-app, a single dev owns everything. So that dev "owns" the code. Period.
This eliminates the tragedy of the unregulated commons and also encourages the sole developer to write the best code possible as everyone will know who wrote every line of code in that app.
It also greatly reduces process. With proper leadership (someone has to enforce the contracts between what are essentially black boxes -- micro-apps are similar to actors), a large app can easily be built quickly and efficiently, with much better Dx. There's much more to this than I can explain here, but hopefully others are trying similar things...
I spent my time finding bugs, refactoring code fragments and convert to components to be more flexible (usually is code that workmate did), meetings to know what exactly is my task or where is the origin of the bug or where is the that i need fix
Documentation, refactoring code, building and designing new features, etc.
Log my time in Jira
Documentation
Meetings
Reading blogs medium/ dev.to
Answer questions in Stackoverflow
Work
Prepare lunch
Sleep
Code reviews and managing people in my team takes away quite a bit of time on a daily basis, but lately it's excesive meetings which are taking away a lot of time from "real" work.
Coding itself is one of the things I spend the least amount of time doing now a days, I miss that somewhat!
Thinking about the problem I need to solve.
As Tech Lead/Lead Dev it happens like that to me:
Meeting, explain someone any workaround to solve a ticket/issue, code review, answer some call to explain someone else how to solve whatever or to clarify something, another meeting, email from client asking things, analyse those things and document them to answer properly... that's why I set myself on "disconnected" on MS Teams at certain point of the day so I can have some time to code 😂
I always spend too many time setting up the app (environments, docker stages, etc).
I right now I'm learning testing, I spend quite time with it.
Understanding other peoples code
Mostly reading, not just my code by code from other developers, primarily because it helps bring perspective of ways something can be done.
Other than that, I always have a window with hacker news + other developer blogs I like to read.
Some comments have been hidden by the post's author - find out more