if you brush away how the devs have made their software and look at the function and process of how LN works. you will see its actually simple that it allows people to play around with unconfirmed parent-child transactions and outputs of.. so fundamentally simple
however looking at the software and gui layout and how they use silly new buzzwords, they have over complicated the interface and connectivity and explainers of how it works. even the back-up has been made to be harder then just copy/paste
they have done many things to make it complicated
put it this way
LN years ago was its own fresh new concept. meaning possibilities were endless and it was a fresh idea that could become anything, because it started from nothing. however within days of release, instead of making the network easily connectable to bitcoin/any blockchain scheme. they set silly policy and rules that then inferred that any blockchain scheme had to change to be LN compatible. rather than LN be a fresh network finding the simple way for LN to be blockchain compatible
analogy
family have a child
parents speak english. but they chose that the child should get a tutor and the child only learn/speak spanish from a young age.. and now the parents need to also learn spanish just to talk to the child. and then when its too late to turn back and teach the child english. the parents are now having to talk more and more spanish and void themselves of ever speaking english themselves on a daily basis
..
LN is not complex under the hood, using seeds to create keypairs and then making mutually agreed raw transactions is not complex.. but its made to look more complicated than it is, so much so that even the fangirls that idolise it for years still dont understand it
and if you think that devs dont make it complicated.. that is a laugh
devs know they are replaceable, they are not gods.. so if they make things complicated where only their expertise/deity status can be used to evolve it. they get to keep their job and keep receiving sponsorships to continue updating
its a known function of devs to never complete software and require their involvement to keep updating it, otherwise they would only have work for like 6 months per project if they did just build things the simple way.. its their way of having a career/job security, by doing things a certain way to keep their contract/job/grant/sponsorships flowing for years instead of completing in months