{"id":5499,"date":"2020-01-10T14:54:54","date_gmt":"2020-01-10T14:54:54","guid":{"rendered":"https:\/\/codeandpepper.com\/?p=5499"},"modified":"2023-12-21T10:03:02","modified_gmt":"2023-12-21T10:03:02","slug":"software-development-process","status":"publish","type":"post","link":"https:\/\/codeandpepper.com\/software-development-process\/","title":{"rendered":"12 Elements of a Solid Software Development Process"},"content":{"rendered":"\n<p>With more than 400 completed projects at Code &amp; Pepper, we\u2019ve worked out an optimal development approach, which allows us to successfully deliver FinTech solutions, no matter what your product does and where your business is located. This approach is based on some fundamental values shared in our teams: transparency, agile approach, deep technical knowledge, excitement and motivation with every new project and challenge. If you would like to know what to expect from Code &amp; Pepper, this is where you\u2019ll find the answers to many questions.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-requirements\">Requirements<\/h3>\n\n\n\n<p>After signing an NDA, we start by gathering all available information about the project, including:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>brief description<\/li><li>user stories<\/li><li>backlog tasks<\/li><li>mockups<\/li><li>scope<\/li><li>deadline<\/li><\/ul>\n\n\n\n<p>&#8230;and whatever else you have. After a thorough analysis, you\u2019ll be invited to an online or face-to-face workshop in order to discuss and turn all the initial information into actionable items \u2013 epics and user stories.<\/p>\n\n\n\n<p>We also discover important non-functional requirements (e.g. scalability, security, performance), which might make a high impact on the choice of technologies and architecture design. The workshop should result in a clearly outlined initial scope of work, which will meet the demands of the MVP and the deadline.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-design\">Design<\/h3>\n\n\n\n<p><a href=\"https:\/\/codeandpepper.com\/services\/ux-design-agency\/\" target=\"_blank\" rel=\"noreferrer noopener\">UX designers<\/a> working at Code &amp; Pepper ensure that the user journey in your application is clear, valuable and enjoyable, all thanks to a set of followed guidelines:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>mobile-first approach<\/li><li>RWD (Responsive Web Design)<\/li><li>AWD (Adaptive Web Design)<\/li><li>Atomic Design methodology<\/li><li>accessibility (a11y standard)<\/li><li>Google Material Design (unless you prefer a different visual language for your product)<\/li><\/ul>\n\n\n\n<p>When creating the design, it\u2019s crucial that you stay in the loop at all times, which is why we take a demo-driven approach and collect your feedback frequently. If you\u2019re not sure about the final branding of your product or need a design that is easy to white-label \u2013 we\u2019ve got you covered. The core design will be versatile enough to customise it in further progress.<\/p>\n\n\n\n<p>At the end of the design phase, you\u2019ll be able to view the complete result on interactive mockups.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-architecture\">Architecture<\/h3>\n\n\n\n<p>Architecture design is often a result of non-functional product requirements (e.g. scalability, reliability, <a href=\"https:\/\/codeandpepper.com\/2019\/12\/02\/application-performance-fintech\/\">FinTech app performance<\/a>, security), predicted growth of your business and possible trade-offs. For this reason, a solid architecture requires a combination of experience and knowledge of the market novelties.<\/p>\n\n\n\n<p>We love exploring new trends like sidecar architecture, multi-cloud strategy, hybrid cloud approach or event-driven cloud native, microservices or serverless solutions. However, choosing the latest, most-hyped solution is not always the best approach for your MVP. Imagine building a Facebook-like infrastructure for a relatively simple MVP with 1000 test users \u2013 makes no sense whatsoever! Our job is to ensure your architecture is built with carefully picked, functional and reliable tools.<\/p>\n\n\n\n<p>We have experience with scalable, reliable microservices-based solutions involving Docker, Kubernetes, CQRS (Command Query Responsibility Segregation), Event Sourcing and IaC (Infrastructure as Code). However, we often start with something simple, like Modular Monolith, and let the architecture evolve together with your business. The trick is to do it right (e.g. to be able to turn modules into independent microservices with own data stores) and plan those changes (e.g. to define the best time to upgrade). You\u2019ll receive the result of this phase in the form of an individual document, \u201cArchitecture and Technology\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-backlog\">Backlog<\/h3>\n\n\n\n<p>A smooth development process won\u2019t start without high-level epics and user stories, but this is far from enough. Developers in your project must be able to work continuously and build a detailed backlog of user stories and tasks. A well-defined task should include not only a description, but also a reference to the mockup, defined acceptance criteria (we often use the Behaviour-Driven Development approach with Gherkin language &#8211; Given\/When\/Then syntax) and story points estimations (which will allow to verify and predict speed of development).<\/p>\n\n\n\n<p>Although an upfront delivery plan is not fully consistent with Agile <strong>software development methodologies <\/strong>\u2013 we\u2019ll provide one if necessary. We communicate any risk related to missing the deadline and propose the reorganisation of the scope, which can put the project back on track. The outcome of this phase is a backlog of epics, user stories and tasks created in JIRA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-methodology-in-software-engineering-process\">Methodology in software engineering process<\/h2>\n\n\n\n<p>One of the recipes for high-quality software is choosing the most effective development methodology. At Code &amp; Pepper, we use one of the two agile approaches \u2013 <a href=\"https:\/\/codeandpepper.com\/services\/scrum-team\/\">Scrum<\/a> for medium or large projects) or Kanban for smaller projects. What does it look like in practice? The essential elements of project management in this style include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>following all recommended Scrum meetings (such as sprint planning, sprint review or retrospective)<\/li><li>stand-up meetings on a daily basis (you\u2019re always welcome to participate!)<\/li><li>progress tracking tools, mainly JIRA (providing full transparency)<\/li><li>day-to-day communication using Slack (often via a shared channel), giving you full, real-time access to our developers<\/li><li>additional team members, such as a product owner (if needed)<\/li><\/ul>\n\n\n\n<p>Agile methodologies focus not only on the project management and communication practices, but also define the rules of sharing technical information. You will have full access to the code base from day one and it will be a pleasure if you join your team for the code review process. Also, you can verify the development status on developer or QA environments thanks to automated continuous deployment (CI\/CD).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-repository\">Repository<\/h3>\n\n\n\n<p>When it comes to code repositories, Code &amp; Pepper follows the industry standard by using Git and popular online repositories like GitHub, GitLab, Bitbucket. For full transparency and better IP (Intellectual Property) protection, we keep the source code either in the client\u2019s repository or, in case the client doesn\u2019t have one, in Code &amp; Pepper\u2019s company GitHub account.&nbsp;<\/p>\n\n\n\n<p>In order to maintain order and clarity, we use feature branches, trunk based development, feature flags and, in selected cases, a full Git flow.&nbsp;<\/p>\n\n\n\n<p>As mentioned in the Methodology section, our process involves regular code reviews and CI\/CD, which is done via built-in pipelines like GitHub Action or GitLab CI\/CD. Your technical team is welcome to join and participate in the repository\u2019s progress. To make things easier to track and understand, we refer JIRA task numbers in branch names and commit messages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ci-cd\">CI\/CD<\/h3>\n\n\n\n<p>Well-executed automation is the key to effective work, which is why we organize CI\/CD (Continuous Integration\/Continuous Deployment) process as early as possible. This includes several tasks:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>build code and run various tests: unit, component, integration and E2E\/UI<\/li><li>verify code formatting (e.g. Prettier)<\/li><li>run security audits<\/li><li>run linters\/static code analysis (e.g. SonarCube)<\/li><li>build Docker images<\/li><li>run audit tools (e.g. Lighthouse, WebPageTest, PageSpeed)<\/li><li>deploy (e.g. microservices to Kubernetes cluster)<\/li><\/ul>\n\n\n\n<p>For CI\/CD execution, we\u2019ve gathered experience with tools like Azure DevOps, GitLab CI\/CD, and GitHub Actions.&nbsp;<\/p>\n\n\n\n<p>If it turns out you need help with tasks not related to the project directly, e.g. automate deployment of already existing backend, a dedicated DevOps engineer can help to sort things out.<\/p>\n\n\n\n<p>What you get at the end of the CI\/CD phase is a pipeline with automated deployment to multiple environments, including development, test\/QA\/staging, and production.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cloud\">Cloud<\/h3>\n\n\n\n<p>Using cloud computing has gained popularity for a number of reasons \u2013 it\u2019s cost-effective, scalable, reliable, flexible, and secure. In our portfolio, you\u2019ll find cloud-first and cloud-native solutions, built with all three major cloud providers: Microsoft Azure, AWS and Google Cloud Platform.<\/p>\n\n\n\n<p>What kind of cloud service do you need? We\u2019ve got you covered in many areas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>storage and DBaaS (Database as a Service): e.g. Amazon S3, Azure SQL, Database, Amazon DynamoDB or GCP Cloud Memorystore<\/li><li>computing, such as managed Kubernetes solutions: Azure AKS or Google Kubernetes Engine<\/li><li>PaaS solutions: Azure App Service, AWS Elastic Beanstalk<\/li><li>messaging solutions: Azure Service Bus, GCP Cloud Pub\/Sub<\/li><\/ul>\n\n\n\n<p>We usually automate the infrastructure using the IaC (Infrastructure as Code) approach and tools such as Terraform or <a href=\"https:\/\/codeandpepper.com\/infrastructure-as-code-deploying-web-applications-on-aws-cloudformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS CloudFormation<\/a>.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-api-in-end-to-end-software-development-process\">API in end-to-end software development process<\/h2>\n\n\n\n<p><a href=\"https:\/\/codeandpepper.com\/services\/api-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">API is a software development area<\/a> which requires a specific approach not only to the code itself, but also to product design. If you decide on an <a href=\"https:\/\/codeandpepper.com\/case-studies\/legaltech-design-development-oathello\/\" target=\"_blank\" rel=\"noreferrer noopener\">API-based product<\/a> structure, we\u2019ll handle all the necessary aspects, starting from versioning and documentation as well as picking the best possible structure:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>classic RESTful APIs (compliant with Richardson\u2019s Maturity Model), described using specifications, such as OpenAPI (Swagger)<\/li><li>GraphQL-based gateway with built-in features, such as type system and powerful queries<\/li><li>modern solutions for communication between microservices, e.g. gRPC<\/li><li>scalable, reliable messaging for asynchronous communication, e.g. Azure Service Bus, Cloud Pub\/Sub or RabbitMQ<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-testing\">Testing<\/h3>\n\n\n\n<p>The variety of test types and tools used by Code &amp; Pepper ensures that your product is protected from errors as much as possible:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Our developers always write unit, component and integration tests.<\/li><li>We measure code coverage and maintain it at a reasonable level (at least 75%).<\/li><li>Additional, though highly recommended, options include automated E2E (End-to-End)\/UI tests with libraries like Cucumber\/Specflow and tools like BrowserStack, Puppeteer, Selenium, Protractor.<\/li><\/ul>\n\n\n\n<p>Those kinds of tests take some time to write and maintain, but it can greatly reduce regression bugs. All tests are executed automatically in our CI\/CD pipeline.<\/p>\n\n\n\n<p>If necessary, a dedicated <a href=\"https:\/\/codeandpepper.com\/services\/quality-assurance\/\">QA engineer <\/a>can join your team and help define and perform a number of key tasks:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>acceptance criteria according to Behaviour-Driven Development practices, using Gherkin language (Given\/When\/Then syntax)<\/li><li>test scenarios<\/li><li>manual testing<\/li><\/ul>\n\n\n\n<p>All in close cooperation with you, developers and product owner. Non-functional requirements can affect the project significantly, so we also execute performance, load, and security tests using WebPageTest, Google Lighthouse or Artillery. On top of that, there\u2019s a possibility to organise penetration tests externally.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-security\">Security<\/h3>\n\n\n\n<p>Trust is the groundwork of FinTech projects, which is why security is so important. To guard your product on all possible fronts, we employ several solutions:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>AuthN, AuthZ<\/li><li>industry standards, such as OAuth 2.0\/OIDC<\/li><li>JWT (Json Web Token)<\/li><li>refresh tokens<\/li><li>OWASP (Open Web Application Security Project)<\/li><li>data encryption (both at rest and in transit)<\/li><li>TLS\/HTTPS<\/li><li>HTTP security headers like CSP (Content Security Policy), Feature Policy or STS (Strict Transport Security)<\/li><\/ul>\n\n\n\n<p>On top of that, we encourage to use tools and services like <a href=\"https:\/\/codeandpepper.com\/2020\/05\/05\/load-speed-cloudflare-test-drive\/\" target=\"_blank\" rel=\"noreferrer noopener\">CloudFlare<\/a> or Azure Key Vault. In order to stay up to date with the latest updates in security (e.g. technologies like Trusted Types, which can help prevent Cross-Site Scripting), our team participates in conferences and follows the industry news.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-performance\">Performance<\/h3>\n\n\n\n<p>Performance matters not only from the user experience perspective, but also the business itself \u2013 for example, it helps improve conversion rate. It is crucial to precisely define what performance means in the context of a given project, such as \u201cthe web application has to load under 3 seconds on 3G network\u201d. To monitor the performance and its progress, we use metrics like First Contentful Paint or Time to Interactive, and follow RAIL performance model. The tool stack for tracking these metrics includes Lighthouse, WebPageTest or PageSpeed Insights, which are integrated with the CI\/CD pipeline. One more thing we pay attention to is the back-end side metrics, tracked with Server-Timing API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-software-development-process-is-a-balancing-act\">Software development process is a balancing act<\/h2>\n\n\n\n<p>With so many factors and must-haves in a <strong>software development process<\/strong>, it&#8217;s no wonder that obtaining help outside of your regular team can bring a lot of benefits. The combination of experience, know-how and a variety of technologies create a perfect background for high-performing FinTech applications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With more than 400 completed projects at Code &#038; Pepper, we\u2019ve worked out an optimal development approach, which allows us to successfully deliver FinTech solutions, no matter what your product does and where your business is located. This approach is based on some fundamental values shared in our teams: transparency, agile approach, deep technical knowledge, excitement and motivation with every new project and challenge. If you would like to know what to expect from Code &#038; Pepper, this is where you\u2019ll find the answers to many questions.<\/p>\n","protected":false},"author":2,"featured_media":5503,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1647],"tags":[1159,507,173],"class_list":["post-5499","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development","tag-agile-product-development","tag-digital-product-development","tag-software-development-process"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Software Development Process. Methodology &amp; Essentials | Code &amp; Pepper<\/title>\n<meta name=\"description\" content=\"If you would like to know what to expect from Code &amp; Pepper, here is all you need to know about our software development process.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codeandpepper.com\/software-development-process\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software Development Process. Methodology &amp; Essentials | Code &amp; Pepper\" \/>\n<meta property=\"og:description\" content=\"If you would like to know what to expect from Code &amp; Pepper, here is all you need to know about our software development process.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codeandpepper.com\/software-development-process\/\" \/>\n<meta property=\"og:site_name\" content=\"Code &amp; Pepper\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codeandpepper\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-10T14:54:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-21T10:03:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"625\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jacek Ko\u015bciesza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codeandpepper\" \/>\n<meta name=\"twitter:site\" content=\"@codeandpepper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jacek Ko\u015bciesza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/\"},\"author\":{\"name\":\"Jacek Ko\u015bciesza\",\"@id\":\"https:\/\/codeandpepper.com\/#\/schema\/person\/d052d96109fb3f3efedf8349fdd5c703\"},\"headline\":\"12 Elements of a Solid Software Development Process\",\"datePublished\":\"2020-01-10T14:54:54+00:00\",\"dateModified\":\"2023-12-21T10:03:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/\"},\"wordCount\":1912,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/codeandpepper.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png\",\"keywords\":[\"Agile product development\",\"Digital product development\",\"Software development process\"],\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/codeandpepper.com\/software-development-process\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/\",\"url\":\"https:\/\/codeandpepper.com\/software-development-process\/\",\"name\":\"Software Development Process. Methodology & Essentials | Code &amp; Pepper\",\"isPartOf\":{\"@id\":\"https:\/\/codeandpepper.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png\",\"datePublished\":\"2020-01-10T14:54:54+00:00\",\"dateModified\":\"2023-12-21T10:03:02+00:00\",\"description\":\"If you would like to know what to expect from Code & Pepper, here is all you need to know about our software development process.\",\"breadcrumb\":{\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/codeandpepper.com\/software-development-process\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage\",\"url\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png\",\"contentUrl\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png\",\"width\":1200,\"height\":625,\"caption\":\"Software development process cover image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/codeandpepper.com\/software-development-process\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/codeandpepper.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"12 Elements of a Solid Software Development Process\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/codeandpepper.com\/#website\",\"url\":\"https:\/\/codeandpepper.com\/\",\"name\":\"Code & Pepper\",\"description\":\"FinTech Developers\",\"publisher\":{\"@id\":\"https:\/\/codeandpepper.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/codeandpepper.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/codeandpepper.com\/#organization\",\"name\":\"Code & Pepper\",\"url\":\"https:\/\/codeandpepper.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codeandpepper.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2019\/06\/logo.png\",\"contentUrl\":\"https:\/\/codeandpepper.com\/wp-content\/uploads\/2019\/06\/logo.png\",\"width\":319,\"height\":144,\"caption\":\"Code & Pepper\"},\"image\":{\"@id\":\"https:\/\/codeandpepper.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/codeandpepper\/\",\"https:\/\/x.com\/codeandpepper\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/codeandpepper.com\/#\/schema\/person\/d052d96109fb3f3efedf8349fdd5c703\",\"name\":\"Jacek Ko\u015bciesza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codeandpepper.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c2fdaa6e44d487ec39e727a89cc6aec99b7753fa227e5c65f836f3bbe1accc9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c2fdaa6e44d487ec39e727a89cc6aec99b7753fa227e5c65f836f3bbe1accc9?s=96&d=mm&r=g\",\"caption\":\"Jacek Ko\u015bciesza\"},\"description\":\"CTO at Code &amp; Pepper. He got his Computer Science master\u2019s degree with honours from The Silesian University of Technology, where he also completed a PhD programme. Fascinated by electronics, he also completed a few semesters of the second faculty \u2013 Electronics and Telecommunication. He\u2019s got over 12 years of experience in the industry, performing different roles in startups, corporations and his own business. Being not only a developer, but also QA, technical lead and manager gave him unique insights into software development processes and great technical skills. He is a self-driven software engineer, fascinated by the newest technology. At Code &amp; Pepper, Jacek is responsible for the quality of products at the technical level. He leads the engineering department and helps improve software development competencies, skills and processes. He supports recruitment and sales processes from the technical point of view. In product development teams, he plays the role of a Solution Architect or Lead Developer.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jacekkosciesza\"],\"url\":\"https:\/\/codeandpepper.com\/author\/j-koscieszacodeandpepper-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software Development Process. Methodology & Essentials | Code &amp; Pepper","description":"If you would like to know what to expect from Code & Pepper, here is all you need to know about our software development process.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codeandpepper.com\/software-development-process\/","og_locale":"en_US","og_type":"article","og_title":"Software Development Process. Methodology & Essentials | Code &amp; Pepper","og_description":"If you would like to know what to expect from Code & Pepper, here is all you need to know about our software development process.","og_url":"https:\/\/codeandpepper.com\/software-development-process\/","og_site_name":"Code &amp; Pepper","article_publisher":"https:\/\/www.facebook.com\/codeandpepper\/","article_published_time":"2020-01-10T14:54:54+00:00","article_modified_time":"2023-12-21T10:03:02+00:00","og_image":[{"width":1200,"height":625,"url":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png","type":"image\/png"}],"author":"Jacek Ko\u015bciesza","twitter_card":"summary_large_image","twitter_creator":"@codeandpepper","twitter_site":"@codeandpepper","twitter_misc":{"Written by":"Jacek Ko\u015bciesza","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/codeandpepper.com\/software-development-process\/#article","isPartOf":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/"},"author":{"name":"Jacek Ko\u015bciesza","@id":"https:\/\/codeandpepper.com\/#\/schema\/person\/d052d96109fb3f3efedf8349fdd5c703"},"headline":"12 Elements of a Solid Software Development Process","datePublished":"2020-01-10T14:54:54+00:00","dateModified":"2023-12-21T10:03:02+00:00","mainEntityOfPage":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/"},"wordCount":1912,"commentCount":0,"publisher":{"@id":"https:\/\/codeandpepper.com\/#organization"},"image":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage"},"thumbnailUrl":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png","keywords":["Agile product development","Digital product development","Software development process"],"articleSection":["Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/codeandpepper.com\/software-development-process\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/codeandpepper.com\/software-development-process\/","url":"https:\/\/codeandpepper.com\/software-development-process\/","name":"Software Development Process. Methodology & Essentials | Code &amp; Pepper","isPartOf":{"@id":"https:\/\/codeandpepper.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage"},"image":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage"},"thumbnailUrl":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png","datePublished":"2020-01-10T14:54:54+00:00","dateModified":"2023-12-21T10:03:02+00:00","description":"If you would like to know what to expect from Code & Pepper, here is all you need to know about our software development process.","breadcrumb":{"@id":"https:\/\/codeandpepper.com\/software-development-process\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codeandpepper.com\/software-development-process\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeandpepper.com\/software-development-process\/#primaryimage","url":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png","contentUrl":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2020\/01\/Code-Peppers-Development-Process-and-Approach.png","width":1200,"height":625,"caption":"Software development process cover image"},{"@type":"BreadcrumbList","@id":"https:\/\/codeandpepper.com\/software-development-process\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codeandpepper.com\/"},{"@type":"ListItem","position":2,"name":"12 Elements of a Solid Software Development Process"}]},{"@type":"WebSite","@id":"https:\/\/codeandpepper.com\/#website","url":"https:\/\/codeandpepper.com\/","name":"Code & Pepper","description":"FinTech Developers","publisher":{"@id":"https:\/\/codeandpepper.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codeandpepper.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/codeandpepper.com\/#organization","name":"Code & Pepper","url":"https:\/\/codeandpepper.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeandpepper.com\/#\/schema\/logo\/image\/","url":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2019\/06\/logo.png","contentUrl":"https:\/\/codeandpepper.com\/wp-content\/uploads\/2019\/06\/logo.png","width":319,"height":144,"caption":"Code & Pepper"},"image":{"@id":"https:\/\/codeandpepper.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codeandpepper\/","https:\/\/x.com\/codeandpepper"]},{"@type":"Person","@id":"https:\/\/codeandpepper.com\/#\/schema\/person\/d052d96109fb3f3efedf8349fdd5c703","name":"Jacek Ko\u015bciesza","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeandpepper.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c2fdaa6e44d487ec39e727a89cc6aec99b7753fa227e5c65f836f3bbe1accc9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c2fdaa6e44d487ec39e727a89cc6aec99b7753fa227e5c65f836f3bbe1accc9?s=96&d=mm&r=g","caption":"Jacek Ko\u015bciesza"},"description":"CTO at Code &amp; Pepper. He got his Computer Science master\u2019s degree with honours from The Silesian University of Technology, where he also completed a PhD programme. Fascinated by electronics, he also completed a few semesters of the second faculty \u2013 Electronics and Telecommunication. He\u2019s got over 12 years of experience in the industry, performing different roles in startups, corporations and his own business. Being not only a developer, but also QA, technical lead and manager gave him unique insights into software development processes and great technical skills. He is a self-driven software engineer, fascinated by the newest technology. At Code &amp; Pepper, Jacek is responsible for the quality of products at the technical level. He leads the engineering department and helps improve software development competencies, skills and processes. He supports recruitment and sales processes from the technical point of view. In product development teams, he plays the role of a Solution Architect or Lead Developer.","sameAs":["https:\/\/www.linkedin.com\/in\/jacekkosciesza"],"url":"https:\/\/codeandpepper.com\/author\/j-koscieszacodeandpepper-com\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/posts\/5499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/comments?post=5499"}],"version-history":[{"count":32,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/posts\/5499\/revisions"}],"predecessor-version":[{"id":51276,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/posts\/5499\/revisions\/51276"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/media\/5503"}],"wp:attachment":[{"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/media?parent=5499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/categories?post=5499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeandpepper.com\/wp-json\/wp\/v2\/tags?post=5499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}