Let's take a look at the third stage of our 4D Methodology, develop. This is typically the longest aspect of software development, so let's see what is generating all the activity.
If we are going to be developing code on-site, we are going to need the appropriate hardware and software installed on your system. In some cases, the client already has this. In other cases, we develop the application offsite (more common), and then install two instances (RC and Production) on your system. In ether case we need to make sure you have the appropriate hardware and software, so let's take a look at this step in more detail:
Hardware/Software Installation
- Coordinate Facility Operations
- Establish Production Communication Network
- Establish Processor Configuration
- Disaster Recovery/RAID Configuration
- Hardware/Software installation, if applicable
Typically this step is coordinated between your IT staff and ours. The purpose of this step is to make sure the appropriate hardware and software are in place, before the system is ready for deployment.
In the next step, we need to create an Application Development Checklist. We want to make sure each member of the development team have clear instructions regarding the coding standards we are going to follow. Here is the list of things we look at:
Application Development Checklist
- Review Coding Standards
- Code Documentation Format
- Application Development Standards
- Code Scanning Tools Used
- Repository Procedures
- Code Review Interval/Schedule
- Software Framework Review
The important thing to take away from this step is that the development team is required to code in a specific fashion, using procedures we've developed over 20 years. The above steps not only define what procedure our developers will use, but it also defines the mechanisms we will use to make sure those procedures are followed. As former President Ronald Reagan once said..."trust, but verify".
Next, we need to actually start programming. This step actually involves three activities, working in harmony. Let's review them now.
Coding, Testing and Program Documentation
- Software Programming (Coding)
- Testing (Unit, Integration, Regression, Conversion, Stress, Functional)
- Program Documentation
- Code Reviews
- Source Code Scanning
We employ a test-driven development model, which is shown above. Instead of testing the application at the end of the project, we test each module as they are created, and then at regular intervals to verify regression has not occurred. This tends to reduce unexpected surprises at the end of the SDLC. We also document the application as it is being developed, which improves the readability of the code.
During the next step we focus on the User Documentation. This is usually in PDF/Word format, and this is done as the software application is being coded. Let's review the steps below:
User Documentation
- User Manuals
- Administration Guide
- Quick Start/Basic Concepts Guide
- Step-by-Step Instructions
- FAQ
User documentation is an important part of any software project, so we want to make sure we have the right documentation for each user role. For example, a user guide and administrative guide will be required, each intended for a different audience.
After creating the documentation, we want to organize our test efforts. So let's take a look at the System Testing section.
System Testing
- Train User Test Group
- User Testing/Acceptance
- User Management Sign Off
- Final Conversion Test
- Operations Review
You might be thinking, "Rob, isn't this part of the deploy stage?" It sure seems like it, but the answer is no. Here's why. During the develop stage we are preparing for a smooth deployment. We are trying to make sure that nothing ugly happens during deployment. In reality, the deployment of your application should be a smooth process, with very little drama. We do the legwork before we deploy your software, not during.
The next step is to address any change requests. And at this stage it is likely we will have some changes to the system. This is the first time the system has been in the hands of the users, so we will address those changes now.
Change Management
- Submit Change Requests
- Prioritize Changes
- Approve Changes
- Review/Update Define/Design Documents
- Update Test Plan/Scripts/Scenarios
- Code, Documents and Test
- User Management Sign Off
It is important to understand that change is a part of any software project. We don't want to resist change, but we do need to manage and control it.
Develop Checkpoint / Sign Off for Next Stage
Lastly, we have our final checkpoint before deploying the application. This is no different than any other checkpoint, but the decision to move forward (deploy) can only be made when the system is ready. Any critical outstanding issues must be addressed before giving the green light to deploy.
That's a wrap on the
develop stage. Let's now take a look at the final stage of our 4D Methodology,
deploy.