I am a recent graduate on my first full time software development job. The job promised mentoring and effective development, but has in the 6 weeks I have been here provided none of those things.
The major problems with the environment:
The lead developer (not my boss) openly subscribes to the thinking that a lack of documentation is a form of job security. As a result, nothing is written down. There is not even a written list of libraries used or the git repos we have, yet alone comments in the code or an overview of what is the current chunks of code do. In addition, he doesn't want people figuring it out for themselves either, so he just tells every other developer to stop work if they need help and he will do that section. If you cannot complete a block of work 100% on your own, it gets taken away from you.
The manager (my boss, who is technical) is seemingly unmotivated and uninterested in the work. He takes every Friday off and spends the rest of the time in his office. When I have asked if there is anything I should be doing, he promises to get back to me and doesn't. As a result, I frequently have nothing to do except Udemy courses.
We use Agile/Scrum which apparently is about giving developers all of one sentence to work from in sprints. I am currently assigned to work on the user login tracking. The entirety of what I have to work on for the two weeks (changing a few words for anonymity) is "the system should keep track of when a user logs in and any relevant information about them logging in." What does "relevant information" mean? Nobody knows. Who is going to use it? They aren't sure. I was just told to find random stuff to record and while I have done that, it is just what I would want. Sprints also require that developers estimate how long a feature will take, but as we have no idea what will be requested before the sprint meeting, we are giving estimates based on adapting code we have never seen. In addition, the project manager often breaks up tasks into similar items and will assign them outside the sprint planning, so two team members can easily end up working on the same thing and duplicating code.
What is the best way to extract career value from this mess?
I (and the other 3 developers on my project) don't get challenging tasks as the lead takes them to prevent the spread of knowledge.
I don't really get to collaborate with anyone. Boss is absent. Lead doesn't want anyone else asking questions or really figuring out the code. Other devs also seek escape and spend their time pushing concepts which will allow them to learn new technologies (projects I am unfortunately not assigned to).
For example, the mobile app will be getting its third complete rewrite in three years. We used to do native, moved to Xamarin, and then now the dev on that project is pitching Flutter.
I don't get serious practice in meeting actual business needs as apparently in Agile the sum of requirement analysis for two weeks of work fits on a post-it.
Other than basically meeting a mediocre standard and transferring all the time to an independent project of mine, I don't see a lot of opportunities. What is the best way to have a strong market value to jump 8 months to one year from now?