Agile Methodology

working software is the primary measure of progess
Always try the simplest things first, before getting into complexities, it often saves time and effort.
Agile project management is an iterative and flexible approach to managing projects, primarily in software development but also applicable to other industries. It provides a framework for managing complex projects in a dynamic and unpredictable environment. It emphasizes collaboration, adaptability, and continuous improvement to deliver value to customers efficiently. Agile project management aims to deliver high-quality products efficiently, foster collaboration, and adapt to changing requirements and customer needs. Agile planning for a web agency managing multiple brands and custom mobile apps involves applying Agile principles and practices to effectively manage and deliver projects in a dynamic and diverse environment. By applying Agile planning practices in this context, the web agency can effectively manage its diverse portfolio of brands and custom mobile apps. It enables collaboration, flexibility, and iterative delivery, ensuring that each project receives attention, progress, and value in alignment with business objectives and customer expectations.
Table of Contents
Agile project management

-
Iterative Development: Agile projects are divided into short iterations called sprints or iterations, typically lasting 1-4 weeks. Each iteration involves planning, executing, and reviewing a set of work items or user stories. This iterative approach allows for frequent feedback, adjustments, and course corrections throughout the project.
-
Cross-Functional Teams: Agile teams are self-organizing and cross-functional, consisting of members with different skills and expertise necessary to deliver a complete product increment. These teams collaborate closely, communicate regularly, and share responsibilities to achieve the project's goals collectively.
-
User-Centric Approach: Agile focuses on delivering value to the end-users or customers. User stories, which describe specific user needs or features, drive the development process. The team prioritizes and delivers the most valuable user stories first, ensuring that customer needs are met early and continuously.
-
Scrum Framework: Scrum is the most widely used Agile framework. It provides a set of defined roles, ceremonies, and artifacts to structure the project management process. The roles include a product owner, Scrum master, and development team, while ceremonies include sprint planning, daily stand-ups, sprint reviews, and retrospectives.
-
Continuous Improvement: Agile promotes a culture of continuous improvement. Regular retrospectives are conducted at the end of each iteration to reflect on the team's processes, identify areas for improvement, and implement changes. This feedback loop ensures that the team constantly adapts and enhances its practices to optimize efficiency and quality.
-
Embracing Change: Agile acknowledges that requirements and priorities can change throughout a project. It values the ability to respond to change and encourages flexibility. Agile teams are prepared to adjust plans, reprioritize work, and incorporate feedback to deliver the most valuable product to customers.
-
Transparency and Communication: Agile promotes transparency within the team and with stakeholders. Regular communication, visual management tools like task boards, and frequent demonstrations of work in progress ensure that everyone stays informed about the project's status and progress.
-
Sprint Planning: Conduct sprint planning sessions for each brand and mobile app independently. During these sessions, select a subset of items from the product backlog to work on during the upcoming sprint. Consider the team's capacity, dependencies, and priorities when making these selections. Collaborate with brand representatives and app owners to clarify requirements and user stories, ensuring a shared understanding of what needs to be delivered.
-
Cross-Functional Teams: Organize cross-functional teams that can work on multiple brands and mobile apps simultaneously. Each team should have a mix of skills, including designers, developers, testers, and other relevant roles. This allows teams to work independently on different projects while sharing knowledge and resources across brands and apps.
-
Release Planning: Coordinate release planning activities to define the timeline and sequence of delivering features and updates for each brand and mobile app. Identify key milestones, such as major releases or marketing events, and plan accordingly. Collaborate with stakeholders to prioritize and sequence the backlog items in a way that delivers value early and frequently to each brand and mobile app.
-
Adaptability and Scalability: Agile planning for a web agency managing multiple brands and custom mobile apps should be adaptable and scalable. Be prepared to reprioritize work, adjust plans, and allocate resources based on changing priorities, emerging opportunities, or evolving business needs. Agile methodologies like Scrum or Kanban can be customized and scaled to accommodate the agency's specific requirements and multiple projects.

Benefits of Agile
-
Accelerate Time to Market
-
Manage Changing Priorities
-
Increase Productivity
Vision to Tasks


Project Management


Projects are late, a lot. This is not unique to software. The reality is that time is constantly moving against us, and when unexpected things happen they can take an order of magnitude longer than we planned. And in software, there’s always more we can add to a given feature or system. Give a best effort, and keep your stakeholders informed of progress and blockers.
80 / 20 Principle
Tools
Qualities of a good manager
Executives and managers need to be transparent, humble, authentic, fully present, and open to their employees.
Terms
Terms | definitions
---|---
pt 1 |
}
pt 2 |
}
pt 3 |
}
Constraints Triangle
constraints | good, fast, cheap
---|---
| 

Happy Path
In the context of Agile engineering, the "happy path" refers to the ideal or expected flow of a feature or user interaction within a software application. It represents the scenario where everything goes as planned without encountering any errors, exceptions, or unexpected conditions.
The happy path typically represents the most common and straightforward path through a feature or use case, where the user's actions and system responses align with the intended functionality. It focuses on the desired outcome and assumes that all inputs are valid and the system behaves as expected.
During Agile development, the happy path serves as a baseline for designing, implementing, and testing software features. It helps ensure that the core functionality is working correctly, providing a starting point for development iterations and user feedback.
While the happy path is important, it's equally crucial to consider and test alternative paths, error conditions, and edge cases that deviate from the ideal flow. By testing and addressing these non-happy path scenarios, developers can enhance the robustness and reliability of the software, improving the overall user experience.
In summary, the happy path in Agile engineering refers to the expected and error-free flow of a feature or user interaction within a software application. It serves as a reference point for development and testing, but it's essential to consider and handle non-ideal scenarios as well.
Software development effort estimation
Ninety–ninety rule:
The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.
— Tom Cargill, Bell Labs
What one programmer can do in one month, two programmers can do in two months.
— Fred Brooks
https://en.wikipedia.org/wiki/Source_lines_of_code
effort is highly correlated with LOC, functionality is less well correlated with LOC. That is, skilled developers may be able to develop the same functionality with far less code, so one program with less LOC may exhibit more functionality than another similar program. In particular, LOC is a poor productivity measure of individuals, because a developer who develops only a few lines may still be more productive than a developer creating more lines of code – even more: some good refactoring like "extract method" to get rid of redundant code and keep it clean will mostly reduce the lines of code.
When the Lisa team was pushing to finalize their software in 1982, project managers started requiring programmers to submit weekly forms reporting on the number of lines of code they had written. Bill Atkinson thought that was silly. For the week in which he had rewritten QuickDraw’s region calculation routines to be six times faster and 2000 lines shorter, he put “-2000″ on the form. After a few more weeks the managers stopped asking him to fill out the form, and he gladly complied.
High Level Strategy


Reach
The proportion of your users, customers, or potential users and/ or customers that you can impact with a project.
Impact
The degree to which those users or customers would benefit from this solution. This is best expressed as some measurable and meaningful impact, since measurability is often what keeps most teams from proving their product reached its intended goals.
Confidence
The degree of confidence that you feel in saying that, should you commit engineering resources to a problem, that you’ll achieve a given predicted impact with a predicted share of your potential user base. This includes knowing what solution you’ll likely pursue.
Effort
The amount of work necessary to achieve the functionality necessary to achieve some desired impact and reach. I find that conversations around T-shirt sizing (S,M,L,XL) can work well for projects that are fairly far-out and whose scope of work is still fairly ambiguous.
RICE works best when it’s used as a broad-strokes tool. I like 1–5 scores. By attributing any particular project a score according to this method, we can supplement our short-term roadmap with an ordered list of projects that may soon work their way onto the roadmap.

Biggest Short Term Goals aka LOW HANGING FRUIT
Use what is available, assess what is missing, identify new work required, and implement the work.
-
re-do website with new CSS framework
-
add PWA features
hire for Weaknesses / KPIs
FUTURE
- under discussion - lounge concept
positive feedback loop
implement a positive feedback loop in your company
- turning information into creative output
knowledge management system | img
---|---
| 
| 
| 
| 
Process Improvement & Optimization
-
Identify areas of improvement that lift efficiency in workflow, component performance and ensures deliverability of work out put in a timely manner
-
Assist with the configuration and maintenance of search and development tools used to ensure best in class user experience across our digital properties
Scrum Master: A Scrum Master is a key role in the Scrum framework, which is a popular methodology used in Agile software development. The Scrum Master serves as a facilitator and coach for the Scrum team, ensuring that the team adheres to Scrum principles and practices. A Scrum Master has several responsibilities, including:
Facilitating Scrum events: The Scrum Master is responsible for scheduling, organizing, and facilitating Scrum events, such as sprint planning, daily stand-ups, sprint reviews, and sprint retrospectives.
Coaching the team: The Scrum Master is responsible for coaching the team on the Scrum framework and Agile principles, and helping the team to continuously improve their processes and practices.
Removing impediments: The Scrum Master is responsible for identifying and removing any obstacles or impediments that are hindering the team's progress, and helping the team to overcome any challenges that they may face.
Protecting the team: The Scrum Master is responsible for protecting the team from external distractions and disruptions, and ensuring that the team has a productive and focused work environment.
Choose Niches to focus on
Automated testing
Accessibility

Agile Maturity





Scaled Agile Framework

-
Pivot resources

-
http://blog.ted.com/2013/01/29/10-places-where-anyone-can-learn-to-code/
-
https://iism.org/article/developers-can-t-fix-bad-management-57
-
https://www.toptal.com/designers/ux/mobile-ecommerce-ux-infographic

-
https://webstyleguide.com/wsg3/1-process/7-development-process.html
-
https://medium.muz.li/voice-user-interfaces-vui-the-ultimate-designers-guide-8756cb2578a1
-
https://pixabay.com/vectors/recruitment-interview-selection-job-6838250/
-
https://pixabay.com/vectors/interview-job-application-6956089/
-
https://uxplanet.org/how-to-execute-the-perfect-design-to-development-handoff-4a5731bddc50
-
https://retargeter.com/blog/difference-first-second-third-party-data-use/

Links
https://www.webdesignerdepot.com/2021/09/8-freelance-project-management-apps-for-2021/
https://www.productcoalition.com/
artifacts- burndown chart, product backlog
ceremonies- sprint planning, daily stand-up, sprint retrospective, sprint review
https://www.paymoapp.com/blog/the-complete-project-manager-guide/
https://www.thesprintbook.com/
https://azumbrunnen.me/blog/the-power-of-unfinished/

The planning fallacy is a phenomenon in which predictions about how much time will be needed to complete a future task display an optimism bias and underestimate the time needed
https://www.excella.com/insights/sizing-agile-stories-with-the-relative-sizing-grid

https://monday.com/blog/project-management/agile-planning/


Card Sorting
https://boagworld.com/usability/card-sorting/
Goals > Features
Project Triage
process used to perform a quick evaluation of a project and to prioritize actions or corrective recommendations based on current project status. Triage is performed when a Project Manager is given a project in progress or when a project is determined to be “in trouble.”
Project triage in software development is the process of assessing and prioritizing software bugs, issues, and feature requests. The goal of project triage is to identify the most critical issues that need to be addressed immediately and to ensure that resources are allocated effectively to resolve those issues.
In project triage, a team of developers, testers, project managers, and other stakeholders review reported issues and prioritize them based on their severity, impact on the user or the business, and other factors. The team may use various techniques such as severity and priority matrices, risk analysis, user feedback, and stakeholder input to prioritize issues.
Once the issues have been prioritized, the team can then allocate resources to address the most critical issues first. This may involve assigning developers to work on specific issues, creating bug fixes or patches, or implementing new features or functionality.
Project triage is an important part of the software development process, as it ensures that resources are used effectively and that the most critical issues are addressed first. By prioritizing issues and allocating resources accordingly, software development teams can improve the quality of their software and provide a better user experience for their customers.
