Saturday, January 20, 2018

How can DevOps contribute to Digital Transformation and Innovation?

When we talk about Digital Transformation, we soon think of innovation, technology, e-commerce, social networks, mobility, among others, as well as transforming something that was physical into digital, such as banking services, which were previously offered through physical banking agencies and are now available through internet banking, bringing all the convenience to the end user with high availability and without restriction of time or space.

However, for a company to transform digitally and innovate, we must develop and make available new services and products that generate value for the business and that allow the user a rewarding experience in the use of these services or products. It is necessary to go beyond simply providing an e-commerce or an app on Google Play and the App Store. A cultural change is essential.

In this article we will discuss the importance of DevOps to help companies in the digital transformation and innovation. Agility in deliveries is essential in this transformation process. But before we go there, we will take a look some basic concepts that are behind DevOps.



What exactly is DevOps?

DevOps is the result of a join between Development and Operations. According to the precepts of this term, those responsible for creating or improving software should act in an integrated manner with the professionals who maintain the applications on a daily basis and also with the IT infrastructure that supports those systems. DevOps proposes, therefore, the union between creation and maintenance of IT solutions in order to create a process of continuous improvement.

In a way, this concept opposes the traditional way of development, which is the delivery of large program releases after a long development process. In this scenario, it was the job of technicians to simply deploy software according to the needs of the customer and keep it working. The software only advanced when a new version was developed and released.

In DevOps, Development teams and IT infrastructure managers work in constant communication to improve services over very short periods of time. In this way, errors are promptly analyzed and corrected and improvements can be incorporated into the solution much quicker than before. 

Benefits of Using DevOps for Businesses

For how projects are conducted in companies, DevOps brings benefits of time optimization and effort by proposing smaller development cycles, collaborative work, and breaking paradigms between the areas involved. In addition, it always aims to generate revenue and avoid unnecessary costs.

Working with DevOps also brings benefits such as integration with trends such as Cloud Computing (including hybrid clouds), PaaS, SaaS and IaaS, which together reduce operating costs considerably and make maintenance much easier. The development is completely focused on the effective challenges of the client, implementing and delivering solutions  almost immediately.

Automation tools and dashboards help more easily track metrics and results, provide means of automated deployment processes and quality assurance tasks.

DevOps facilitates teamwork and communication across previously strongly seperated departments of the organization, aiding your team building efforts and reducing silos. It manages to raise the quality of collaborative work and helps teams become more receptive to cultural change and see value in this measure.

All this helps the company to meet processes and demands with greater excellence, supported by the use of automation tools and results. In the end, always focusing on a promising cultural change to positively transform the way the company does business.

How to make DevOps work?

Making DevOps work effectively in IT requires some profound changes. First, it is necessary to integrate areas that, until recently, were considered as very distant: development and operations. To put these professionals side by side, one must work on aligning processes, policies and protocols, ensuring that integration is organic. It is also necessary to invest in resource automation and standardization of responses, ensuring that solutions follow an agile and predictable flow, bringing concrete results.

The agility resulting from automation and process standardization is reflected in the reduction of repetitive tasks by IT professionals - both Development and Infrastructure. With this, the employees are released to work in more creative activities, with greater potential for innovation.

DevOps, Innovation and Digital Transformation

Have you noticed that DevOps will help development teams and operations deliver software in a more agile and less bureaucratic way?

Now going back to the main topic of the article, how will this aid in the process of innovation and digital transformation?

It is not enough for the company to digitize its front office and keep its back office bureaucratic and slow in responding to market needs and/or poor after-sales service or the lack of skill and speed in solving problems that are demanded by the business, users and customers.

The focus should be on the clients and how to meet their needs, solve their problems effectively, efficiently, simply and innovatively. This takes into account the entire lifecycle of the service or product, that is, from its design to the user experience. It is essential that companies work to establish a trust bond among their customers: to really know how to listen to it and respond to its problems with quality and safety.

The processes that involve DevOps can contribute to the generation of innovation and also to the digital transformation in companies. This is because, at the same time, it focuses on process automation that touches the software development lifecycle, contributing to the digitization of previously manual activities such as validation of software code quality, testing, and software releases, this model also increases the level of quality and security of the applications.

With the implementation of DevOps, agile development practices such as Scrum become natural because they focus on software deliveries with fast cycles. In addition, through the operation team, proactive monitoring of the applications that are made available to users is performed.

Does the concept of DevOps apply only to IT?

As DevOps has emerged in the Information Technology environment, it is already a reality in this area today. However, its basic principles can also be broadened, reaching different areas of the organization. The important thing is that the goal is to streamline processes.

After all, integration can be the key word to make the marketing, sales and after-sales sectors more attuned, ensuring improvements throughout the whole client engagement. Likewise, logistics and the financial and tax sectors can reduce their costs by investing in updating their own internal procedures.

Conclusion

With the practices that involve DevOps, it is possible to have agility, either in the time to market or to respond quickly to problems identified by the user experience, continuously improving a product or service. Furthermore, coupled with Big Data technologies, it is possible to extract useful information which can bring a huge competitive advantage over competitors as well as evolve into predictive analytics. In addition to a cloud infrastructure, it is possible to be prepared for demand peaks in a safe and high level of efficiency for the availability of these services to users. If your company is looking for innovation allied with efficiency, focusing on the user experience, you need to start to embrace the concepts of DevOps today.


Friday, January 5, 2018

Tips that will assist you in backlog prioritization

The Product Backlog is the Scrum artifact that represents what must be developed in the project, that is, it contains all the work that needs to be completed. 

We also know, in an agile project, a change in course is to be expected, so the initial set of functionalities to meet the product requirements can vary in priority as time passes, and with this, maintaining the Product Backlog prioritized and updated is of paramount importance to the success of the project. 

In this article I will list some tips to help you prioritize the Product Backlog.



Keep Product Backlog Updated

Stories that are no longer in line with the product view should be discarded from the backlog. The smaller the set of stories that have to be prioritized, the simpler the task will be. As difficult as it is to "detach" from a thoughtful and well written requirement, keeping it in the backlog after it has been identified as obsolete will only set you back.

Give importance to Definition of Ready (DoR)

The definition of ready for user stories is another factor that can greatly aid in the prioritization of the Product Backlog. Without it, the development team may not know how to correctly estimate a story, passing a false sense of story size to the PO, resulting in prioritizing decisions based on unreliable information.

What is the knowledge, uncertainty and risk about a story?

As these factors directly influence the success of the product, stories with a low degree of knowledge and a high degree of uncertainty and risk should have a high priority, since the sooner they are developed, the better the path to follow can be perceived, otherwise not having the time to develop the story and reap the rewards of the development of it.

What is the story's influence on the next release?

Stories that enable faster product launching should also be at the top of the Product Backlog. For example, in an invoice generation software, the generation of the note itself is much more important than the registration of the products, so it must have a higher priority.

Attention to the size of the stories

Remember, the story should be small enough to be independent and add value to the software and to the client. Seek a uniformity in the size of the stories. Try to keep short stories on top of the backlog and find bigger ones as you progress through it. Avoid having the team estimate very large stories that are at greater risk of presenting surprises in their development and which have estimates that are more susceptible to errors.

Attention to dependency between histories

Despite the definition that stories must be independent, we often can not avoid the dependency between stories. In this case the best option is to make this dependence visible, with a note, a different color, anything that draws attention to it. If story A depends on story B, it does not add value for the business to make A prior to B and this should be visible to all involved in the Project.

Listen to all stakeholders

The Product Backlog priority decision is a responsibility of the Product Owner, however, he or she must listen to all stakeholders in the Project and assist in their decision making process. This is important because the product being developed is not only developed for the PO, but to everyone involved in the Project, mainly stakeholders and customers.

Use Prioritization Techniques

The use of specific techniques can be very useful when there is doubt in the priority of a small set of stories. Use prioritization techniques as your ally to help resolve these small conflicts.

Consider prioritization by themes

Dependency between stories is often unavoidable. In this way, grouping dependent stories into a theme and prioritizing the theme can also help you. Prioritization can be divided into two steps, first prioritizing the themes and then sequencing the stories within each theme, thus avoiding stories of the same theme be scattered throughout the Product Backlog.

Stay current

As always, never stop studying and updating. Every day new techniques appear, and, being open-minded to absorb new knowledge is always important to help us improve our work.