0

This is not a standard code-based question. I would like to ask some seasoned software engineers / developers, actually anyone who has ever been in my shoes.

This is the experience given: 1. About 2,5 years of C# (intermediate+-) experience. 2. About 1 year of enterprise project experience. 3. About 1 year of enterprise ASP .NET experience.

This is the given problem definition: 1. Huge C# solution with many projects. 2. Complicated architecture with many layers. 3. Many referenced libraries (projects are accessible) built in-house. 4. Business side is still not properly understood. Difficult context. 5. Many bugs in the software.

So, given all this I am wondering is there a way not to get crazy? I am working in a company for almost 1 year and everything is new for me. When I started, I had a blurry idea about ASP.NET Web API and angularJS. The solution is very big and built in a layer-like way. Everything is abstracted, overwhelmingly. Scopes, layers, injections, patterns. All this is just sometimes too much. After almost 1 year of work with all this I can say that I still have about 40% knowledge about the business part and 30% of the solution and the concepts behind its design. If I pick up a bug task I can't solve it because of the lack of deep technical knowledge and software design. Super frustrating all the time.

Can someone advise how did you guys deal with this? Any known best practice to tackle this sort of steep learning curves? Everything goes.

Thanks in advance!

  • "Complicated architecture": what do you mean with *complicated*? By the way, many, if not all, of your points are part of the daily life of any developer. Try to tackle the items one by one. Get to know the concepts used (like dependency injection) etc. first and get some advice from the former developers. – Peter Bons Mar 09 '18 at 12:21
  • Complicated in this context means that besides the traditional (Presentation, Service, Application, DAL) architecture there are external services that are used for communication with parties involved. For instance specific government APIs that are used to update specific domain models. Besides this there is also a Domain Driven Design implementation in it. This all together I find a complicated architecture. – George Vasilchenko Mar 09 '18 at 12:26
  • Saying that "part of the daily life of any developer".. Well I agree absolutely. But for a junior developer it might seem like a lot of things at once. – George Vasilchenko Mar 09 '18 at 12:27
  • It could be mostly complicated due too lack of understanding the concepts. I suppose you are not alone on this project? Try to divide and conquer by assigning each team member a part to understand and share the knowledge on a regular basis. – Peter Bons Mar 09 '18 at 12:29
  • Most of the times if I am not building something new and simple I would drown in the tons of code figuring out why something wouldn't work. But my colleague would fix it in no time. There are 2 senior devs working with me in the team and they are very good. – George Vasilchenko Mar 09 '18 at 12:31
  • I am looking for some sort of methodology or a reading where I could learn a structured approach to the problems like that. – George Vasilchenko Mar 09 '18 at 12:34
  • Well, imho a qualification of a *senior* developer is how well he or she can explain things to other devs and the mentoring/coaching skills. So try talk to them about your problems and remember that every dev started that way. If they don't really care about it then you have a whole other problem to consider. – Peter Bons Mar 09 '18 at 12:34
  • Try http://www.designsmells.com/articles/ten-must-to-read-books-for-software-architects/ – Peter Bons Mar 09 '18 at 12:35
  • Thank you for your suggestions! – George Vasilchenko Mar 09 '18 at 12:35
  • I think it's important to take a step back sometimes instead of jumping right into code. I think it is very important to learn about design patterns. Once you master these everything becomes a lot simpler. – Cool Breeze Jun 20 '18 at 11:01

0 Answers0