This page describes the 'Software Best Practices' employed by Gorges Web Sites in developing advanced customized business applications on the Internet.
THE NEED FOR A STRUCTURED APPROACH
Software development is a complex process. It involves the knowledge contributed by many individuals, numerous high-tech and low-tech tools, and months of time.
To ensure that the best possible product is created efficiently, we have developed this process over many years and dozens of software projects.
PRE-PRODUCTION FOR SOFTWARE ENGINEERING
- Overall Project Planning
- Develop timelines, milestones, responsibilities, and appropriate contracts.
- Business Requirements
- The first step is often called a 'discovery period'. During this phase of the project, we gather knowledge from all key stakeholders, and attempt to capture the 'big picture' of what is needed. All needs and requirements of the software are identified and discussed on a high level.
- Process and User Flowcharts
- Process flowcharts. These are high level flowcharts showing the required business processes, ordered logically by sequence of tasks.
- User flowcharts. These take the perspective of each type of user of the system showing key tasks.
- Navigation and Information Architecture
- Determine top level menu items.
- Plan out hierarchy of content, generate list of needed content.
- Define Business Rules
- Identify and detail out all business rules that the system needs to observe.
- Bring in all stakeholder knowledge into a document that describes the requirements for each screen or area of the application
- Reports, imports and exports
- Identify and codify the needs for each report the system must generate
- Similarly identify all 3rd party system integration needs (e.g. imports and exports)
- Wireframes
- Wireframes are 'mockups' of key screens in the application, that show a possible user interface for data entry and review.
- Initially, a few 'keyframes' are identified and reviewed. Once these are sufficiently detailed and accepted, all remaining user screens and forms are wireframed.
- The wireframes are edited and revised until all issues are clear and everyone understands what is being built.
- Technology Planning
- Identify web server, application server, frameworks, database server, programming languages, tools for business objects and programming languages
- Plan software architecture, e.g. AJAX, Web 2.0, module builder, content management system etc.
- Select the most appropriate software framework and language, such as ASP .NET, PHP, Ruby On Rails, Java, AJAX, Cold Fusion, SQL Server, MySQL, PostGRES, Oracle, from a wide range of available tools and techniques
- Security and backup planning
- Our decades of experience give us the skills to implement your business application on the best technology for your needs
- Level of Effort
- Once the wireframes are complete, an accurate cost and level of effort (LOE) can be established.
- Planning for all tasks to implement the wireframes, including milestones, tasks, etc. can be done at this time.
- Create production timeline
PRODUCTION (IMPLEMENTATION)
- Visual Designs (Photoshop or Fireworks usually)
- The actual look and feel of key screens is developed, made from the wireframes
- Create design guidelines and style sheet for all graphic elements
- Administrative Screens (Dashboards)
- These are the 'backroom' pages, including administrative areas, logs, tracking, etc.
- Database Design (ERD)
- Design and implement necessary data structures to support all functions, business rules, and interface requirements
- Templates (HTML & CSS)
- Turn the visual designs into actual templates and objects that will be used in the final delivery of the live application
- User Interactions (Javascript / AJAX)
- Develop dynamic user interactions, e.g. smart forms, auto-lookups, drag and drop, etc.
- Application Programming, for each function or component of the system:
- Create a test script to validate that the business rule(s) and function(s) of each component can be validated programmatically
- Program application component
- Test component
- Commit code to versioning system for backups and version control
- Code review by senior engineer or tech lead
- Reports, Imports and Export
- Create a test script for each report, import, and export needed
- Program each
- Test thoroughly
- Data Conversion
- Develop any 3rd party interactions
- Bring in initial data set
- System Administration Tasks
- Develop processes and scripts to publish code and data to test and production servers
- Plan for all anticipated system-administrative tasks (replicating data, versioning, backups)
- Deploy BETA version of complete software to test server
- Perform comprehensive quality assurance
- Manual testing from each user perspective
- Automated testing using the test suite
- Revise and Debug
- Release final version to production server
POST-PRODUCTION (MAINTENANCE)
- Finalize documentation
- Monitor live release for errors or anomalies
- Prepare for patches
- Set up support processes and ticket tracking systems
- Create, test, and release patches as needed to fix errors
- Performance optimzations as needed
BENEFITS
The benefits to using a structured and planned approach to software engineering are many:
- All needs are identified up-front, ensuring that time is not wasted re-writing or re-engineering areas after programming has happened
- A team approach is used so that all key personnel know that their input is valued, and when and how they are able to contribute
- The cost and time to market are minimized
- The end product is best possible Internet application to support maximum growth, revenue, and stability
Looking for more details about our web tools?
View a detailed list of the tools and techniques we will use for your benefit.
Top 10 reasons to choose Gorges Web Sites for your software development project.