Application Development Done Right
What does custom application development look like when it’s done well? While there may be other thoughts on this and other people using processes that are not exactly the same and getting good results I can guarantee that there are certain parts that MUST happen for a project to be successful. If these are violated then, while you might get a working program, it will take too long and some functionality is likely to be compromised.
2. Functional Requirements
3. Creation of Code
4. Implementation of the program
Vision: This step is sometimes done as part of the functional requirements The deliverable in this step is a list of the groups of people that will be affected by the program that results from this effort. Each group is defined and the desired result for each is documented. The groups are called Stakeholders or Actors. A specific person may be in multiple groups but when they are acting in a certain role they become a part of that group. Examples of Groups are Inside Sales, Outside Sales, Bookkeepers, Invoicing staff, Customer Service, Executive Staff. Each of these stakeholder groups are likely to have a different view of the business and different needs from the system. Each of these needs to be documented before you can determine the functional requirements.
Functional Requirements: These are the specific things the program needs to do or data the program needs to keep in order to meet the needs of ALL the stakeholder groups. The visual representation is not as important here as the capture of the information. In fact use of screen representation can inhibit our ability to question the requirements in depth which is important to getting to the true needs of the system. Frequently we are able to ask, “why is that important?” or “What is that really used for” and find out that the process that has been in place is really not the best. During this step we frequently find that business stakeholders are better served changing the process. The best thing we hear from this step is, “we know our business better now than we did because of going through this process”. The result of this is a list of the requirements that the system has to meet. This list is comprehensive but not static. There will be discovery as we go through the building of the code. A key value of the application development team is to be able to determine when this process is “enough”. At the end of this process the definition should be enough to be able to provide a flat fee proposal to build and implement the project.
Building the code: This process is iterative, once the main parts of the database are in place screens start getting created and from that point we go back and forth with the client validating that what they are seeing is, indeed, what they expected to see. Questions come up and are answered, sometimes changes are made to the functional requirements to accept things that the team has discovered during this process. In most cases the changes are minor although there are times, “ah ha” moments, when the team realizes something larger should be done to add a great deal of value. These are few if the process in Functional Requirements is done right but when they happen they can have a great deal of value for only a small change in cost.
Implementation: This process is usually quite easy because we have been in contact so often through the development process. Stakeholders in all groups have had a very strong hand all along in building it so they know what to expect. One part of the project that is usually somewhat interesting is the migration of data from an old system to a new system. I will have an entire article about that in the future.
Done right the act of creating an application custom taylored to your business will take a significant amount of effort from both your development partner and yourself. But that effort will be rewarded in a far smoother operation with more information available and the ability to do more work with less cost, in fact it is likely that you will be able to achieve things you had always wished for but could never make happen. If these are high value things then the creation of the program is well worth the effort.