Startup metrics model developed by Dave Mcclure. These 5 metrics represent all of the behaviors of our customers. Acquisition, Activation, Retention, Revenue, Referral.
The conditions that a software product must satisfy to be accepted by a user, customer, or in the case of system level functionality, the consuming system. Acceptance Criteria are a set of statements, each with a clear pass/fail result, that specify both functional and non-functional requirements. Acceptance criteria constitute our “Definition of Done”, and by done I mean well done.
A term used in agile software development methodologies referring to the functional testing of a User Story by the software development team during the implementation phase. Acceptance tests are also used as regression tests prior to a production release. A User Story is not considered complete until it has passed its acceptance tests. This means that new acceptance tests must be created for each iteration or the development team will report zero progress.
A mobile operating system developed by Google, based on a modified version of the Linux kernel and other open source software and designed primarily for touchscreen mobile devices such as smartphones and tablets.
A free and open-source text and source code editor for macOS, Linux, and Microsoft Windows with support for plugins.
Amazon Web Services (AWS) is a subsidiary of Amazon.com that provides on-demand cloud computing platforms to individuals, companies and governments, on a paid subscription basis. The technology allows subscribers to have at their disposal a full-fledged cloud services, available all the time, through the Internet.
The data access layer of a piece of software, the server is usually considered the backend. Consists of three parts: a server, an application, and a database. If you book a flight or buy concert tickets, you usually open a website and interact with the frontend. Once you’ve entered that information, the application stores it in a database that was created on a server. All of that information stays on the server so when you log back into the application to print your tickets, all of the information is still there in your account. We call a person that builds all of this technology to work together a backend developer. Backend technologies usually consist of languages like Node.js, PHP, Ruby, Python, etc. To make them even easier to use they’re usually enhanced by frameworks like Ruby on Rails, Laravel, Express, that all make development faster and easier to collaborate on. Many web professionals that are just getting into the field may have heard a lot of people talking about WordPress. WordPress is a good example of the frontend and backend working together.
Behaviour-driven development (BDD)
Particularly useful for Acceptance Tests, since User Stories are at the heart of BDD methodology. It advocates that a developer first writes a User Story. This User Story is used both for documenting the feature and triggering the acceptance tests. Developers only implement behaviours which contribute most directly to these business outcomes, so as to minimize waste. Behaviours are described in a single notation which is directly accessible to domain experts, testers and developers, so as to improve communication.
An open source responsive, mobile-first projects, most popular front-end component library. It’s a toolkit for developing with HTML, CSS, and JS. Quickly prototype ideas or build entire app with our Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful plugins built on jQuery.
A cloud-based cross-browser testing tool that enables developers to test their websites across various browsers on different operating systems and mobile devices, without requiring users to install virtual machines, devices or emulators.
Can I Use?
An information technology paradigm that enables ubiquitous access to shared pools of configurable system resources and higher-level services that can be rapidly provisioned with minimal management effort, often over the Internet. Cloud computing relies on sharing of resources to achieve coherence and economies of scale, similar to a public utility.
Systematic examination (sometimes referred to as peer review) of computer source code. It is intended to find mistakes overlooked in software development, improving the overall quality of software. Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.
A development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. By integrating regularly, you can detect errors quickly, and locate them more easily.
We want to find the minimum set of blocking CSS, or the critical CSS, that we need to make the page appear to the user. A critical resource is any resource that may block the initial rendering of the page. The idea behind this is that the website should get the first screen’s worth of content (or “above-the-fold” content) to the user in the first few packets of response.
A style sheet language used for describing the presentation of a document written in a markup language. Although most often used to set the visual style of web pages and user interfaces written in HTML. CSS3 is the latest evolution of the Cascading Style Sheets language and aims at extending CSS2.1. It brings a lot of long-awaited novelties.
The most powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows. It excels at dividing a page into major regions, or defining the relationship in terms of size, position, and layer, between parts of a control built from HTML primitives.
A data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure.
Definition of Done
A simple list of activities (writing code, coding comments, unit testing, integration testing, release notes, design documents, etc.) that add verifiable/demonstrable value to the product. Focusing on value-added steps allows the team to focus on what must be completed in order to build software while eliminating wasteful activities that only complicate software development efforts.
An cloud infrastructure provider with data centers worldwide. DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers.
A computer program that performs operating-system-level virtualization also known as containerization. Docker is primarily developed for Linux, where it uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs).
The process whereby a query for one type of entity also loads related entities as part of the query.
Minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
It aims at providing a more efficient way to layout in a 1-dimensional system, align and distribute space among items in a container, even when their size is unknown and/or dynamic (thus the word "flex"). A flex container expands items to fill available free space, or shrinks them to prevent overflow.
An abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications. A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.
A version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files. As a distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear workflows.
A web-based Git-repository manager with wiki and issue-tracking features, using an open-source license, developed by GitLab Inc.
A simple, effective way to save bandwidth and speed up your site.
A markup language used for structuring and presenting content on the World Wide Web. It is the fifth and current major version of the HTML standard.
Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, and hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.
The performance of web sites and applications can be significantly improved by reusing previously fetched resources. Web caches reduce latency and network traffic and thus lessen the time needed to display a representation of a resource. By making use of HTTP caching, Web sites become more responsive.
An adaptation of the Hypertext Transfer Protocol (HTTP) for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is encrypted by Transport Layer Security (TLS), or formerly, its predecessor, Secure Sockets Layer (SSL). The protocol is therefore also often referred to as HTTP over TLS, or HTTP over SSL.
A mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that presently powers many of the company's mobile devices, including the iPhone, iPad, and iPod Touch. It is the second most popular mobile operating system globally after Android.
A general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.
Java Platform Enterprise Edition (Java EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Java EE applications are run on reference runtimes, that can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components it is deploying.
A free, open-source PHP web framework intended for the development of web applications following the model–view–controller (MVC) architectural pattern and based on Symfony. Some of the features of Laravel are a modular packaging system with a dedicated dependency manager, different ways for accessing relational databases, utilities that aid in application deployment and maintenance, and its orientation toward syntactic sugar.
The project aims to make encrypted connections to World Wide Web servers ubiquitous. By eliminating payment, web server configuration, validation email management and certificate renewal tasks, it is meant to significantly lower the complexity of setting up and maintaining TLS encryption.
An open-source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, and more. You can run Lighthouse in Chrome DevTools, from the command line, or as a Node module. You give Lighthouse a URL to audit, it runs a series of audits against the page, and then it generates a report on how well the page did. From there, use the failing audits as indicators on how to improve the page. Each audit has a reference doc explaining why the audit is important, as well as how to fix it.
Tools that analyze source code to flag programming errors, bugs, stylistic errors, and suspicious constructs.
Useful to integrate separate changes that you've made to a project, on different branches. It’s a useful tool for code review and change management.
The process of removing all unnecessary characters from source code without changing its functionality. These unnecessary characters usually include white space characters, new line characters, comments, and sometimes block delimiters, which are used to add readability to the code but are not required for it to execute. Minified source code is especially useful for interpreted languages deployed and transmitted on the Internet, because it reduces the amount of data that needs to be transferred.
A term used to denote the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. As part of the development process, mobile user interface (UI) design is also essential in the creation of mobile apps. Mobile UI considers constraints, contexts, screen, input, and mobility as outlines for design. The user is often the focus of interaction with their device, and the interface entails components of both hardware and software. User input allows for the users to manipulate a system, and device's output allows the system to indicate the effects of the users' manipulation. Native development includes working with iOS and Android platforms, and Hybrid development includes working with React Native, Xamarin, Cordova, etc.
A cloud computing company that offers VPS, dedicated servers and other web services.
A development tool Google offers to let you analyze the performance of a website. In Google’s own words, it works by “fetching the URL twice, once with a mobile user-agent, and once with a desktop user-agent”. After it’s done analyzing the mobile and desktop versions of your site, it’ll give you a different score (between 0 and 100) for each. Google uses its own set of rules to analyze your site. These rules are separated into two categories: speed and usability.
Increases software quality without impacting time to deliver. The best way to pair program is to just sit side by side in front of the monitor. Both programmers concentrate on the code being written. Pair programming is a social skill that takes time to learn. You are striving for a cooperative way to work that includes give and take from both partners regardless of corporate status.
Online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders.
A server-side scripting language designed for web development but also used as a general-purpose programming language. Today, PHP is used by more than 80% of all the websites whose server-side programming language we know. Popular websites built with Wordpress are all powered by PHP.
Also known as live, particularly for servers, as it is the environment that users directly interact with.
An interpreted high-level programming language for general-purpose programming. Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.
Dynamic, reflective, object-oriented, general-purpose programming language. Ruby was made popular by the Ruby on Rails framework, a full-stack web framework that makes prototyping a breeze, making it a web framework of choice for many startups and coding beginners alike.
Ruby on Rails
A server-side web application framework written in Ruby. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards and the use of other well-known software engineering patterns and paradigms.
An agile framework for managing work with an emphasis on software development. It is designed for teams of three to nine developers who break their work into actions that can be completed within timeboxed iterations, called sprints (typically two-weeks) and track progress and re-plan in 15-minute stand-up meetings, called daily scrums.
An open-source error tracking that helps developers monitor and fix crashes in real time. Iterate continuously. Boost efficiency. Improve user experience.
A domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS).
SQL Query Caching
is a global one shared among the sessions. It caches the select query along with the result set, which enables the identical selects to execute faster as the data fetches from the in memory.
An environment for final testing immediately prior to deploying to production. It seeks to mirror the actual production environment as closely as possible and may connect to other production services and data, such as databases. For example, servers will be run on remote machines, rather than locally (as on a developer's workstation during dev, or on a single test machine during test), which tests the effect of networking on the system.
A powerful monitoring tools that are quick-and-easy to set up. Instant alerts that you can trust, the moment your site goes down. Gain invaluable insights into how your website's performance is impacting your customers’ experiences - helping your business to stay ahead of the competition.
Using Stripe, web developers can integrate payment processing into their websites without having to register and maintain a merchant account.
A mighty, modern CSS linter and fixer that helps you avoid errors and enforce consistent conventions in your stylesheets.
A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. Swift is designed to work with Apple's Cocoa and Cocoa Touch frameworks and the large body of existing Objective-C (ObjC) code written for Apple products.
A Node.js tool to automate end-to-end web testing.
One of the primary development artifacts for Scrum project teams. A User Story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it.
An open-source software product for building and maintaining portable virtual software development environments.
Varying Vagrant Vagrants is an open source Vagrant configuration focused on WordPress development.
A free and open-source content management system (CMS) based on PHP and MySQL.
Our experienced designers & developers can help.
In person, small teams, focused sprints. 5 years & 50+ successful clients.