Need a custom app built? I can make your vision a reality!
We'd begin with Requirements Gathering, Planning, and Systems Analysis & Design for the project being developed. Having essential details provided at the start is key because by documenting specifications, we remove ambiguity. It also allows me to focus on what's being said / shown and ask more advanced questions during our initial telephone call or video conference.
Ready to get started? Please review and answer the Project Initiation questionnaire found below. Answer as much or as little of the questionnaire as you'd like. The information you provide will help create a clear picture of what you'd like to have built. Once you've established some initial project specifications, please message me on LinkedIn or email me at richardharris84 at gmail dot com. I'd review the project specifications?up to that point, and contact you to go over next steps.?In the meantime, to provide you with an idea of the project process, I've included standard phases of the software development life cycle at the bottom. I look forward to working together!
What I Do
- Back end - Programming the "under the hood" parts of software, mobile, or web applications including database design.
- Front end - Building the visible parts of apps or websites that users see and interact with.
- Services - Custom Coding, Systems Analysis and Design, Web Content Management Systems, eCommerce, and Project Management.
- Technology Stack - ASP.NET & C# for the Server-Side platform (Back-End), Bootstrap for Web User Interfaces (Front-End), and SQL Server for Databases.
Project Initiation Questionnaire
- Company:
- Project Name:
- Point of Contact:
- Role at Company:
- Telephone #:
- Email:
- Company Website:
Note: This Project Initiation Questionnaire has also been made available for download on Google Docs.
Planning
- Can you please describe in brief the system that you'd like built??What do you want and need the system to do?
- What is the goal of the project? What business problem are we solving? Who benefits from the project?
- What are some initial key features you have in mind? What is in scope? What is deliberately out of scope and why?
- Did you have any specific modules for the system in mind? |
- Have any of the project's requirements already been documented?
- Are there any important business rules to convey at the start?
- Who are the stakeholders? Along with yourself, who else would be involved in making project decisions?
- What level of documentation (if any) would you like to see?
- Did you have any phases / iterations / modules that you wanted to rollout at a certain time?
Time & Cost
- Do you perceive this to be a small or large project? Will it have a finite start and end or will there be iterative upgrades to the system with support required?
- Is there a timeline / deadline for the project?
- How much has been budgeted for the project? Note: Knowing what you're looking to spend will give me a better idea of what I can do to meet your needs, and help me customize our solution / strategy. |
- What is most important: cost, time or quality? Note: Knowing this helps prevent scope creep and gold plating.
- How technical would you say you and your team are?
- How involved would you like to be throughout the project? After providing requirements, do you prefer to be hands off until development is wrapping up? Or would you like to be actively involved?
Data
- What are the Entities ("Things") that will be in the system? What are the Properties ("Attributes") of these Entities? What are some of the relationships between these Entities?
- Is there existing sample data available (e.g. database, CSV, XLS, or XML)?
- Are there existing copies of the reports that we'll be producing or replacing?
- Do you have existing data you'd like imported?
- Where will system data come from? What will be some of the most notable inputs and outputs to be developed within the system? Do we need to create an interface with any other systems (i.e. 3rd party integration)? Will there be APIs that will need to be used? |
Users
- Who will be interacting with the system? What are the different types of Users?
- Is this a Portal or Dashboard? Will there be different User logins and passwords?
- Will certain functions only be available to certain Users? |
- Are there other specific Security requirements?
- Do we need to track access and changes within the system (e.g. User's login history & transaction log)?
- How many Users are expected to use the system?
System Design & Development
- Is the system we are building replacing an existing system or database used at your company? If so... What does the current system do well? What does the current system not do well? What features of the current system would you like to have? What are the main features that are missing from the current system?
- How early on in the project life cycle would you like to see working software?
- How often would you like to see prototypes / builds / updates?
- Is there a specific colour palette you would like used for the system?
- Do you have any reporting or charting requirements? |
Feasibility Study & Risk Analysis
- Are we creating software that will have pre-existing competitors? If so, which companies? How do you think this system will beat the competition? Are there other sources of inspiration or references I should take a look at?
- How likely is it that needs / requirements / specifications change throughout the course of the project? |
- Are there any important constraints or risks to be aware of? What internal and external dependencies are there?
Please tell me more about you and your business
- Industry:
- Market:
- Demographics of market:
- Number of employees:
- Years in business:
- Top 3 customers:
- Top 3 competitors:
Project Life Cycle
Requirements Gathering
We need to create a clear picture of the scope for the entire project including any anticipated issues, opportunities, and the directives which triggered the project. We'll capture input from you and any other necessary stakeholders. We'll use this information to create a clear plan for the project.
Delivering a successful project is dependent on customer interaction and having clear directions. The clearer the requirements, the more efficient development will be, and the more likely project expectations will be met. This also prevents us from having to go back and make costly changes. If we're organized, we'll be able to more efficiently work together towards the shared vision.
Systems Analysis & Design
Three key deliverables that would be provided at this stage are:
- Database Entity Relationship Diagram (visualization of the database we'll create). The Tables and Fields in our database will dictate the screens and fields within our application. The diagram allows for easy review of the various Entities within the business and the relationships between them. Note, I would generate the ERD by actually creating an initial custom development database for the application. Based on feedback, we'd try to finish the database schema prior to starting programming (if possible).
- Site Map (e.g. nested list), Navigation Strategy, and/or Flowchart (i.e. hierarchy of the different screens within the system).
- Application / Website Design Template (establish the "look and feel"; static demo).
Development & Implementation
With the requirements gathered and system design complete, we'd start programming. We'd begin by determining the priority order of the proposed work, work schedules, due dates, and building a roadmap of tasks which we would obtain stakeholder agreement on. This will help everyone involved to have a clear picture of what we're aiming for.
Project Wrap Up
Review & Training - Telephone call, video conference, or meeting.
Testing - Product defects are reported, tracked, fixed and re-tested, until the product reaches targeted Quality Assurance (Q.A) standards. If this is an iterative project (e.g. a product / platform), it is often worthwhile to have separate Development and Product environments.
Deployment - Launch / Go Live and Client training. Client evaluates the system and provides feedback. Scalability is important for applications with a large number of Users. This is why I prefer the enterprise-level technology - .NET & SQL Server - provided by Microsoft.
Support / Maintenance / Updates (if required & in scope): Address requests for enhancements, bug fixes, and new features. These requests will come from many sources but the client will communicate which of these initiatives make it onto the product roadmap to work on.
I look forward to working with you!