What do software developers do everyday?
What type of projects do you work on? What coding language do you use the most? What do you need to get done everyday? #computer-science #computer-software #software-development #software-design
G Vishnu’s Answer
When people ask me what I do, and I say I’m a “Software Developer”, they seem fairly impressed yet not entirely sure what it means. Even my parents still can’t quite grasp what it is I do. They know I’m good with computers and also useful for any technical issues they have (a hazard of the job, much like a doctor or car mechanic I imagine). So for both their sake and yours I’ll attempt to describe what happens in a day in the life of a software developer.
8am - Wakeup
First cup of tea of the day, the start of many…
8.50am - Head to work
I’m very lucky. I not only have just a ten minute cycle ride to work, and this cycle ride is along the seafront, but we also have flexi-time at Madgex which means if I need to come in late or leave early I can start the day pretty much when I like. We can also work remotely from home if we need to.
9.00am – Arrive at work
I grab a piece of company supplied fruit from the kitchen, make a cup of tea and head to my desk. Unless it’s Friday; then it’s just the tea and an impatient wait for the cakes to arrive. No wasting valuable cake space with healthy food on a Friday.
As soon as I get to my desk I switch on my pc, log in and then check if any urgent emails need dealing with. Then I check our site monitoring and error logs to make sure there have been no issues during the night that need dealing with.
For my job it’s important to stay on top of technical happenings and news so I usually catch up on a few RSS feeds that I subscribe to during this time too. There is always a new or better way to do something in software development. Software tools and languages are constantly evolving and you have to keep learning new technologies and techniques. Madgex pays for us to have access to an online developer training library so I might spend some time doing a course in a new technology that I need for a task I’m working on, or I’ll do a course which I think might be useful for future developments.
10am – Start work for the day
Madgex powers the Guardian Jobs platform and I am one of the developers who work on the project. We follow a SCRUM methodology and work in three week sprints. What this essentially means is features that are to be added to the Guardian Jobs website are broken down into lots of small tasks that can be released to the live environment every three weeks. We spend two weeks writing the code to implement the features and then the final week is spent testing the changes we’ve made, fixing any bugs that have been found, deploying the features and then getting ready for the next three week sprint.
Depending on where we are in the sprint defines what task I do at this time of day. If this is a sprint planning day we get together with the Guardian product manager and go through the list of tasks that are to be completed in the next sprint. We have to estimate how complex each task is by giving the task points; 1 being not complex at all and 8 being very complex. The higher the points the longer the task will take. We have a certain amount of points available for each sprint so the Guardian product manager prioritises the tasks so the critical tasks are done first.
1pm – Lunch
Lots of options in Brighton. If it’s a nice, sunny day I usually hit the beach for a spot of people watching, maybe even a swim in the sea. If it’s not so nice I go for a walk around the shops and then eat lunch at my desk. Sometimes we get together and go out for lunch, especially if someone new has started or there is a birthday to celebrate. It’s good to get away from your computer and quite often if I’m struggling with a programming issue I’ll have a eureka moment whilst I’m out and about. We also have lunchtime yoga sessions at work so if I’m feeling a bit stressed I can go and do some sun salutations and come back to my desk nice and refreshed.
2pm – Back to work
Back to more of the same – cup of tea and writing code to accomplish the task I’m working on in the sprint or perhaps fixing bugs if we’re in the last week of the sprint. I might also have day to day support queries from the client to deal with. I like to wear headphones and listen to music as I work. It helps me settle into “the zone” and concentrate on what I’m doing. Time goes really quickly when you’re writing software as you’re so engrossed in what you are doing.
Quite often we work alongside the designers. They create the HTML code (which gives the website its look) and then we connect it up to the back-end code, the bit that makes the site work. I also work closely with the other developers on the Guardian project and also the developers that work on other projects; we bounce ideas off each other or I’ll ask their opinion on how to develop a certain feature. There are always so many ways to accomplish the same thing in software development so it’s good to work with your peers to get a different perspective or to just sanity check your work.
Once I’ve finished a feature, and tested it thoroughly, I deploy it to our test environment so it can be tested by our QA resource and also so the client can check it’s what they asked for. I also run an automated regression test which goes off and tests the main functions of the site to ensure I haven’t inadvertently broken some other part of the site. It can happen.
4:30pm – Developer meeting
Every couple of weeks all the Madgex developers get together to talk about what developments are going on, any interesting future work coming up or someone will give a talk on something they’ve learned which might benefit the rest of the team.
5:30pm – Home time
Another 10 minute bike ride home or if there is an interesting technical event going on I might go to that first. Brighton has a brilliant tech community and it’s really good to get involved and be inspired by clever, creative people.
8:30pm – (if it’s deployment day and my turn to do the deployment)
I deploy all the new code which has been created, tested and signed off by the client in the sprint to the live servers. We do this every three weeks and in the evening when the site is a bit quieter so fewer users are disrupted. If there has been a database change we’ll need to bring the site offline for a couple of minutes so we can update it. Once all the code has been deployed I’ll check the site monitoring and error logs to ensure we’re back up and running correctly and have a quick run through of the site. Then it’s time for a well-earned cup of tea and some relaxation time ready to start the next sprint the following day.
It depends on a lot of factors
1. The company your work for
2. Your position
3. The present trend / hot topic .
There will be a scrum meeting daily where you meet with your team to tell what you did since the last scrum meeting. In between all this there will be some team meetings as well where critical things related to project will be discussed.
Its more about learning on a daily basis than a fixed set of stuff you will have to do .
Hope this helps
Thanks and Regards
Hi there, I'd say most of my day (75%) is spent coding, about 10% is spent in meetings, the other 15% researching. This is not including breaks.
Right now I use Java exclusively, but I spent most of my career using C++, and later on C# (which is very similar to Java).
In my company we use the Agile approach, where you get assigned small tasks that can be done in less than two weeks. If the task takes more than two weeks, then it has to be broken down into smaller tasks. Coming up with these tasks is where we spend that 10% of our time.
I hope that answers your questions.
Good luck, Fernando.
From my personal experience, the life of a software developer greatly depends on the company you work for, field of business, active (client) projects, the team(s) you're working with and much more.
I started off with a smaller software company which was a good thing actually! You get in touch with many different units and teams and get a glimpse of the overall lifecycle of a software project, from its early conceptual phases and inception to its actual development and testing and operation and final go-to production.
In the company where I work, we live the dev-ops mentality: everyone on the team essentially understands what it takes to bring a software project to life and what it takes to run and maintain it. That understanding should seep into what you're doing as a software developer, taking into account potential performance implications your program might have when under load, how caching fits into the picture and other operational aspects.
IMO, being a software developer on a daily basis includes the following activities:
- open communication with your teammates
- seek out or even give guidance where necessary, don't "waste" too much time if you're stuck
- due diligence and research on task at hand
- follow best practices and don't try to reinvent the wheel
- always write and extend tests for your program as you go
- don't be afraid to question and challenge tasks you were given
- google is your best friend ;)