When a developer writes a program, he makes sure that it works in many different environments, on machines with different resources, and in different time zones. The software should work on screens of various sizes and orientations, in conditions of limited memory and low processing power.
For example, if software is written for a web browser, it should work on all major browsers. When creating classic software, in most cases it should work on both Mac and Windows platforms. If the application you are creating depends on receiving data, it should continue to work even if the data connection is slow or even completely absent for a while.
To write a software component, developers try to think through every possible scenario imaginable and plan to test them. They start with what is called the default scenario (or “happy path”), in which nothing unexpected happens, and all possible problems along the way – which is important – are documented and a test is planned for each. Some developers start by writing “test cases” that mimic such scenarios. They then write functional code that passes these test cases.
Developers need to understand the software requirements, which are often ambiguous and incomplete. A developer’s skill is not in how he writes the solution, but rather in which solution he sees fit.