What are some of the responsibilities for Software Development?
I’m a 9th grader and I’m interested in becoming a software developer, so I want to learn more about what you mainly do on the job. #software #software-engineer #technology
1. Producing clean, efficient code based on specifications.
2. Testing and deploying programs and systems.
3. Fixing and improving existing software.
Requirements differ based on job posts and company needs.
To be a really good software developer, my perspective is that you need to have the proper education (BS in Computer Science or Math) and build your communication, critical thinking, coding and analytical skills.
At a high level, you'll need to perform the following on your job.
1. Understand the requirements and analyze them such that you can break the coding and testing work into releasable chunks
2. Estimate sizing and effort it would take to deliver something
3. Communicate your findings, identify possible solutions and impact of those and share updates on your progress.
4. Set up your dev environment so that you can start coding, create unit tests, test/quality assurance, check in the code into a source control system. Fix the bugs in the code and do code reviews with your peers, etc.
5. Coordinate with other teams on dependencies and any integration points between your code and others.
6. Get up to speed on using the existing development tools, software development kits, environment, bug tracking system, etc that you will use everyday.
For many years, I used to develop software, and lead teams of software developers to build complex software systems. Most software development is accomplished by doing at least the minimum following activities, when they are needed:
- Requirements gathering - collect the target user's needs, and describe in words and diagrams
- Design - from the Requirements, define the desired software's features and functions, and the needed software components in words, diagrams and sections of pseudo-code
- Implementation - write the software in the appropriate programming and/or scripting languages
- Test - test the software to validate the design's features and functions work correctly
While many think a software developer mainly writes software in programming and/or scripting languages (Implementation), my experience has been that Requirements, Design and Test activities altogether may take as much or more of a software developer's time than Implementation alone.
The more time our teams took to do Requirements and Design, the faster the Implementation and Test activities went, to create relevant and working software. This is because everyone on the team was clearer on what software we were building, how we were going to build it, what features and functions we were going to test, and how we were going to test them. It was the most fun way too!