We plan, develop, test, and manage the ongoing profitability of the full gamut of digital products for our clients, including websites and mobile experiences:
When developing and maintaining websites, we focus on three key areas: The UX or customer experience, SEO-friendliness, and security.
Basic Customer Experience Requirements
- Intuitive navigation, enabling visitors to find what they are looking for
- Easy-to-use functionality, that enables visitors to complete what they are trying to accomplish with the fewest number of steps or clicks
- Clean design that is aesthetically pleasing
- Great content that is personalized for different customer segments and individuals
Basic SEO Considerations
- Logical URL structure that can be easily followed by Google and other search bots
- Page titles that are consistent with page content
- Meta descriptions that describe each page in greater detail
- Use of headers and sub-headers
- Links from authoritative sites
- Strategic intra-site linking
- Inclusion of sitemap
Basic Security Considerations
- Update content management solutions (CMS), extensions and plug-ins whenever new versions are available to patch vulnerabilities that hackers have discovered
- Install a firewall to virtually patch security holes as soon as updates are released.
- Ensure administrator passwords are long and complex with a mix of character types
- When sites have multiple administrators and authors, make sure to limit the permissions to what each user needs to accomplish their objectives. Permissions for files can be range from read only (view), write (change file contents) and execute (run files or scripts)
- Install SSL (Secure Sockets Layer) to encrypt communications between your site and visitors. While this is especially important for e-commerce sites, where credit cards and other sensitive information might otherwise be intercepted, its important to any site now that Google marks sites without SSL as “Not Secure” and punishes such sites with lower organic search rankings.
- Automated back ups will preserve your data when one or more of your web servers goes down. Such backups should be easily restored when any damage to your servers is repaired.
Mobile Apps and Notifications
We use various programming approach to developing mobile experiences for customers:
- Responsive Web Design (RWD)
- Native Application Development
- Hybrid Designs
- Progressive Web Apps (PWA)
To understand our preferred approach, please read our blog post Progressive Web Apps Leapfrog Older Mobile Development Approaches
Product Development Approaches
We utilize two approaches to product development and management, depending on the culture of our clients. The traditional waterfall approach and the more modern agile development process.
This is the more traditional approach to product development. Each phase in the product development process must be completed before the next phase can begin. This approach requires a great amount of upfront planning and results in a longer time-to-market than more agile approaches. Each phase in the waterfall process, moreover, is often subject to a stage-gate review process. This review occurs at the end of each phase in the development process, and is often required to obtain funding from senior executives for the next phase in the process. To pass through each gate, the product team needs to present an updated business case proving the value of the product to customers and the business itself. A typical waterfall process is depicted below:
Although the exact phases may differ from one organization to another, they more or less follow the sequential phases described here:
- Requirements: During this first phase, the team provides an understanding of the functionality, purposes, benefits, specifications and detailed business and customer requirements of the product. This includes both functional and non-functional requirements. Functional requirements are just that, describing the functionality required by the end-product. Non-functional requirements address such issues as application performance, reliability, and usability.
- System Design: All of the specifications of the requirements phase are fleshed out in detail to come up with the system design. The system design, in turn, specifies the hardware and system requirements as well as the overall system architecture.
- Implementation: Actual software coding occurs during this phase. The project is broken down into small programs or units, which are integrated in the next phase. Each unit is developed and tested for its functionality, also known as Unit Testing. Any unit that fails its test must is sent back to development until it passes.
- Integration and Testing: After each of the units are developed and tested, they must be integrated to form a total product. Once the individual units are integrated, they must be tested as a whole. This is known as integration testing. Both the functional and non-functional requirements must be tested during this phase in the software development process. If the product fails integration testing it is sent back to development and retested until it passes.
- User Acceptance Testing (UAT): During this phase, the product is released to the product owner or customer, who performs user acceptance testing. If the product fails UAT, it is sent back to the developers to address issues raised by the product owner or customer until it is approved by the product owner or customer.
- Beta Testing: Once the product passes UAT, it is usually released to a relatively small group of customers to ensure that any remaining bugs are uncovered and fixed.
- General Release: After a successful beta test, the product is released to all of the businesses’ customers (for most B2B products) or the public at-large (for most B2C products).
- Maintenance and Optimization: After the product has been released it must be maintained, upgraded and optimized maintain a competitive advantage over other products in an ever-changing marketplace.
Agile approaches to software development are quite different than traditional waterfall methodologies. Instead of doing all of the planning for the site up-front, agile approaches release different feature/functionality to the market on a frequent basis. Requirements for different features can change anytime, providing a much more flexible approach. Developers receive immediate feedback from the business, and can change the code accordingly, ensuring that the business requirements are being met.
Scrum is the specific agile development framework adopted by RK Associates. It is named after a rugby team, because of the amount of teamwork involved. Scrum encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve. The following diagram depicts the typical set of Scrum roles and processes.
The Product Owner receives input from customers to ensure that customer goals are being met. The main responsibilities of the product owner are to maintain and prioritize the official backlog of product features or modules and to write a User Story for each feature or module that describes the functionality and user interface from a user’s perspective. Each module must be completed within a specified period of time, usually between one to four weeks. The product owner also prioritizes the backlog of features to satisfy additional customer requirements.
The Team is group of developers who produce the product and are given the authority to determine how to perform the work. For each feature or module, the Team holds a planning meeting to estimate how much work can be completed within that time period or Sprint. They break the Sprint into tasks that must be completed for the module to be developed.
The ScrumMaster is responsible for making the process run smoothly, removing obstacles that impact productivity, for organizing and facilitating the critical meetings, removing barriers between the development Team and the Product Owner so that the Product Owner directly drives development, improving the development practices and tools, as well as maintaining and sharing up-to-date progress with all of the parties.
Within the overall one-to-four week Sprints there is a 24 hour sprint, culminating in a meeting between the ScrumMaster and the Team to review progress on a daily basis and make any necessary adjustments. At the end of the full Sprint, the resulting product is shared with the Product Owner. Finally, there is a Sprint Retrospective when all of the parties review what went well in the Sprint, determine what needs to be improved and how for the next Sprint.
Feature Prioritization Process
At RK Associates we use the following process to help prioritize features. The first step is to evaluate the impact the feature is likely to have on the business. This is generally estimated on mini-business cases for each feature. The second step is for the development team to estimate the amount of time it will take to develop each feature. We then map the impact along the Y axis and time to develop along the X axis. The following Feature Prioritization Matrix is used to establish each feature’s priority.