
Image : http://www.flickr.com
The first thing to accept is that software development is unpredictable. No matter what new fangled software is implemented and how many points are estimated function, experience has shown that making the target date (let alone achieve the desired result of quality), is a hit and miss affair.
Risk may arise due to requirements not clearly defined, the difficulties in estimating the time and / or resources necessary for software development, dependence on individual skills and quicklychanging requirements due to changing needs.
Here are some thoughts on how to do a bit unpredictable 'more predictable.
Spend more time setting targets
The project objectives are important. A project should not be initiated without a well thought out objectives. Spend time analyzing what the project is trying to achieve. The objectives of the project is necessary to provide guidance to the programmer for all programming tasks. Pin up of the objectives for eachprogrammer to see.
Here's an example of setting a goal. I was asked to analyze the needs of busy managers. His filing system manual was constantly in use, and never in order. A system was needed to maintain current data, and ensure that records could still be found. This was fairly easy. However, during the interview, the phone rang constantly with requests for information. The aim was approved "Eliminate the phone." This led to asuccessful solution, but completely different from that originally planned.
Having set the objectives of the project, do a comprehensive analysis of how the objectives can be achieved. This should eliminate unrealistic goals - as "the best and most beautiful and cheaper and faster."
Do not spend too much time collection requirements.
rigid analysis programmer and stifles the creativity of users. It 'also no guarantee against a software disaster. If thedocumentation requirements of runs into several volumes, it generally a software disaster.
Users often do not know what they want, but recognize it when they see it! What was the initial requirement may not be what you wanted at all. Rather, spend time creating a solid framework project that will allow you to achieve the main objectives.
Stopping a project in more activities.
Where possible, a major project should be brokeninto smaller tasks. Each activity will be more likely to do less and less that can go wrong.
The initial programming task should be to create a framework with minimal functionality. Procedures create a dummy to show the style and intent - it is important for users to see the look and feel of the project early in the development cycle. It 'also important for users to be involved from the outset. What you want is users to start "owning" theproject.
With the objectives of the project deeply set, the basic functionality should be subject to major changes. Dummy procedures can be completed once the design concepts and project were approved. Later tasks can then add the "bells and whistles."
The project must be "infinitely changeable.
The project must be designed so that it can handle major changes in requirements. With a clear framework and design deeply infinitely modifiable, theeffect of users to change their minds will be minimal. How will the consequences of new ideas or better as the project evolves.
We need expanded thinking about how a system can be created infinitely changeable. This must be done before any programming is begun. "From", standard modular design, will help.
The consequences of having a rigid system are unpleasant. When change occurs, and you will be managing a very unhappy when the target date must beextended. Equally regrettable is to send the programmers into a "death march" to get the project finished on time.
Do not use new or complex technologies
Using simple, tried and trusted software offers an advantage. There is always some advantage in using the latest version of the software - but there may also be a heavy cost. If the new technology is essential for the project, then a process independent of software is needed to ensure Adequate technical knowledgeand that all software bugs have been fixed (always?).
Based on immature software with limited exposure to the programmer software is a recipe for disaster.
Hire only the best and brightest
The success of a software project is mainly dependent on the ability of developers. They will determine, more than any other factor, the feasibility of a project and have a huge impact on productivity.
Some suggestions: Successful applicantshould have a keen sense of humor (see De Bono Lateral Thinking) and a good knowledge of English idioms. Good communication is very important.
Do not proceed with a major project where the best and brightest have recently left the company. The company will suffer "skimmed milk" syndrome - and the cream of the crop is necessary for successful development.
Reusable code
It 's always productive to collect an extensive library of reusable code. Theprocedures should be used to standardize: error handling, database access, modify procedures, network management, etc. The reusable code will reduce the time for debugging, as each procedure is called multiple times. It also reduces the amount of code required.
buy car amplifiers micro sd card batteries plus store