1. A computer-implemented method for managing a work packet's life cycle, wherein the work packet is assembled in a software factory that creates software in a standardized manner, the computer-implemented method comprising: defining a work packet to specify a method for performing sub-function of a software, wherein the work packet is a pre-stored, reusable, self-contained, discrete unit of software code; assembling the work packet; archiving the work packet in an asset repository; retrieving the work packet from the asset repository; and sending the work packet to an assembly line for consolidation with other work packets to create a software.