Agile FAQs

No comments

 

agile_faqs_featured_image

The following FAQs on Agile and Scrum are likely to answer many of your questions about the various Agile methodologies, Agile manifesto, Agile certifications and more. Browse through these FAQs to find relevant answers to most commonly heard questions. If you have any further questions, do reach us at: info@antra.net

1. What is Agile?

Definition

Agile software development describes a set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. These principles support the definition and continuing evolution of many software development methods. Know more about Agile.

Agile is a disciplined way of managing IT development teams and projects encouraging collaboration between all stakeholders. It involves adaptation, frequent inspection, incremental and iterative practices in Agile Software Development (ASD). Agile methodologies or Agile processes are intended to focus on high-quality development, and providing multiple opportunities for a high degree of collaboration among stakeholders.

What is the History of Agile Software Development?

The roots of this incremental and iterative Agile software development approach can be traced back to 1957. Until 2001, the year when the Manifesto for Agile was published; there emerged a number of software development methods such as adaptive software management, lightweight software development method, heavyweight methods, rapid application development, DSDM (Dynamic Systems Development Method), Scrum, CC (Crystal Clear) and XP (Extreme Programming) are a few to name. However, a few of the aforementioned methods are now broadly referred to as Agile methods.

Brief History of Agile Software Development or Agile Manifesto

The buzzword – Agile Software Development or simply Agile is derived from the Agile Manifesto, which was formed by a small group of software developers in February 2001 at the Snowbird resort in Utah. With their combined experience of developing software, they shared their thoughts on why conventional approaches to managing software development projects often fail, and why there should be a better way to manage software development projects. As a result they published the Manifesto for Agile Software Development (ASD).

2. What are the Four Values of Agile Manifesto?

The Manifesto for Agile Software Development, published by a group of seventeen software developers, promotes below 4 crucial values.

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

The Agile Manifesto demonstrates that there is value in the items on the right, however, the items on the left have more value. Find more about the Agile Manifesto, history and the context of its origin here.

3. What are the Benefits of Agile?

Agile methodologies have gained tremendous popularity in the world of software development and real-time projects for the past 15 years. Here are a few high-level benefits that made Agile so popular.

  • Respond to customer changes quickly
  • High quality and faster delivery
  • Minimize project deviation risks
  • Self-learning and motivated team
  • Continuous improvement
  • Transparency between customer and the development team

4. Are Agile and SCRUM the Same?

Agile Software Development (ASD) is a term that collectively represents a set of software development methodologies such as Scrum, Kanban, XP, DSDM and others. So, Agile is a leadership philosophy that fosters collaboration, self-learning, teamwork and ownership. Scrum is a subset of Agile, a methodology that shares much of Agile philosophy, Agile principles and values.

5. What are Other Popular Methodologies of Agile?

Several organizations and product development teams use wide range of agile methodologies . Scrum is the most popular methodology of Agile. Here are some of the other popular methodologies of Agile such as Kanban, XP, Lean, and Crystal etc.

6. What are 12 principles of Agile Software Development?

The 12 principles of Agile Software Development include:

  1. Customer satisfaction and timely delivery
  2. Embracing change
  3. Deliver frequently
  4. Working together
  5. Positive environment
  6. Face-to-face communication
  7. Frequent inspection
  8. Sustainable development
  9. Technical excellence and good design
  10. Simplicity
  11. Self-learning teams
  12. Regular adjustments of intervals

Find more about these 12 principles behind the Agile Manifesto.

7. What are Popular Certifications in Agile?

The various Agile methodologies have changed the face of project management and software development cycle, which definitely increased the demand for professionals with various Agile skills. Here are some of the popular Agile certifications to enhance your knowledge:

  1. PMI Agile Certified Practitioner (PMI ACP)
  2. SCRUM Certifications by Scrum Alliance
    • Certified Scrum Product Owner (CSPO)
    • Certified Scrum Master (CSM)
    • Certified Scrum Developer (CSD)
    • Certified Scrum Professional (CSP)
    • Certified Scrum Trainer (CST)
    • Certified Enterprise Coach (CEC)
    • Certified Team Coach (CTC)
  3. Leading SAFe (SA)
  4. SAFe Program Consultant (SPC)
  5. APMG International
  6. Strategyex certificate (Associate or Masters certificate in Agile practices)
  7. ICAgile

8. Is Agile Only Used in Software Development?

No! Agile methodologies or frameworks are not just limited to software development industry, they are used in several non-IT industries as well that rely on learning, self-discovery and unlocking team’s hidden potential through the constant delivery of valuable software, transparency and promoting sustainable development in their individual businesses. Automobile, Construction, Marketing, Architecture, Event Planning, Education, Industrial/Manufacturing are a few non-IT industries that use Agile. Scrum and Kanban are currently the most popular methodologies used by organizations across various industries.

9. What is SCRUM?

Scrum is an iterative and incremental ASD framework that is significantly useful for managing product development. It is a defined “process framework” which is flexible and comes with a set of practices that support development team to work in a consistent way and reach their common goals. The key principles of Scrum is to encourage collaboration of all stakeholders, adapting to evolving technologies, responding to emerging requirements and changes in the current market conditions.

Scrum uses development cycles called Sprints. Sprint cycles usually range from 2 to 6 weeks. Also uses specific concepts and practices to maximum the amount of productive time in its framework. These concepts and practices can be categorized into three types called Roles, Artifacts and Time Boxes. Read more about meetings and artifacts about Scrum in the other FAQ items.

10. What are Key Resources to Learn About Agile and Scrum?

Here is a list of popular resources to learn more about various Agile and SCRUM methodologies.

SCRUM Alliance

This is one of the largest hubs for scrum resources offering a comprehensive range of articles, material and knowledgeable information on Scrum from its members. All the scrum enthusiasts who are looking to benchmark their knowledge and take a leap in their professional career, this is one of the best free resources to consider.

Agile Alliance

This is a non-profit organization that has global membership and is exclusively dedicated to discussing Agile learning and highlights. The community allows users to explore Agile principles, values, and practices to support building effective software solutions.

Agile or SCRUM Google Communities & User Groups

This is an extremely easy way to gain knowledge on SCRUM. The Google communities or user groups help initiate conversations with people who are excited to share their knowledge with others. Users can join a local Agile or SCRUM user group for free and experience a much faster pace of progress.

Agile and SCRUM Meetup

Meetup is an online social networking site that allows users from various localities around the world to explore and join offline group meetings related to their interest. This also includes Meetups on Agile and other technologies. Users can explore an array of group meetings, live stream of Meetups, Agile tools Meetup and Agile speaker series on this platform. This is the best free resource for Agile and SCRUM enthusiasts, thought leaders, evangelists, and everybody who wants to develop their understanding of Agile, SCRUM, Lean, and other methodologies.

Scrum.org

This online site was founded by SCRUM co-creator Ken Schwaber to provide professional SCRUM trainings and assessments through their global community of individuals, teams and organizations. Here you can explore the basics of SCRUM, variety of useful articles on SCRUM and its framework plus, get a chance to meet the Scrum.org community of PSEs at a nearby event.

Stack Overflow

Stack Overflow was created in 2008 and is an excellent question-and-answer portal that serves as a good resource if you have gained theoretical knowledge of Agile but have queries in implementing it in real-time. Also, for those who would like to polish their Agile skills and get appreciated for it, this is the platform where you can browse the complete list of questions related to Agile or SCRUM, and answer those unanswered questions which you are confident about.

ScrumHub

This is a free educational site that has quite useful articles, blogs, videos, guides, infographics and more about Scrum.

11. What are advantages and disadvantages of SCRUM?

The Agile Scrum framework focuses software development in small, consistent installments based upon regular collaboration among self-organizing cross-functional departments. Since Scrum is the most widely used Agile methodology, it is important that you understand some of the advantages and disadvantages of it.

Advantages:

  • Better quality
  • Visible progress
  • Reduced risk
  • Higher collaboration and accountability
  • Higher team morale
  • Self-organizing teams
  • Increased customer satisfaction
  • Increases ROI

Disadvantages:

  • Works well within small teams
  • If individuals aren’t committed the chances of a project failure will be high
  • Daily meetings at times frustrate team members

12. What are the Roles in Scrum?

Scrum framework has primarily three different roles, they are Certified Scrum Master (CSM), Scrum Product Owner and the Scrum Team. Each of these roles has a set of common rules that are quite important to finish a project or a task successfully.

scrum_communication_model

Certified Scrum Master: A CSM is a facilitator for an Agile development team. He/she ensures that the Scrum Team adheres to the rules, norms and practices of the Scrum theory. Some of the most significant responsibilities of the Scrum master include:

  1. Managing the process for how information is exchanged
  2. Facilitating various Scrum events
  3. Ensures effective communication between the Scrum Product Owner and the Scrum Team
  4. Trains the Scrum Team
  5. Adapts to the emerging changes
  6. Ensures to maximize the amount of productivity of the Scrum Team

Scrum Product Owner: The Scrum Product Owner plays a vital role within this development framework. He/she represents stakeholders or end customers and is accountable for maximizing the product value. Here are some major responsibilities of the Scrum Product Owner:

  1. Release management
  2. Manage the Scrum Product Backlog
  3. To work closely with the Scrum Team
  4. Stakeholder management

Scrum Team: Besides Product Owner, Scrum Team delivers the core work from the requirements. Everyone in the Scrum Team ensures to follow a common goal, have respect for each other, and follow the defined rules and norms. Here are some top common responsibilities of every Scrum Team member:

  1. Create the Sprint Backlog
  2. Perform the short Daily Sprint Meeting
  3. Update their status of the tasks regularly
  4. Allow creation of a Sprint Burndown Diagram

 

 

 

 

13. What are the Meetings in Scrum?

Scrum practice has four primary meetings. Here they are

Sprint Planning

Sprint Planning is conducted at the beginning of a sprint to define the Sprint backlog process. This plan is defined by the collaborative work of the entire Scrum team. It is typically time-boxed to a maximum of 8 hours for a one-month Sprint. During the process of Sprint planning, there are two things defined by the Product Owner and the entire Scrum Team – Objective definition and Task Estimation. The Scrum Master ensures that all the attendants understand the purpose of the Sprint planning during the event and guides the Scrum Team to fulfill the Sprint goal and how to keep it within the time-box.

Daily Scrum

Daily Scrum or Daily Standup Meeting is typically time-boxed to 15 minutes, and it is a short daily meeting. The purpose of this meeting is to help the Scrum team to synchronize activities and define a plan for the next 24 hours. The team members get together to present the progress of the work since the last Daily Scrum and present the work that could be done before the next one. During this meeting, the team members answer the following questions:

  • Yesterday’s tasks that were completed
  • The to-do’s for today
  • Any impediments or obstacles they face

Sprint Review

Sprint review meeting is typically time-boxed for 4 hours for a one-month Sprint. This meeting is conducted at the end of the Sprint to demonstrate and validate the Sprint process. The Scrum Team projects the deliverables of the current Sprint to the Product Owner and adapts the Product Backlog if needed. The Product Owner reviews the product increment and it is intended to give feedback and promote collaboration.

Sprint Retrospective

Sprint Retrospective occurs after the Sprint review and before the next Sprint Planning. It is typically time-boxed for 3 hours for a one-month Sprint. During this meeting, the Scrum Team meets to inspect the last Sprint, its process, tools, communication, collaboration mechanisms and other related aspects. The purpose of this meeting is to understand what went well in the last Sprint and what did not, and it is intended to learn, make improvements and progress in the further Sprints. The Scrum Team discusses the opportunities or best practices to implement in the Sprints to follow at any time.

14. What are Artifacts and Tools in Scrum?

Artifacts:

Scrum artifacts provide significant information to the Scrum Team and the stakeholders for the effective and efficient development. This information fosters the understanding of the product in progress, the activities being planned, and the activities being done in the project. Here are the primary artifacts seen in Scrum Process Framework:

  • Product Backlog:The Product Backlog is an ordered list of features that are prioritized based on business value, where each features has an associated estimate and other attributes provided by the Scrum Team. It is an evolving artifact that provides all features, enhancements, requirements, functions and changes to be made to the product. The Product Owner is responsible for the Product Backlog.
  • Sprint Backlog:The Sprint Backlog is the set of Product Backlog items loaded onto the Sprint’s time-box – this often includes in-depth details such as plan for delivering the products, the primary person to work during the Sprint and gives information that helps in understanding the Sprint Goal.
  • Product Increment:The Product Increment is the sum of all the Product Backlog items completed in a Sprint and the last Sprint. At the end of a Sprint, the Product Increment must be complete and meet the Scrum Team’s definition of Done, and in a usable condition regardless of whether the Product Owner accepts or rejects. The increment consists of fully tested code that has been built into an executable. Also, the user operation of the functionality is documented.
  • Sprint Burn-down Chart:The Sprint Burn-down Chart presents the visibility into the Sprint – provides progress by the team, work left to do in the Sprint and predicts when all the work can be done. In simple, at any given point in a Sprint, the Burn-down Chart shows the total work remaining in the Sprint Backlog. This is a useful technique to monitor the Sprint progress heading the Sprint Goal. The Product Owner is responsible to track the work done and total work remaining at the Sprint Review.
  • Release Burn-up Chart:The Release Burn-up Chart presents a way for the team to track progress towards a release or project’s completion. It is updated at the end of each Sprint to provide progress toward delivering the Sprint Goal. In simple, the Burn-up chart shows how much work has been Done or completed, and the total amount of work.

Tools:

There are a variety of Agile and Scrum tools that enable organizations in making swift decisions and come with a range of awesome features. Here is a list of Agile or Scrum project management tools that we believe are very effective and quite useful for Agile or Scrum practitioners.

  • Jira: Atlassian Jira is one of the best software development tools widely used by Agile teams. The tool is designed for every Agile practitioner to plan, track and release software. Plus, the tool also presents visual data where you can use it to improve team performance based on real-time. The Jira software comes with the following features – flexible planning, value-driven prioritization, accurate estimations, scalable evolution, actionable results, transparent execution and much more.
  • Scrumwise: This online tool is built explicitly for Scrum. It lets you create teams and roles effortlessly with drag and drop option and come with time tracking feature to view the time log for individual persons and track backlog items. Here are some of the most impressive features by Scrumwise: lightning fast, realtime updating, auto saving, right-click menu, cut & paste, popup dialogues, comments, attachments, activity history, export, integration to Github and much more.
  • Asana: The best ever way for teams to track their work and get results is through Asana. This online tool enables individual teams to work collaboratively while availing plenty of features – create tasks, organize the tasks, add reminders, comment on tasks and track all the tasks from anywhere with ease. Here are the best features of this tool: quick updates, work on the go, free unlimited usage, add tasks & break down your work, add due dates, ‘followers, assignees, files, details and more.
  • Trello: This collaboration tool helps get a perspective over various projects that you manage and lets you manage them from anywhere. This tool comes with simple user interface and various powerful yet flexible features that let you get things done and stay organized. Check out the benefits Trello offers here – Customize workflow for different projects, upload files from Dropbox or Google Drive, add checklists, invite team members or co-workers to collaborate.
  • ScrumDo: ScrumDo is one of the easiest ways to manage work and get it distributed among the teams. Whether you are a seasoned Agile tool practitioner or looking to introduce one into your work environment, this tool sure lets you focus on the work and get things done faster. Here are some of the awesome features the ScrumDo comprises of – planning tool, flexible board, car labels, email notifications, pro-active training and support, and much more. Find the other Scrum tools below.
  • Axosoft
  • Yodiz
  • Planbox
  • TargetProcess
  • Acunote
  • VersionOne
  • ActiveCollab
  • Pivotal Labs
  • SprintGround
  • Telerik TeamPulse
  • Agile Agenda
  • Agile Fant
  • Agile Buddy
  • Agile Wrap
  • Banana Scrum

AthenaAgile FAQs
Read More

Javascript Security

No comments

What exactly Javascript’s are?

Javascript is a cross-platform client-side script language. Javascript’s are widely used and convenient to be added for any client-side tasks.

However, if Javascript’s code inspection is not done properly then it could lead to serious security issues.

Hackers are looking for two types of Javascript security vulnerabilities on your website:

  • One is that if they can force your code to throw an uncaught Javascript exception and thus stop the pages which are running.
  • the other one is that if they can inject an external Javascript script file to your page and call your methods from their page.

Debugging Javascript’s issues for anyone is an experience, they know if an uncaught Javascript exception is thrown, the page will stop responding, not only the Javascript part but also most of the server calls, because most of the server calls are initiated by the Javascript code on the page.

Once the page stops responding, the hacker then would be able to do more things through the stopped page. One famous example of what pages under this scenario can do is that in the early days, iOS jailbreaking is done through using safari to load a page with intended broken Javascript code.

On the other hand, the nature of Javascript’s code makes debugging injection easily possible. If the javascript function on the page is independent, any hacker would be able to create their own Javascript file and just call the function they want because there is no encapsulation among the top level functions in Javascript.

If the function called by the hacker happened to do any CRUD on the database, the whole system is exposed to hackers’ attack.

How Javascript’s Can Be Solved?

To the two issues we talked above, we do have methods to solve or avoid them. To avoid the attack through Javascript’s exceptions, the solution is simple: catch or avoid every possible exception.

However, the simple solution might not be that easy to achieve. Javascript has following data types:

  • String, Date, Number, Boolean, Array, Object.
  • It also can have a null value and undefined status.

Be careful to validate the data according to those data types and value types should help a lot. Also, remember to use “===” when you need to do a strict comparison.

The solution to the other problem is more complicated and tricky. Each company in the industry has different solutions, but most of them share the same concept.

The basis of the concept is that every function would be hidden into a module as a property of the module object, which only can be called by a controller, while the controller would be started on document.ready, monitoring and responding to page events, but not possible to be called from outside.

Therefore, the only way to call the method is to have the correct event on the page, then the controller which is listening to the certain event is calling the method inside of the corresponding module. This won’t eliminate all the vulnerabilities but it will improve the security by a lot. Be sure to talk to the architect for the solutions your system should be using.

Years ago when I was working for a top tech company, the architect there had an excellent statement about the security of Javascript: “you should never let outside code control our site!

Are you interested in keeping your skills fresh? Just subscribe to our blog and follow us on and follow us on Facebook, LinkedIn, and Twitter. You can always reach us at Contact Us

AthenaJavascript Security
Read More