Most projects can be broken down into 2 parts hardware and software.
When a project entails an application that will be executed on a personal computer, that computer is the hardware and the application is the software. The hardware is already established and therefore the project is entirely software.
The opposite might also be true. A piece of new hardware may be needed which interfaces with other existing hardware, a PC perhaps. In some cases one of the standard peripheral interfaces can be used and the project might require only hardware.
It is more likely that any piece of hardware or any software application will include some amount of both hardware and software engineering. To this end, although the interaction between hardware and software are strongly related, they can be separated in terms of design.
Choosing a technology for hardware may depend on inventory presently used within the company. While there are cost benefits, flexibility will achieve a balance between savings and an efficient design. The best mix is to present your inventory and allow the designer to use discretion in choosing a direction. You can designate the use of either standard through-hole or surface mount technology for the design. Note that this may put some limitations on the design as not all parts are available in both technologies.
Application software can be written at many levels. This often depends on where it is being used. Embedded software (the program that executes directly on a microprocessor or microcontroller controlling the hardware being developed) is often written in a lower level language (i.e. 'Assembly'). Application software (executing on a PC) is often written in a higher level language (i.e. 'C', 'Java', 'Basic'). There are designs where both types of software may be necessary. This might include an application executing on a PC designed specifically to interface with a piece of external hardware in which embedded software is also necessary to control the physical hardware. If your company already supports the maintenance of existing products, it may be important to you that this design use the same language(s).