I'm in a fairly interesting situation. I'm the only software developer in a team of electrical engineers who work on hardware and know how to hack some code in C. I am the sole developer responsible for developing/maintaining/supporting the following:
- DBA of a >2TB SQL Server database with >70 normalized tables, with many of them containing 10s of millions rows, and one of which contains > 12 billion rows of data - I'm responsible for maintaining, tuning, and developing it - writing/tuning queries, coming up with comprehensive indexing strategies, monitoring data growth, etc.
- Separate data warehouse based on above data
- Large SSAS tabular model, based on above database
- Complex, multithreaded, concurrent processes that load data into the database, at a rate of >1 million large files inserted /day, with the data coming from multiple sources. Also responsible for detecting any missing data/data corruption issues and following up with the appropriate people
- Multiple RESTful WebAPI services that power the internal business web apps - some of which are fairly complex, interfacing with other web services within our company and utilizing various design patterns and techniques to help keep them maintainable - Unit of Work pattern, Repository pattern, Dependency injection, automated unit testing, etc.
- All the internal web apps associated with the above database - at least one of which is used by >100 users. Most of the web apps are complex, utilizing ASP.NET MVC5, caching, Typescript, Knockout, Angular, Bootstrap, etc., to provide a dynamic, responsive experience to the users
- Integrating an equally-large set of related data within this next year
- A web dashboard, using D3, Angular, Bootstrap, and other JS libraries- it updates key metrics the electrical engineers want to track as new data arrives
- Creating/maintaining multiple statistics-heavy parameterized reports in SSRS - adding features, fixing issues, etc.
...among other things - this is not a complete list. Only reason I've stayed (mostly)sane is by automating as much as possible, and writing decoupled, modular, testable code that adheres to industry standards and best practices as much as possible.
My manager (and his manager) are very friendly guys and are very capable when it comes to electrical engineering project management, but know next to nothing about software development, and the effort it takes to develop and maintain software solutions that perform well with the data volume we're experiencing. At my recent performance review, my manager mentioned that he thinks my position is a part-time job, and I should be able to handle that and other things - he's baffled when I say that this is too much for one person and I need more help.
They recently hired a guy and said he was to help me part of the time, because he had "database experience" - the last time the guy worked on a database was in 1994, and all he knows is coding BIOS C code in Linux. Management seemed very surprised when he said that it would take him months and months in order to be somewhat productive at helping me.
After laying out a case (yet again) for hiring another senior developer to help me, my manager's manager, who is also fairly clueless about software development, wants to discuss my workload and justification for hiring someone else, as he's not convinced it's necessary.
My question is - what might be some effective approaches, if any, to convince a manager who is not a software developer of the effort and resources it takes to write/maintain the massive amount of code I'm responsible for?
I don't want to come across as complaining, and I don't have 20 hours to explain in excruciating detail everything I'm responsible for and why it takes so long for me to develop new solutions while also maintaining all the existing code and the database. I've tried in various ways to explain how much effort is involved, but I feel like I'm getting nowhere - they compare me to an intern who was responsible for my current tasks before they hired me (the intern coded up a storm, but the code and database "schema" was so atrocious, I had to throw everything completely out and start from scratch) and appear to think that what I'm doing now takes a similar amount of effort and talent. It also doesn't help that I'm in my mid-late 20s, so I don't have a massive amount of seniority under my belt (~9ish years), and thus they don't respect my views as much.
Any suggestions would be greatly appreciated.