How to Develop Software Faster
Software development started out as code-and-test operations involving simple tasks. The "waterfall model" introduced more structure in a phased approach from requirements analysis to design, to code, and finally to test. Agile development makes the process faster by getting a working software product to the customer in the shortest time possible.
- Difficulty:
- Challenging
Instructions
-
-
1
Eliminate non-value-added work. Remove review meetings or elaborate design documents if they are not adding value and are only taking up time. Note that some customers will insist on formal documentation, such as detailed design documents, as part of the software product.
-
2
Know your customers. Get out of the office and see exactly how your software could be used. For example, if you are designing an inventory tracking system, spend some time with supply chain and warehouse managers in the field and find out how they might use such a system. It could save you time and money redesigning an unusable product later.
-
3
Hire, promote and mentor talented developers. Place a high premium on finding and nurturing high performers. Keep them motivated by reducing repetitive tasks. Coding can be a lonely and boring job, especially if it involves writing similar code segments repeatedly. A possible solution might be to write generative code: software that automatically produces repetitive code blocks. This may not be always feasible, however, since developing generative code for a complex system could itself be a time-consuming project.
-
4
Leave enough slack in the schedule. Rushed software development usually leads to defective products as people start cutting corners. Planning for large software projects may include an envisioning stage to develop the product concept in consultation with customers, followed by multiple software version releases. Software projects should be broken up into manageable units developed by small teams. It is easier to develop and test smaller units than a final product with thousands of lines of code.
-
5
Implement rapid prototyping. This involves developing prototypes or mock-ups and getting customer feedback. The prototypes are usually shells. For example, if you are designing a user interface for a medical device, the prototype may not let you actually operate the device. Instead, it may let the customer (e.g., a medical lab technician) review the layout, menus and graphics and provide feedback on how they could be improved. Prototyping speeds up the process because you are analyzing the requirements (e.g., what does a technician need on his screen) and developing the code (i.e., the prototype software is usually reused in the final product) simultaneously.
-
6
Outsource some of the software development. Creating software requires specialized knowledge, and sometimes the right talent may be thousands of miles away. Look for outsourcing firms with a track record of completing similar software projects on time. Implement appropriate management controls so that the outsourced components are developed on schedule and on budget.
-
1
Related Searches
References
- Photo Credit Jupiterimages/Pixland/Getty Images