Understand Development Methodology

Last updated January 1, 2018

A system development methodology refers to the framework, processes and rules that are used to structure, plan, and control the workflow for developing an information system. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses and suitability for different kinds of projects. At Prospus we have a standard set of phases we follow when executing system development. The following is a list of those phases that we may use in full, or in part, in the process of developing a system.

What is a Development Methodology?

A system development methodology refers to the framework that is used to structure, plan, and control the process of developing an information system. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use in all projects; each is tailored for different kinds of projects, based on various technical, organizational, project and team considerations. The following is a list of systems development methodologies that we find acceptable and may use, in part or in full, for this project.

Meet the Team

A lot of effort goes into the production of every single Prospus system, whether website, web or mobile application. System development is a like a highly-choreographed performance, involving numerous professionals, tools, technologies and communications all aimed at satisfying requirements and delighting clients. In this section we will describe the various actors who will be involved in transforming client system requirements into a usable application.

Note that every project is different and a specialist from every area may not be required. Involvement varies directly with requirements, system size and complexity, and project budget. Clients are encouraged to inquire about the expertise of individuals assigned to their projects.

Project Manager

The Project Manager at Prospus is a senior-level position overseeing multiple Project Coordinators and their projects. They are the de-facto authority on all project-related matters and approve all project timelines, resource allocations and policy-related matters. Project Managers at Prospus have at least a decade of experience in managing international projects and can resolve any technical or professional matter to our clients’ satisfaction. Your project may or may not have a Project Manager assigned to it. At any time, a Project Manager will oversee a portfolio of projects at Prospus.

Core Responsibilities
  • Approve or modify project budget and timeline from Project Coordinator
  • Approve or modify project resource allocation from Production Leads
  • Approve or modify project plan
  • Serve as final authority on all project-related policies
  • Report project progress to Operations Manager
  • Directly address and resolve client issues

Project Coordinator

The Project Coordinator is the most visible Prospus employee to our clients. They are responsible for collecting all requirements from clients and passing them onto the production team for implementation. However, their job does not end there, as they are responsible for moving each project through our defined project workflow to completion. Project Coordinators are also authorized Prospus sales representatives and can provide solutions to client questions and problems. At any time, a Project Coordinator will be overseeing three to five different projects.

Core Responsibilities
  • Gather client requirements
  • Decompose client requirements into system specifications
  • Generate internal project workspaces
  • Coordinate project budget and timeline from Production Leads
  • Prepare project plan
  • Prepare and send client status reports
  • Direct projects through our project workflow
  • Report project status directly to Project Manager
  • Handle all client inquiries, escalating to Project Manager when necessary

Sales Coordinator

The Sales Coordinator may be a client’s first contact at Prospus. Sales Coordinators are experts in Prospus products and services, possessing a deep knowledge of technology solutions in the market, how we work, and what makes us different. They are trained in virtually every type of software system and can provide high-level answers to prospects and clients alike for most of their queries. For highly-technical questions and solutions our Sales Coordinators will build a bridge directly between clients and senior members of our operations team to find the right information.

Core Responsibilities
  • Initiate and validate relationship
  • Gather client requirements at a high level
  • Propose general solutions to client needs
  • Coordinate discussions between clients and operations team
  • Close solution sales with clients

Business Analyst

The Business Analyst (BA) is responsible for analyzing an existing or ideal organization in terms of business or system processes and proposing solutions to improve efficiency and enhance functionality. In software projects the BA serves as the mediator between the various business and technical stakeholders, providing valuable assistance in the process of translating business needs into technical specifications. At Prospus all our Sales Coordinators and many of our Project Coordinators are also trained Business Analysts and therefore able to operate with the experience of several positions.

Core Responsibilities
  • Gather client requirements at a business level
  • Evaluate client business processes and systems in terms of system requirements
  • Recommend solutions which satisfy all stakeholder requirements
  • Facilitate interaction with operations team

Systems Architect

The System Architect is one of the senior-most production-level positions at Prospus and is responsible for reviewing and understanding system requirements and translating those into a complete framework, including the user interface, logical subsystem and database schema. The system architecture process ensures the stakeholder vision is captured and carried through to the final deliverable. System Architects typically work on multiple projects and are generally only involved in complex or Performance-class solutions with bespoke requirements. There are three types of architecture performed at Prospus: database architecture, logic architecture, and interface architecture.

Core Responsibilities
  • Understand system requirements
  • Directly craft or oversee creation of system framework, including user interface, logical substructure and database schema
  • Understand and plan for the needs of the system throughout the life cycle
  • Review and approve framework modifications prior to implementation

Development Lead (Web, Mobile, DevOps)

The Development Lead is a senior production-level position at Prospus responsible for reviewing and understanding the system architecture, specifically system programming requirements. Development Leads spend most of their time transforming requirements into work-level tasks for Developers and Database Administrators and overseeing their work to ensure functional, quality, consistency and delivery objectives are met. Development leads will typically oversee multiple teams and projects and are supported by senior-level developers on each team.

Core Responsibilities
  • Understand system requirements and architecture
  • Conduct development team status meetings
  • Review and ensure code meets functional, quality and consistency objectives
  • Provide realistic development-level timelines for work
  • Deliver functionality on time and within budget
  • Program when necessary

Developer (Web, Mobile, DevOps)

Developers are the front-line agents responsible for making web-based systems work. Developers, or programmers, work in a variety of environments and tools and specialize in multiple languages over the span of their career, including server-side languages such as Java, PHP, .NET, Node.js and client-side languages based on JavaScript such as React and Angular. Developers will typically only work on 1-2 projects at a time and report directly to the Development Lead.

Core Responsibilities
  • Understand subsystem requirements and architecture
  • Efficiently program functionality according to requirements
  • Ensure code meets all functional, quality and consistency requirements
  • Suggest programming improvements

Database Administrator

Database Administrators generally work alongside Developers to implement, install, configure, upgrade, administer, monitor and maintain system databases. They are trained in designing secure and scalable database solutions for any type of system, and their contributions are optimized performance leading to faster, more efficient solutions. Database Administrators work on multiple projects at a time and report directly to the Development Lead and System Architect both.

Core Responsibilities
  • Understand subsystem requirements and architecture
  • Efficiently program functionality according to requirements
  • Ensure code meets all functional, quality and consistency requirements
  • Suggest programming improvements

Design Lead (Web, Mobile)

The Design Lead is a senior production-level position at Prospus responsible for overseeing a variety of activities in the production process, including graphic design, interface design, web styling, usability and user experience analysis. Design Leads decompose system design requirements and assign tasks to User Interface Designers, Graphic Designers, Web Stylists and Front-End Developers and ensure all design-related work meets our quality standards. Design Leads oversee multiple teams and projects at a time.

Core Responsibilities
  • Oversee entire design process during production
  • Conceptualizing original ideas that bring simplicity and user friendliness to the UI
  • Coordinate activities of UI, UX, and graphics teams
  • Collaborate with product management and engineering to define and implement innovative solutions for the product direction, visuals and experience

User Interface (UI) Designer

The User Interface Designer is responsible for modeling and prototyping effective and usable interfaces for web and mobile systems. Their primary concern is the user experience, often measured in terms of “usability”. UI Designers strive for “user-centered design”, which combines simplicity of design, and balanced technical functionality and visual information. User Interface Designers are a core contributor to the initial efforts by Prospus to connect business with technical requirements. UI Designers usually work on multiple projects at one time.

Core Responsibilities
  • Create user-centered interfaces for systems
  • Execute all visual design stages from concept to wire-frame to final hand-off to engineering

Graphics Designer

Graphic Designers are creative professionals who are responsible for bringing layouts provided by the User Interface Designers to life with imagery, colors and typography appropriate to the system and client needs. Graphic Designers are concerned primarily with balancing aesthetic and functional requirements to build unique and user-friendly designs. Graphic design work is the most visual aspect of an entire project and often the most important to a client.

Core Responsibilities
  • Understand appropriate system design boundaries
  • Create original artwork
  • Overlay graphics on top of approved UI layout
  • Prepare design concepts for client review and revision
  • Provide system style color, composition, control, typography and layout standards for Web Stylists

Web Stylist

Web Stylists are responsible for converting Photoshop-based designs provided by the Graphic Designer into browser-compatible HTML and CSS for web-based applications. Since Graphic Designers do not create designs for every single page and object on a site, Web Stylists are responsible for intuitively applying the design template created by the Graphics Designers to the entire site in a consistent and attractive manner.

Core Responsibilities
  • Build pixel perfect Web layout according to approved wire-frame and graphics

Project Workflow

We divide our projects into multiple stages according to widely-accepted software development standards. Each stage can comprise multiple milestones and key deliverables, depending on the requirements of the project and demands of the client. Below is a breakdown of an imaginary project which approximates the costs for a full, beginning-to-end development project following our standard procedure . This chart shows the average cost in hours and dollars, by phase, for a 1000-hour project. It can be useful in understanding where project expenses are incurred.

Table 3: Labor Summary for 1000-Hour Project (Est.)

To better understand this chart, take the line item for the “Design” phase. By looking at the chart we can ascertain the following information:

  • Project Hours. Approximately 20.0% of the total 1,000 project hours will be spent on design.
  • Hourly Labor Rate (USD). The average hourly rate for the employees working through the Design phase is $18. This may include one or more of the following specialists: graphic designer, web stylist, user interface designer, design lead, task manager and project manager.
  • Labor Hours. The total hours spent in the Design phase is approximately 200 hours in a 1000-hour project.
  • Labor Cost. A simple multiplication of the Hourly Labor Rate and Labor Hours, arriving at an approximate cost of $3,600 for the Design phase.
  • Labor Budget. The total percentage of the budget that the Design phase will consume is 15.3%.
  • Budget Consumption. The percentage of the project budget expended by the end of the Design phase is 54.2%. In other words, by the end of the Design phase approximately $12,780 of the $23,580 project budget has been utilized.

By studying this chart our clients can get a better idea of where how their project budgets might be allocated. Please note that each project is unique and may follow a different process than the one outlined above and therefore may incur costs differently.

Stage 1: Engagement

Prior to accepting a client project, we offer a brief consultation to determine if we are a suitable development company for the task, followed by a comprehensive evaluation of the client’s needs in terms of the services we offer. The engagement stage deliverables are the necessary legal and contractual agreements to form a binding work agreement.

Stage 2: Discovery

The discovery stage comprises a thorough analysis of the technical and functional aspects of the solution, combined with research into the technical demands of the market. The result is a full technical analysis of the system, and the confidence that we have accurately accounted for the project needs and that we can deliver a solution in an efficient and timely manner within given constraints.

Stage 3: Planning

During the planning stage we fully define all aspects of the project itself, from the stakeholders and their criteria, to the budget, timeline, milestones, deliverables and communication plan. We create and share the project plan with all project stakeholders to ensure all participants are aware of their responsibilities within the project.

Stage 4: Modeling

During the modeling stage we review the technical requirements, determine the most appropriate way to simulate the project, and then create a realistic wireframe or prototype of the final system. The final deliverable is a representative, web-based wire-frame which permits the end user to navigate as they would on the final solution.

Stage 5: Design

The design stage involves preparing the final graphical designs based on the model. The main deliverables are a visual representation based on the site structure accepted in the modeling stage. Upon completion of the design phase, the website will have taken shape, but will be absent of any content or functionality.

Stage 6: Architecture

The architecture phase covers planning for the entire implementation phase. During this phase senior level architects, database analysts and project leads identify the key structural elements of the application and model them at a high level before a single line of code is programmed. Depending on the complexity of the solution, the architecture stage can consume as much as 30% of the costs of the full system.

Stage 7: Implementation

Implementation involves the bulk of the programming work and database-level work. During this phase we organize and comment our code, constantly referring to the original requirements, while considering change requests as they are received. We continuously and simultaneously test our work in parallel to reduce the amount of testing required later.

Stage 8: Testing

Testing plays a critical role in the development of a system and its long-term maintenance. While smaller projects with more limited budgets may not need to follow the formal testing procedures that are required for large-scale, commercial web sites, every system needs to be thoroughly tested to ensure that it is error-free, user-friendly, accessible, and standards-compliant.

Stage 9: Training

Prior to launch, we will have a training session with all staff that will be using or updating the system. Training is done anywhere from a week before launch to a few months before launch depending on the needs of the project. Training costs can vary widely, depending on the demand for formalized documentation, or on-premise training.

Stage 10: Launch

The launch stage of our project process starts with the analysis of hosting needs and identification of a suitable solution. Once a solution is chosen we migrate the site to the server and configure the environment to ensure optimal performance. Once all systems have been thoroughly checked by our expert server administration team we make the site live. After the launch we carefully watch server logs for any critical activity for the following week, taking preventative or correct action as necessary until the site is fully stable. Once the system is live, we will setup a post-launch meeting to review analytics and look at the overall site performance. This is also a good time to discuss search engine optimization (SEO) in addition to ongoing efforts to increase traffic, users and conversion goals.

Stage 11: Support Planning

Prospus offers a complete array of one-time and ongoing support services for all types and sizes of solutions. Once a solution is deployed, we are available to provide reliable support. We even offer an urgency option for clients requiring high-speed issue resolution. Clients can choose one of our predefined support plans, or custom-assemble a plan to meet their own budget and technical requirements.

Note that this covers only the cost of building a support plan.