In my current project, I will be collaborating with a designer/css publisher. I will be responsible for front-end state management, DOM manipulation, and communication with the server. He will be responsible for overall design, layout, and CSS.
I’m worried that this arrangement for division of labor might prove problematic. The key problem is that he would be unable to modify DOM structures while testing out his design and CSS codes because he does not know Elm. He would have to explicitly tell me what kind of DOM structure he needs, and I would have to provide it. It’s easy to imagine how this might devolve into a nightmarish situation where I would be constantly asked just to change DOM structures and class names.
One solution would be for me to handle the CSS too, but publishing is its own specialized area and I am not good and/or fast enough at it. Moreover, he learned CSS and jQuery so that he could reliably publish his own design without a frontend developer mangling his design. It would be difficult to convince him to just provide design and let me give a clumsy shot at publishing it.
Another solution would be to teach him Elm, but he has strongly expressed his career goal to focus on design and CSS when he joined the project so he is not keen on learning Elm. Besides, he lacks background in software and it might take too long for him to learn Elm even if he was willing to do so.
We could agree on a preset list of DOM structures and class names, but that’s just a stopgap. The fundamental problem is that Elm is a big departure from conventional HTML/CSS/Javascript world, causing difficulty when collaborating with people unfamiliar with it. As for software developers, I expect them to learn Elm. But I can’t demand the same from a publisher or a designer.
With that context given, I have two questions:
- If you’ve been in a similar situation, how did you cope with this collaboration problem? Do you have any advice for me?
- In general, how should Elm as a language handle this issue about collaboration with people with minimal Javascript knowledge but won’t/can’t learn Elm?