So you’ve just hired a development team to turn your innovative idea into functioning software, and if you’re development house is anything like ours, you know they’ll be delivering a compelling product in an efficient and beautifully designed manner that allows for future scalability. All that’s left now is to kick-off the development process, and for optimum results you’ll want to go with the Agile Software Development Methodology. Not entirely sure what this entails? To ease you into the process, we’ve provided a list of definitions to terms and jargon you’ll be hearing a lot of as you enter into the agile development process.
Agile Project Management
Agile is an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile/Scrum Manifesto. It is a project management approach based on delivering requirements iteratively and incrementally throughout the project life cycle. At the core of agile is the requirement to exhibit central values and behaviours of trust, flexibility, empowerment and collaboration.
Software Development Life Cycle (SDLC)
SDLC or the Software Development Life Cycle is a process that produces software with the highest quality and lowest cost in the shortest time. SDLC includes a detailed plan for how to develop, alter, maintain, and replace a software system.It involves several distinct stages, including planning, design, building, testing, and deployment.
Higher-level milestones are stages of the project set to be achieved by a certain date, and can be used to indicate the progress of a project. These milestones are phrased as higher-level as they describe the critical functions of the project to be achieved by that stage and do not necessarily describe what goes into achieving this.
Iterative development is the process of breaking down projects into more manageable components known as iterations. Iterations are essential in Agile methodologies for producing a potentially shippable deliverable or product.
The workflow is the normalised, iterative process through which an agile team completes tasks. The typical workflow looks like the following and is usually the titles of columns in the Trello or Jira board that your development team will be using:
- To Do
- In Progress
In systems software development, requirements are those tasks that go into determining the needs or conditions to complete the project. The requirements should be documented, actionable, measurable, testable, traceable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. They can be divided into two levels, higher-level which refers to broader, overarching objectives of the software, and lower-level which refers to a finer detail of software features.
A user story is a brief, non-technical description of a software system requirement written from the customer’s or end-user’s point of view. Either the product owner or the team writes the user stories according to the following structure: as a , I want to so I can
An epic is a large user story that cannot be delivered as defined within a single iteration or is large enough that it can be split into smaller user stories.
Scrum is the most widely used framework under the Agile methods umbrella. Scrum is an iterative software model that follows a set of predefined roles, responsibilities, and meetings.
In Scrum, iterations are called sprints and are assigned a fixed length—sprints typically last one to two weeks, but can last as long a month.
The Scrum term for an iteration. A sprint is a fixed-length iteration during which user stories are transformed into a potentially shippable deliverables. Each sprint is assigned a set amount of time to be accomplished. The sprint starts with a sprint planning meeting. At the end of the sprint there is a sprint review meeting, followed by a sprint retrospective meeting.
Velocity is a metric that specifies how much work a team is able to complete within a single, fixed-length iteration or sprint.
A burndown chart represents all outstanding work. The vertical axis represents the backlog, while the horizontal axis represents time. The work remaining can be represented by story points, ideal days, team days, or other metrics.
A burnup chart tracks how much work has been completed. There are two lines on the chart—one line represents total work and the other represents work completed. The vertical axis represents the amount of work and can be measured in number of tasks, hours, or story points. The horizontal axis represents time, usually measured in days.
Kanban is a highly visual framework that falls under the Agile umbrella. The Kanban process uses continuous work flow rather than fixed iterations to produce shippable deliverables. When applied over an existing process, Kanban encourages small, incremental changes to the current process and does not require a specific set up or procedure. Kanban focuses on completing entire projects rather than sprints.
A periodic meeting (usually daily) where development team members discuss what they have done, what they need to do, how they will do this and if there are any roadblocks. As the client, you may be involved in every second or third standup depending on the project.
A Sprint Retrospective is a meeting held following the completion of a sprint to discuss whether the sprint was successful and to identify improvements to be incorporated into the next sprint.
A software bug is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. It’s called a bug because an operator for one of the first computers (the Mark II) traced an error to a moth trapped in a relay, coining the term bug. This bug was carefully removed and taped to the log book.
Testing and QA (Quality Assurance)
The practice of reviewing code for bugs which are then corrected according to the iterative process. Two typical types of testing include unit testing which is a short program fragment written and maintained by the developers on the product team, which exercises some narrow part of the product’s source code and checks the results. The other type is acceptance testing which is derived from the Acceptance Criteria and verifies whether a feature is functional.
In software engineering, rubber duck debugging or rubber ducking is a method of debugging code. The name is a reference to a story in the book The Pragmatic Programmer in which a programmer would carry around a rubber duck and debug their code by forcing themselves to explain it, line-by-line, to the duck.
Changing existing software code in order to improve the overall design. Refactoring normally doesn’t change the observable behavior of the software; it improves its internal structure.
Technical debt is a concept in programming that reflects the extra development work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution.
A tech stack is a combination of software products and programming languages used to create a software application. Applications have two software components: client-side and server-side, also known as front-end and back-end.
Set of conventions, rules, and standards employed in a computer system’s technical framework, plus customer requirements and specifications, that the system’s developer follows in designing the system’s various components (such as hardware, software and networks).
Hardcoding is the software development practice of embedding data directly into the source code of a program instead of obtaining that data from external sources or generating data in the program itself with the given input.
While Agile Teams have the full responsibility for implementing the code, including the user interface (UI) elements, the User Experience (UX) designer works at the Program Level to provide cross-component and cross-program design guidance so as to provide a consistent user experience across the components and systems of the solution.
User flow is the path taken by a prototypical user on a website or app to complete a task. The user flow takes them from their entry point through a set of steps towards a successful outcome and final action, for example the purchasing of a product.
Wireframing is a way to design a website service at the structural level. A wireframe is commonly used to lay out content and functionality on a page which takes into account user needs and user journeys. Wireframes are used early in the development process to establish the basic structure of a page before visual design and content is added.
A mockup is a prototype or snapshot of a web/application page. It provides an indication/model of at least part of the functionality of that system.
Waterfall Project Management is a sequential, linear process of project management. It consists of several discrete phases. No phase begins until the prior phase is complete, and each phase’s completion is terminal—waterfall management does not allow you to return to a previous phase. The only way to revisit a phase is to start over at phase one. This is an alternative, less suitable project management to Agile.
At SovTech we design, build, deploy and maintain innovative custom software that gives our clients the opportunity to start, run and grow world class businesses. To find out more about how we can help develop unique solutions to improve or transform your business, GET IN TOUCH.