1. A method comprising: generating, by a system component of a server system, a plurality of variations of a user interface layout based on a first user interface layout having a set of user interface components, wherein the first user interface layout is associated with a task included in a process of a computer-implemented software application running on a server in the server system, the computer-implemented software application accessible over a network by a plurality of client devices associated with a plurality of task users in a distributed network environment, and wherein each of the variations of the user interface layout provides a different configuration of the set of user interface components from the first user interface layout; dynamically measuring and monitoring one or more performance metrics associated with each variation of the user interface layout while a task that the one or more task users of the plurality of task users are performing, wherein the one or more performance metrics characterize a performance of the task via the each variation of the user interface layout in a particular context when the computer-implemented software application is used by the one or more task users of the plurality of task users; based on the performance of the task characterized by the one or more performance metrics, automatically selecting one of the plurality of variations of the user interface layout that performed optimally in the particular context as a second user interface layout such that the second user interface layout is selected based on a path taken by the one or more task users of the plurality of task users when performing the process; and providing the selected second user interface layout to the plurality of task users of the computer-implemented software application such that the second user interface layout is used for future iterations of the task in the process of the computer-implemented software application.