PMG Web Development
We Pride Ourselves in Pursuit of Excellence for Custom Applications.
Our team uses Bootstrap 3.x framework to build all web interfaces in a responsive design that suits desktop, tablet and mobile screen resolution. We ensure cross browser compatibility across key browsers such as Internet Explorer 9+, Google Chrome, Firefox and Safari. JQUERY and AJAX is used in all our web projects to achieve richer user interfaces with fewer round trips to server. We have started to use Pusher API in our more recent projects to further improve user interfaces through automated screen updates based on server events.
WordPress themes are attractive and flexible. There is a large collection of themes and plugins to provide a head-start in project development. PMG Technology Services team often writes custom plugins in MVC style to achieve external API integration and custom client requirements in the projects. The CMS portion of WordPress comes with every friendly user interface and all custom code is built as plugins using object oriented coding in MVC pattern.
PMG Technology Services team builds native applications for MAC OSX 10.x as well as iOS applications for iPhone and iPad devices. Our team uses XCODE as IDE for development using Objective C with INSTRUMENTS for extensive performance testing. Our iOS applications pass through an extensive series of tests to make sure that there are no memory leakages and the user interface is designed as per Apple guidelines. We have experience in getting the approval from APP STORE for iOS applications.
Android development in PMG Technology Services is done using Java and our team uses Eclipse as IDE. Our native Android applications interact with device API for features such as messaging, automated calling, GPS, Google maps API and Bluetooth connectivity. Local storage is done with SQLLITE database. Most of the time we integrate with an external web database for centralized control of application permissions, content publishing and user management.
Our projects are delivered against a step by step process that is well documented and this is the closely tracked by Quality Manager as well as Project Manager. There are standard procedures and templates that support various sections of the development process. The key steps include design sign-off, database design, sprint by sprint execution as per scrum methodology, briefing session, design verification, acceptance criteria, TECH audit, validation and UX audit.
60% of the success of the software project depends on correct user interface design. We are very skilled in building minimalist interfaces with excellent usability. We have an artist who audits each sprint.
This technique is similar to iterative prototyping where we define the starting structure to start with and build around it module by module (sprint).
We want to ensure that the internal engineering quality of our work is as per industry standards of scalability, performance, modularity, readability, security and re-usability. We encourage compliance with OWASP and PCI standards.
Verification & Validation
Post unit testing, every sprint undergoes verification against the tech spec and validation as per agreed acceptance criteria. Verification confirms that the implementation conforms to the design. Validation evaluates the match with business requirements and end user perspective.
Sign Off & Acceptance
It is crucial to sign-off the user interface wire-frames in the initial design phase. Every sprint starts with a user interface verification and a UI demo is done by Business Analyst to confirm the acceptance criteria for the sprint before making tech spec and starting the programming.
SCRUM is an alternative to waterfall methodology which recognizes the challenge that achieving 100% upfront clarity about business requirements is not viable in large projects. Hence instead of spending 3-6 months doing a specification and design phase prior to development, it is better to define a manageable scope for an initial prototype to start with and have something tangible built in first month itself. Further development adds features in the sequence of priority every 2-3 weeks. This approach produces tangible work early in the project life-cycle and ensures better predictability / cost effectiveness.
Sprint By Sprint Delivery
There is a quick initial design phase that gives an overall core framework to the project. Small groups of add on features worth 2-3 weeks of effort are added progressively over time. These are called sprints.
The primary benefit of our SCRUM methodology is that tangible functional prototypes become available starting from first month of project start date. It is easier to define further work around a working software prototype rather than think everything from imagination alone.
We need the client coordinator as a vital player in the project process. It is a co-creation process and client must contribute to definition of requirements and user interfaces as well as key design decisions. Validation of work in process deliverable’s after QA clearance must be done by client coordinator.
Start With a Quick Prototype
What is the point of doing a 2-3 month upfront design phase and have nothing to show except a technical document or a book full of wire-frames. We build a quick prototype with base features upfront and recommend that clients start doing test marketing and gather pre-launch feedback from user community. Every sprint progressively enriches the initial application.
Every Sprint is Predictable
Dealing with small and well defined sprints one at a time keeps them predictable in terms of schedule and budget. We provide a range estimate for the entire project based on initial design and firm estimates come in one sprint at a time.
Tech Spec & Verification
Technical Specification is prepared after Project Manager conducts briefing session and team achieves user interface design verification. Acceptance criteria must be prepared by the Business Analyst before the Technical Specification is written by Quality Analyst.
Typical contents of a tech spec
Tech spec is a checklist and includes tests such as field validations, cross browser compatibility, cross device compatibility, W3C CSS compliance, W3C HTML compliance, page load time (YSLOW / PAGE SPEED) and functional requirements based on the project specifics.
Verification by QA against Tech Spec
We encourage collaboration between programmers, designers and the analyst group. The QA clearance is needed as soon as the programming group declares the feature (s) as ready after unit testing.
What is Tech Spec
QA prepares the verification checklist for each line item in the acceptance criteria. This is the collective list of tests that must be passed to sign-off each one of the requirements.
Checklist for Unit Testing
Programmers find the TECH SPEC immensely useful as a list of scenarios that they must cross check before declaring the feature as ready for verification by QA. The Project Manager also uses the checklist as a way of tracking task completion.
Clearance Delay / Defect Leakage
We track the delay in obtaining QA clearance post unit testing as a process metric. The defect leakage in client demo post verification clearance is used as a process metric to judge the effectiveness of the verification process.
Acceptance Criteria & Validation
At the start of the sprint, the Project Manager conducts briefing session and team achieves user interface design verification. Acceptance criteria must be prepared by the Business Analyst only after design verification is done. This is the functional spec for the sprint.
What is Acceptance Criteria
BA prepares the functional description page for each feature in the sprint. This is the illustrated description for each one of the features and the BA makes a brief presentation using this document at the start of the sprint.
Typical Acceptance Criteria
This document typically has one page for each feature and there is a brief description of the functional requirements followed by a screenshot. The idea to describe how the key elements of the user interface as well as provide notes on the required database interaction.
Upfront clarity for Programmers
Programmers get a briefing session from Project Manager when the sprint begins. In addition they need to achieve design verification before any coding is initiated. Finally BA makes a presentation based on acceptance criteria after design verification.
Validation by BA against Acceptance Criteria
Business Analyst clearance is needed as soon as the programming group declares the feature (s) as ready after unit testing. This is a pre-condition before any client demo can happen.
Client Demo / Defect Leakage
We track the delay in obtaining BA & QA clearance post unit testing as a process metric. The defect leakage in client demo (done by BA in presence of Project Manager) post validation clearance is used as a process metric to judge the effectiveness of the validation process.
We are extremely serious about ensuring that the internal engineering quality of our work products meet commonly accepted industry standards in the developer community. Technical Audit is a high level code walk through by a senior technology architect to ensure compliance to standards.
What is a technical checklist
The primary driver of our technical checklist are programming practices that we have setup over vast experience to ensure performance, scalability, modularity, readability and hack-proof security in our work products. This is an agreed list of standards that must be strictly used in each project.
Typical engineering standards
We ensure that our code is perfectly object oriented and there is a distinct separation between presentation, logic & data storage. The exceptions are handled and logged. Database normalization is of paramount importance to ensure good scalability for future.
OWASP, W3C & PCI compliance
W3C standards ensure valid markup, style and scripts in user interface to ensure fast loading pages and semantic design. OWASP standards is a crucial set of practices to safeguard against vulnerabilities such as cross site scripting and SQL injection among others. PCI standards is one step stricter than the OWASP guidelines and is need when credit card info has to be stored on merchant server.
Validation by Tech Lead against checklist
Tech leads are experts in the specific technology and we use a network of part time specialists in addition to our full time senior technology leaders. Each project must pass a tech audit at least once a month. The initial score against technical checklist is used as a process metric.
Tech Audit sign-off
The initial technical audit typically throws out a list of issues that must be cleared by the programmers to the satisfaction of the Tech Lead before sign-off is given. We evaluate first time right behavior of each project team in the technical audits as a process metric.
User interface is a make or break factor in a software project. Brilliant back end code is of little use without an intuitive and impressive user interface. We are paranoid about creating outstanding user experience in each and every project.
Half the game is just UI
We believe that 60% of our job is done if we achieve an excellent UI and design in the project. The next in the pecking order is proper database design. UI is not just the artistic look & feel but also about simplicity, usability, consistency, alignment, color balance and accessibility.
Typical UI standards
Simplicity and minimalism is our constant favorite. We insist on original artistic design in every project and this is done by a full time in-house sketching artist. Consistency in fonts, colors, layouts, icons and backgrounds is the baseline expectation.
Dedicated team of designers
In the early days of the company, our programmers would double up as UX designers. We evolved towards a separate group dedicated to front end design to build specialization and excellence. We truly consider user interface as very important and have cultivated certified designers to achieve this.
UX audit at every process step
UX Auditors are artist by profession and have supplemental tool skills in Photoshop or CSS / JS frameworks to render their imagination in interface design. Each project must pass a UX audit in every sprint before the client demo. The initial ratings on metrics such as aesthetic appeal, consistency, minimalism and look & feel are used as a process metric.
UX Audit sign-off
The initial UX audit typically throws out a list of issues that must be cleared by the programmers to the satisfaction of the UX Lead Auditor before sign-off is given. We evaluate average ratings on aesthetics, consistency, minimalism and artistic design for each project team in the UX audits as a process metric.
Defined process is not good enough. We believe in measurement as data input for taking quality improvement decisions during monthly reviews. Excellence is center of our business philosophy and all HR decisions are very closely linked to monthly quality metrics for each associate.
It is all about quality
We believe in repeat business. Quality focus gives us reputation and referrals to seek new business. We select our team and group leaders based on their achievement on quality metrics.
We demand that the Quality Manager and the Project Manager stand up in front of the entire company in monthly company review to list out at least one tangible quality improvement done or undertaken during the month.
Linkage to performance appraisals
Progress reviews for associates are very majorly influenced by their track record on quality metrics. We want to make leaders out of high achievers on the quality front. In our book, leadership is about multiplying excellence and we insist that team leaders set an example in terms of quality.
Client satisfaction surveys
We do a client satisfaction survey nearly every month in every active project. The focus is not just on getting a rating on a scale of 1 to 5 but to seek at least one improvement point in every survey. The client feedback is displayed on a dedicated notice board in the company.
We take pride in cultivating each and every client as a reference for business development, referral and repeat business. We believe that quality and excellence is the center of business and gauge our company success based on the fraction of revenue derived from repeat clients.
Zero Defect Tolerance
We demand first time right behavior at every step of our project development process. Our QA process does not approve a deliverable right until it is 100% right. We do not compromise on quality standards for the sake of achieving a deadline. We would rather take a couple of days extra than take any shortcuts.
First Quality, then speed
Our zero defect tolerance approach is based on a 4 point QA audit where 4 levels of testing must be cleared before a deliverable in client ready.
Quality analyst does verification against the technical specification prepared at start of sprint along the lines of acceptance criteria. The technical specification contains the list of tests that will be done to verify each one of the acceptance criteria in the sprint. The purpose of verification is to confirm that the development of sprint is as per the agreed design.
Business Analyst performs validation against the acceptance criteria. Acceptance criteria document provides a feature by feature functional specification for the sprint. Each feature is explained in terms of screenshots and process flow as well as database / API interaction where needed. Validation determines whether the sprint features make sense from a user / business point of view.
Every sprint needs to pass a UX audit. We believe that 60% of the success of the software hinges on the user interface. Hence we do a design verification upfront and have an in house artist who prepares original artistic designs based on requirements. The UX audit covers usability, consistency, color coordination and aesthetic appeal.
It is not good enough that the software features work correctly and client testing is satisfactory. We believe in strong engineering standards. The internal quality of the application development must pass nearly 180 plus tests in terms of code readability, modularity, security, performance and scalability. We recommend compliance with OWASP, W3C and PCI standards (optional).