A very busy intersection on the road. Potential or real threat of collisions. You need to resolve it.
Many people would say - put the traffic lights there. Indeed this is a possible solution.
What if at least one of the roads crossing is a highways? Putting traffic lights means increasing congestion, potentially building up jams. Would you still put the traffic lights or build a complex ramp structure? I guess the answer would depend on the budget and the profile of the landscape.
Now what if one of the roads is really rarely used. Surely it won't make any sence to put traffic lights and stop cars on the main one for the sake of potential user of the other one. Building a full-fledged 12 way ramp will most likely be not feasible. A give way signs for joining or turning traffic may be a solution though it will be hard for the traffic that has to cross the lanes travelling in the opposite direction and it will be almost impossible for cars to actually cross the busy road. An overpass with exits then?
What if the pattern of traffic on either roads is not a lot but really unpredictable? What do you do? Configure you traffic lights in some obscure manner so they try to fit the pattern? Configure them in some way with no regards to the pattern potentially making people wait when no vehicle is crossing and basically urging them to cross on a red light or maybe just build a roundebout?
These are kind of tasks an Architect has to have in mind.
To continue the analogy, a designer would be the one to calculate the roundebout radius, the traffic ligth pattern, the necessary signs informing the drivers.
Programmers would be the ones to actually put the solution in place. Stop the traffic while additional lanes are laid, make new road seal, put new road markings.
Between these 3 roles you get the more popular blends: Programmer/Analyst (Architect + Designer + Programmer), Developer (Designer + Programmer), Hands-on Architect (Architect + Designer)