The 12 Principles of the Agile Manifesto

The agile methodology started in the software development industry in response to the limitations of traditional software development principles. Eventually, companies realized that it could be used to improve project management, team management, and other such processes. Agile focuses more on individuals and interactions between different teams than processes or sophisticated tools. There are 12 core principles of the agile manifesto.

  1. Customer Satisfaction – Providing Early & Continuous Delivery

The Agile Manifesto states that developers and companies can achieve customer satisfaction by delivering products early for testing and feedback. Teams can continuously share their progress with the clients and incorporate their input into the product. The focus is on fulfilling client priorities and then focusing on other aspects of the project. This allows developers to adjust to the client’s changing requirements during the development process. Customers get a more refined product at the end of this process, and they’re more satisfied.

  1. Responding Positively to Change – Even During the Later Stages of Development

The modern business environment is fluid, and customer requirements change frequently. Traditional working models don’t adapt well to change, especially during the late stages. The agile methodology adapts to change quickly at every stage. Agile offers a simplified model for requesting and making alterations in the product design. There’s no formal documentation or approval required, which can speed things up.

  1. Frequent Delivery of Product Elements

Rather than forcing the clients to wait for several months, the development team can deliver the project in stages. You need to make sure every aspect is finished, tested, and styled appropriately. This gives customers quick fulfillment and offers assurance that their project is progressing as planned.

  1. Communication Between Developers & Executives

There’s often a communication gap between developers and executives. People who work on the project have more technical skills and knowledge about the product, while executives understand the business side of things. This can lead to miscommunication, delays, and other such issues. Agile requires everyone to be on the same page and maintain open communications.

  1. Trusting Developers & Teams to Do Their Job

Many executives don’t trust their workers to choose the right job, which results in micromanagement. Such micromanagement can hamper productivity and place unnecessary pressure on the team. Projects should be built around motivated and passionate professionals who understand their strengths. Self-organized teams are more efficient and content to work on every aspect of their projects.

  1. Face to Face Conversations

Essential instructions and project requirements can become lost in endless chain emails, which is why face-to-face communication is necessary. Executives should obtain feedback from the source and work with the team on the project. Virtual communications like video conferences can help in this process.

  1. Collocation & Pair Programming

Collocation is the process of making a team work from the same open area. Pair programming is when two programmers are assigned the same workstation. One programmer is writing the code while the other looks at the bigger picture. Both swap roles every few minutes. Both of these processes improve product quality and make teams more productive.

  1. Sustainable Development

No one can work continuously or at a demanding pace without experiencing some form of burnout. Agile methodologies focus on improving work-life balance and making sure everyone in the team is healthy. Product development is only sustainable if workers are allowed to get adequate rest.

  1. Self-Reflection to Improve Overall Performance

The agile manifesto is focused on the human aspect of development. The best designs come from teams who are committed, passionate, and happy to work. They also come from teams that are willing to look back at their past work and improve.

  1. Simplicity

The Pareto Principle says that you get 80% of the work done with 20% of the effort. Professionals should focus on the 20% and make sure that 80% of the work reaches the customer on a priority basis. You can then focus on the nitty-gritty and refine the project later.

  1. Self-Organizing Teams

Executives should give their teams some room to flex their creative muscles. The team has skilled employees who are experts in their field. Allowing them some independence will help product development and improve overall work culture.

  1. Adapting to Change

Agile means fluid and adaptive. You can only be agile if you’re willing to accept changing demands and requirements during a project. Everyone can plan for a perfect product, but you can only develop something substantial through trial and error. Adopting agile principles can help improve your team’s performance and productivity significantly.

At Number8, our philosophy is to empower our clients to produce better software, faster. We are experts in augmenting scrum teams with senior consultants that can help increase team velocity immediately. If you’re interested in learning more about Number8 and what we do, give us a call at (502) 890-7665, or check out our information page.

 

“Automated QA: Save time, use a web calendar handler!”

Number8’s very own Derick Arzu was recently published on Medium. Read the article on automated QA processes below.

Text boxes, check boxes, radio buttons, and other elements of forms are fairly simple to deal with when it comes to developing UI functional tests for a web application. But what happens when you want to write a test that verifies that the UI for a web calendar is working?

You are probably thinking that it can be easily achieved with a couple of clicks and validations, which is not only true but also the approach that led to the idea of a handler.

Before you discover how to make your automated QA team very happy, here are some reasons why writing a simple function or just a segment of code that deals with ONE specific calendar is not as scalable. Imagine you are a QA Developer at a company who is developing the websites for airlines A and B and your team is requested to create the automated test suites. Sounds quite easy, you will use the same code in both projects, nothing will need to be changed; until someone shows you the designs of the two web calendars each airline uses in their website.

Beginning with the obvious differences, airline A uses two windows while airline B uses only one; that surely represents a significant change in the code of that first approach. Another difference you might not have noticed is that airline B has a dropdown to change the year of the calendar, so that would mean a slight change in the method used to get the text of the displayed year. Those are two visual differences that will affect the way your bot interacts with the calendar and the DOM will surely surprise you with more.

Now that you are interested, the coding begins!

This handler was implemented in Node.js and uses WebdriverIO as the test framework that interacts with the browser.

You will find out that the framework has two functions ($ and $$) to fetch web elements. However, a hierarchy of classes will be created to manipulate elements, later on you will learn this is so that the handler can easily be able to cover many web calendar designs.

The main class is Element. Here is where, the method to obtain the fetch function is implemented, it has two parameters:

    1. selectorObject (required) which refers to an object with two properties; the first named selector , is a string that specifies the selector that will be used to fetch the element. The second is index, which is an integer that must be assigned to the object if the fetch result wants to be treated as a single element and not as an array of elements.
    2. additionalProperties (optional) is an object with any property that wants to be added to the fetch result. The subclasses of the hierarchy use this to manage how some data is obtained from the web elements, you will learn this later on.

Read More…

4 Powerful Tips to Improve Communication at Work

Communication is one of key pillars for any relationship. It could be a personal relationship, a friendship or a business relationship. People sometimes think that rules for personal communication don´t apply to a work environment but this is not true.  Every human has needs, emotions, hopes, values and dreams. And each person faces situations in their personal life that may sometimes impact job performance.

Staff turnover is one of the main challenges many companies face.  While employees come and go, many are less likely to leave if they are in an environment where they feel respected, rewarded, safe and comfortable.  People tend to be happier in work environments where they are confident enough to speak to coworkers and managers about their lives – this includes work related topics and personal ones too.

This is why communication is so important in the work environment, both among employees in the office and for those that work remotely. While maintaining good communication with employees who work together in the same place each day may seem straightforward, it is sometimes less obvious how to improve communication with those working off site. As an agency that specializes in connecting nearshore technical talent with U.S. companies, we’ve got some worthwhile insights into this challenge. Follow along for helpful tips to improve work communication, including communication between onshore and offshore workers.

Four Helpful Tips To Help You Improve Communication At Work

1. Employees are human beings, not numbers or metrics.

Many companies focus on growth, revenue and developing new products/services or improving existing ones. Sometimes by doing this, employees start to feel more like numbers, or pawns in a game of chess. When dealing with human resources, emotions play an important role. Employees are much less likely to make sacrifices for companies that make them feel like a cog in a wheel. It is tough to go the extra mile for a boss that doesn’t seem to take interest or care about anything but the bottom line.

According to Dale Carnegie, author of the award-winning classic: “How to Win Friends and Influence People,” the main thing people care about in life is themselves. Every person wants to feel important, valued and appreciated.

Henry Ford surely recognized this back in 1914 when he started paying his employees $5 a day. (This was a big salary increase.) He also reduced shifts from 9 hours a day to 8. By doing this Ford quickly solved a high staff turnover problem that his company was experiencing. This led to notable increases in production.

If a company can make its employees feel important, feel that their job matters and that they are important assets for the company, they are far more likely to do the extra work needed to go from good to great, and to take care of the company as if it was their own. While a motivated employee will communicate better, it is an employer’s responsibility to make sure employees know they are free to express what is on their mind.

2. Body Language Matters.

Over 50% of the things we say are non-verbal. Given this, learning body language is an important part of developing more effective communication.

If you are a manager, it is essential that you practice your body language skills so that when you speak with your employees you can transmit your ideas in the best possible way and avoid any misunderstandings of what you are trying to convey.

Things like maintaining an upright posture, making eye contact during conversation and keeping your chin up will radiate confidence and those around you will see you with respect.

Besides using body language to communicate well at work, it’s also important to understand body language signals in others. This might be especially important when dealing with offshore employees that normally communicate through apps like Skype or Zoom.  Knowing how to identify body language signals like face and eye gestures and tone of voice will enable you to read between the lines of the message that a coworker wants to transmit.

3. Make Yourself Available to your Co-Workers.

One of the easiest ways to make yourself accessible to coworkers is to simply tell them that you are available. People want to know they can count on you and the only way they will know this is if you communicate it. People want to know that their colleagues are people that can listen to them and understand what is going on.

Sometimes it may be difficult for people to communicate issues directly, especially with a manager. In these times, it can be useful to have a way for people to anonymously ask questions or even express complaints. Having a channel of communication that enables people who are too uncomfortable or shy to speak directly to leaders is a great way for a company to stay informed about situations they may otherwise not know about.

4. Share Something in Common.

Many of the best managers are comfortable sharing something about their personal lives with their coworkers. They might participate in a fun office outing or simply take an interest in the lives of their employees. Something as simple as remembering a birthday can make an enormous difference to a person’s morale at work.

This type of leader tends to be one that can talk about any topic with employees, not just work-related things. Often these more informal conversations help to build trust and work satisfaction. They also improve overall communication by making people feel more comfortable and secure.

Take the time to develop relationships with your coworkers and create a trusting environment for people to open up to you. You will likely be pleasantly surprised by the results.