Category Archives: Blog

Native vs. Cross-Platform Mobile App Development: Our switch to Cross-Platform

Native vs. Cross-Platform Mobile App Development: Our switch to Cross-Platform

Smartphone usage and ownership has grown rapidly over the years. As of 2022, 6.64 Billion people (approximately 83.72% of the population) across the globe have smartphones. Business owners and entrepreneurs are quickly realizing that, as a result of this growth, mobile touchpoints have increasingly become one of the most effective channels to reach and engage customers.

The global mobile application market has marked its presence in the digital world, achieving an unparalleled CAGR of around 14.3% and is expected to reach $100 Billion by the end of 2022. Although there are currently 4.4 Million mobile applications available on both the iOS App Store and Google Play Store, further growth is expected as more and more businesses focus on developing mobile applications.

Those who are keen to launch their own mobile application will inevitably stumble upon a choice: Should I choose native or cross-platform mobile development?

Native and cross-platform application development has been a popular point of debate amongst developers for many years. How do they differ? What are the reasons behind our switch to cross-platform frameworks?

Native application development

Native applications are built exclusively for a single platform (iOS, Android or Windows). When building a native app, developers use the particular frameworks, tools and programming languages specifically required for the chosen platform. For example, most native iOS apps use Swift as a programming language, but a native Android app would use Kotlin.

Advantages of native applications:

  • High performance and speed – Since native apps are developed with specific platform requirements and have direct access to the hardware installed on a device (such as memory, camera, sensors, GPS, etc.), they deliver better performance and run faster.
  • Seamless UI/UX – Platform specific UI standards and guidelines result in seamless and more creative UX.
  • Broad functionality – Developers have access to every API and tool provided by the platform.
  • Stable maintenance and updates – Better store support as developers have direct access to all the latest features, interface elements, software development kits (SDKs), and other updated development tools.
  • Stronger security – More tailored and robust security features are available, and updating security measures is quick.

Disadvantages of native applications:

  • High cost – If you want to launch the same app for different platforms (e.g. both iOS and Android), you’ll need separate teams working on each platform.
  • Time consuming – The work done for one platform cannot be duplicated for another, so it doubles the work for initial app development and future maintenance if you launch the same app for different platforms.
  • No code reusability – Coding is done independently for separate native applications, so you can’t reuse code from one platform to another.

Cross-platform application development

Cross-platform applications are built to work on multiple platforms. For example, developers can use tools like React Native, Flutter or Apache Cordova to create apps that can be deployed on both iOS and Android.

Advantages of cross-platform applications:

  • Lower cost – You only need one team to create a cross-platform app and there’s less expenses when it comes to maintenance.
  • Faster development and time-to-market – Only a single cycle of development is needed to create an app that runs on multiple platforms.
  • Code reusability – Since the app is created with a single cross-platform development tool, only a single code base is created.
  • Greater exposure – Since they can run on multiple platforms, a larger number of users can use it.
  • Easier testing and quicker updating – It’s easier to test an idea or prototype and catch bugs, and quicker to implement updates.

Disadvantages of cross-platform applications:

  • Runs slower – The need for additional abstraction layers and rendering processes makes the cross-platform app slower.
  • Limited functionality and support – Third-party libraries or SDKs may not support all cross-platform app development frameworks and developers may have difficulty accessing smartphone functionalities (like the microphone, camera and GPS) in ways possible for a native app.
  • Limited UX – Some native UX components will be out of reach so it won’t be able to deliver the same UX experience.

Native vs cross-platform application development

When it comes down to deciding between native and cross-platform applications, it does depend on your requirements.

If you aren’t in a rush to launch an application, have the resources, and need to build an application with complex and unique features (VR, Animations, built-in games, etc.) that require superior speed, performance, visuals, and user experience, then go native.

Choose cross-platform if you have a short time-to-market deadline, a smaller budget, are looking to test or prototype an idea, or need to reach a broader customer base.

Our switch to cross-platform frameworks

The brilliant thing about technology is that it advances continuously. Until a few years ago, native application development was the only choice for companies that depended on mobile applications as a business tool.

Although they are not all created equal, several mature and competitive cross-platform frameworks exist in the market today. These superior frameworks are the tools that developers use to easily merge non-native code with platform-specific functionality (for example, developing Android and iOS applications from a single source code), which makes the mobile application development process simple.

At Expert Network, we’ve done our fair share of native development for modules of apps, which could be independently built, tested, and debugged. These were designed for various functionalities (such as reading identity cards or GPS modules) and one such notable project is Rent A Car. However, we’ve made the switch to cross-platform frameworks after extensive research, learning from previous projects, and experiencing benefits.

Cross-platform frameworks such as React Native have a well-established community, offer improved user experience, allow bigger teams, are flexible and safer. At Expert Network, we build applications with a defensive programming approach, which makes our apps robust and enables fast recovery. Although cross-platform apps are generally known to encounter more errors and bugs, our defensive programming approach allows us to implement fast recovery plans and ensures that applications run with no problems even if the code is more tedious to write. Furthermore, despite cross-platform apps’ reputation for inferior UX, we hold internal training sessions and tutorials so each of our developers are skilled enough to deliver user experiences that undoubtedly rival native applications.

Share this article on

Be part of our team

Discover how it is to work with us. Visit our Careers page.

Why We’ve been Focusing on a Growth Mindset

Why We’ve been Focusing on a Growth Mindset

Ever since the lines between work and personal life have been blurred due to the pandemic, we’ve had to meet the challenges ahead and take into account its impact on our colleagues. After all, without our people, their well-being, and happiness, Expert Network wouldn’t be what it is today.

It became certain that navigating global uncertainty, fears, and restrictions wouldn’t be easy for anyone. Without a second thought, we started investigating to identify the matters that were within our power to improve, at least in the professional environment.

Our solutions?

To focus on and draw attention to well-being and personal growth. We began creating a context for our colleagues to connect, discover, and interact with new concepts and approaches, all to enrich their outlook on life.

In today’s blog post, we’ll share how we redefined well-being, focusing on a growth mindset. What actions did we take and what changes have they brought forward? If you’re curious to learn more about our journey, take a few minutes and enjoy the read.

Our research and plan:

At the start of 2021, our HR team began their research to identify an appropriate approach that would help our colleagues to navigate the demands of the new context on top of their regular workload more easily. The first step was to understand our colleagues’ reality: their needs, struggles, and how to come to their aid.

For example, in the IT sector, the nature of tech roles requires deep focus, where a software engineer needs to stay productive and concentrated on a task for long hours. This makes it difficult for them to make time to focus on self-management or self-knowledge methods to maintain their energy levels and overall well-being.

However, even if we were to do the research and identify solutions, we’d still need to provide an action plan and topics that would really benefit our colleagues and spark their interest. As such, we understood the importance of continued support and guidance if we were to trigger their development.

As a result, three initiatives were introduced: internal training sessions on personal development and well-being, nudges, and short weekly presentations during company meetings.

1. Internal training sessions

In the past few years, we’ve been more focused on a growth mindset – which is also the basis of our approach to high-performance software delivery. This meant creating opportunities for learning and development, more precisely, soft skills and personal development. By introducing these internal sessions, we aimed to educate, inform and eliminate misconceptions regarding various concepts. Ultimately, we wanted to equip our teams with useful information and instruments that would enable them to be more balanced, productive, and at ease.

By planning training sessions on time management or how to efficiently deliver feedback, we offered them the chance to explore these approaches. More precisely, how they can help to simplify things, the impact they have, and how to create a context for colleagues to apply the knowledge they learned.

Based on our colleagues’ needs, we put together 7 topics on personal development and well-being, which we organized into 2–3 hour sessions. Additionally, colleagues were given the choice to select training topics that resonated most with them and we adapted the schedules so they could make the most of the experience.

However, after the first sessions, Sabina, our HR Generalist, made an important observation. The sessions alone wouldn’t be enough to enable behavioral change, as information by itself can be easily forgotten. But, inspired by the Nudge Theory developed by Richard Thaler and Cass Sunstein, Sabina saw the solution to forgetfulness: nudges.

2. Nudges

The introduction of our Expert Nudges seemed logical and natural. Sabina explains:
“I became curious to delve into the subject and look for the basis, the theory behind this approach. I consulted other books and research to fill in the missing information about nudge theory.”

But what is a nudge?
According to Behavioural Design, “A nudge is any small feature in the environment that attracts our attention and alters our behaviour.” If you understand how people think, you can design choice environments that make it easier for them to select what is best for themselves. In other words, a nudge is created to help people make positive choices in their work and life.

Many theories have revealed that we learn more (and retain it better) when we study in short focused bursts rather than when we’re forced to sit through hour-long classes. So Sabina’s goal was to identify how nudges can be best used for our organization and how to structure the information so that it truly offers real value as well as quick and impactful advice for our colleagues.

Sabina began by prioritizing the things that were easiest to implement either on the spot or on that day based on previously held training sessions. For example, based on the topic of Emotional Intelligence, she created 4 nudges that were sent weekly to refresh everyone’s memory with different actions that could be implemented for healthier behavior.3. Let’s Connect Presentation

The third initiative to support our approach was Sabina’s short presentations during our weekly internal meetings. This initiative was also a request from within our teams, to expand their general knowledge. She introduces a topic on well-being or personal development and she explains the importance, benefits, and how to apply it to our lives.

“These presentations are complementary to our internal training sessions and are easier to digest and implement. This is because I introduce and explain less content, it has a weekly frequency, and it offers colleagues the opportunity to dive deeper into a subject. And if they want, they can access the links provided at the end.”

Sabina creates a slide on our meeting presentation where she explains the novel concept. She then engages colleagues to ask questions and share their opinions, making sure the information discussed is clear.

The results

Since these initiatives have been implemented, changes have started to happen:

  • By communicating online (and soon face-to-face), we had the chance to interact with and get to know each other better, which has sparked beautiful conversations.
  • Many colleagues began using certain techniques to increase their productivity.
  • Other colleagues discovered new concepts, explored them in-depth, and then shared useful information with others.
  • Other colleagues voiced the need to continue internal training sessions with other topics, demonstrating their openness to exploring new ideas and approaches.
  • Nudges have been considered for technical training as well, and are currently part of a work-in-progress project at the discipline level.
  • Many colleagues reported that they enjoyed the initiatives. They did their best to implement the recommended actions and mentioned that it’s “good to have nuggets of knowledge” presented weekly.

At Expert Network, the well-being and personal growth of our people have become important. The introduction of internal training sessions, nudges, and short weekly presentations has successfully drawn more attention towards these aspects. As of now, our colleagues have begun experiencing better relations amongst colleagues, open mindsets and further interest in new approaches. We aim to continuously provide our people with the support and guidance they need to enrich their well-being and growth.

Share this article on

Let’s Connect

Did you enjoy taking a peek into our approach? Join us.

17 Questions for 17 Years of Expert Network

17 Questions for 17 Years of Expert Network

“The secret of change is to focus all your energy not on fighting the old but on building the new.” (Socrates)

For our anniversary this year, we’ve decided to ask Vlad, our CEO, how Expert Network has changed over the years. We thought it would be best for you to hear about our transformation, right from the main source.

And what better way to do it if not through a Q&A, where Vlad answered 17 questions, asked by our colleagues, about the company’s beginning, his vision then and now, plus other interesting facts.

So sit down, enjoy a cup of coffee or tea, and read through Expert Network’s history.


1. How did you come up with the idea for Expert Network?

I have always been a curious person that enjoys exploring new opportunities and connecting with people that I can learn from, to expand my perspective. And the idea for the company was rather spontaneous because I didn’t plan it. An opportunity arose, to work on an ERP for an Italian client, and from there, things evolved naturally.

2. How did EXN look like in 2004 when it all started?

The beginning was very modest, like all startups. Myself, Andrei (our current InfoSec Manager), and Traian (a developer friend) rented a plain room in an apartment. We’ve put three desks for us to work from, and in the other room of the apartment, a Java company also had its ‘headquarters’. So it was nothing sophisticated or polished. Our focus was just to deliver the tech solutions for our client.

3. What were your biggest fears back then?

Back then we didn’t think in terms of fear, but in terms of productivity – Let’s build something worthy and useful that will actually help our client. What made me worry was not to fail the only client we had. We needed to make his business work, and meet his needs, because this way, it showed our capabilities and the added value we were able to bring.

4. How did you stay motivated to expand the business?

Back then, I was not inclined towards thinking strategically about the future. The focus was on delivering quality, achieving the client’s requirements. This came naturally because I knew the quality I wanted to have and maintain. Once I would achieve the set goals, I would have immense personal satisfaction. So it has to do with the right mindset – to keep going and look for value.

Also, I believe I have had this point of view ever since I was little. My family would tell the story of when I was two, riding the tram with my grandfather and as I was looking at the window, I would notice the screws around it that weren’t put in the right order. This realization upset me because I wanted the screws to look aligned. So I believe that from an early age I was inclined towards symmetry, and being orderly.

5. How did you think Expert Network would look like in 10-20 years?

This wasn’t a point of view I considered back then. Everything was in fast-forward, firefighting mode. Together with Andrei and Traian, we would be in daily calls with the client and then we would discuss how to deal with the tasks ahead. We didn’t have a plan, we didn’t follow guidelines or specific good practices. We would brainstorm ideas, someone would write them down and we learned step by step how to be better and optimize our work. It was all based on trial and error and we would learn the ropes as we moved forward.

6. What have been the challenges over time?

There have been two crucial moments. In 2005, the only Italian client we had, came to the conclusion that he could no longer support our 3-person team. So he gave us a 3-month notice that we had managed to extend into a 6-month part-time, giving us enough time to get in touch with the second client (from the UK) and with Wildstream.

Another challenging time was in 2020, with the pandemic. The main concern was related to the potential difficulties of our customers that had the risk to be transmitted back to us. Through steady leadership and everyone’s dedication, we’ve managed the entire process smoothly.

7. What were the most important moments of Expert Network?

  • Taking over the second room for rent.
  • The proposal we made to Wildstream to evolve the customer-supplier relationship into a complete partnership.
  • Moving to an office building and then moving to our current location.
  • Creating and working on the campus, adding the second building and the swimming pool.
  • Putting together our leadership team.
  • Perfecting our processes through Bamboo, our internal change management system, until we transitioned to the company’s maturity model, company values, DevOps, career path, and more.

8. How was the transition from 3 employees in 2004 to 100 employees at the end of 2021?

It was an incredible journey that seems to have passed in a flash. Getting 100 employees was possible because of the people that I am so grateful for. We’ve managed to attract amazing, highly skilled people and each of them has come with a complementary skillset and mindset. So now we are like-minded people that share common values, a mutual mission, all committed and passionate about what we do. I couldn’t have asked for more.

9. Does the company still resemble what it was in 2004?

Certainly not. Only the name has stayed the same.

10. What are the ingredients to maintain a successful business?

Everything is done with people. So definitely a passionate team gathered around common values ​​and ideals can move mountains.

11. How hard was it for you to move from developer to manager?

Looking back, I realize that from the beginning I had to do more than development. From the start, I had to be an account manager and soon a planning coordinator, a technical coach, a QA (without a defined structure), even a recruiter. So I’ve learned to adapt along the way.

12. How did you decide to build Expert Network’s pool?

Together with Frederic Apers (CEO Carflow / Executive Board Member Wildstream), we thought about how we could make the work environment special, warm and welcoming, where colleagues would enjoy coming here, bonding with each other, and even create long-term friendships. That’s how the idea was born, and from there to execution was only a step.

13. How many frogs have you found in the pool over the years?

At first, I remember frogs were a problem but I can’t remember how many exactly. What’s been unusual are the cats. They’re somehow attracted to the water and some even jumped in the pool and we had to take them out.

14. How many grey hairs has the third building given you?

Not too many. In life, there are things we can control and others we can’t. All we can do in the second case is give our best to find solutions and unblock things. Energy consumption about things we can’t control only takes us away from our goals, so it’s not worth it. I’d rather think about how I could have moved forward with the building instead of looking back to complain about how I’ve been stuck.

15. What do you like the most about what you do?

I like creating value, which manifests itself in several ways: from colleagues who grow in expertise to products that are born again in the company.

16. What would you have done differently if you were to start all over again?

From the beginning, I would have taken the path towards strategic thinking. I would visualize things from a long-term perspective to set them in motion. So, I would start by quitting the firefighting mode to be able to see the bigger picture and plan ahead.

17. How do you manage to organize yourself with work and family life?

What’s important in life is to do things with passion. When you do them with pleasure, you find time for everything. Time is an excuse to postpone things we don’t like, that we don’t enjoy. You will always find time for something that excites and stimulates you and you’ll somehow make room for that in your life.

Regarding my family, I’m very lucky that I can separate work from my personal time. With three young children, managing a business and communicating with clients would have been quite difficult. Even the time I spend while driving to work gives me a valuable context to be with myself and let my thoughts settle. What is certain is that I never have too much time, quite the opposite.

Share this article on

Be part of our team 

Discover how it is to work with us. Visit our careers page

The Role and Impact of a Technical Discipline Lead

The Role and Impact of a Technical Discipline Lead 

Although the tech world evolves rapidly with new technologies emerging constantly, IT and software development is actually a long and complex process. The creation of technological solutions requires the efforts, skills and communication of innumerable people all layered together. This is why the list of members and roles involved in software development teams are actually quite long. Each member on a development team serves a crucial purpose, but this article will delve into the role and impact of a technical discipline leader.

To find out more, we went straight to a source: our technical lead, Andrei. Throughout this article, Andrei shares useful information about his duties and responsibilities as a Mobile Discipline Leader and the impact it has on the way we do business. How does his role help us to keep our high standards while delivering top solutions tailored to our customers’ needs? What is our advice for those who want to tackle similar roles?

What is a technical discipline leader?

A technical discipline leader, or Tech Lead, is the main contact and person responsible for leading development teams and aligning them towards a common technical vision or goal. In other words, they are experienced and knowledgeable developers that take on a management role.

Tech Leads are good communicators that guide teams, help to resolve conflicts or issues that arise, and have an in-depth understanding of product and customer needs. Their role is important to tech companies as they mediate technical or critical decisions, lead and empower team members, and ensure that successful products are delivered to meet customer needs.

What does the role of a technical discipline leader at Expert Network encompass?

The specific duties and responsibilities of Tech Leads can vary according to company needs. As a Tech Lead at Expert Network, Andrei’s duties and responsibilities fall into four main categories: internal management, mentorship, supporting others, and keeping up with tech updates.

1. Internal management
A part of Andrei’s responsibility as a Tech Lead is to conduct training sessions and align with other disciplines. He’s in charge of training front-end teams about React and also holds training sessions for our Full Stack .NET internship. For the latter, he presents interns with basic information related to front-end operations and introduces them to React so they can familiarize themselves with these concepts, their impact, importance, and more.

Andrei takes on a support and advisor role for most of our projects and remains constantly available to his teams. His impact as a Tech Lead is crucial here as he ensures that any arising issues are resolved quickly and products are delivered on time.

Another aspect of Andrei’s duties is to communicate closely with the company’s stakeholders. He ensures that we receive positive feedback from them and that he has a thorough understanding of their needs and requirements every step of the way. Besides this, he is also close to our teams. He supervises their activity, oversees their needs, and provides support when necessary. Through Andrei’s approach and guidance, his teammates are empowered to solve certain issues with their own abilities and he helps them to learn from mistakes so they can become autonomous.

Andrei isn’t limited to a tech role and he teaches others to do the same. Our line of work requires people skills, empathy, a global mindset and perspective on a project. In order to make improvements, we need to give business advice and provide solutions from beyond a technical standpoint. Ultimately, thinking outside the box and considering the needs of a project from multiple different angles is what separates Expert Network from other businesses. In this respect, one of Andrei’s duties is to single out key people within our teams that are capable of handling and providing both technical and soft business skills. As these members gain confidence and perfect their capabilities, they become autonomous, powerful, and efficient at what they do.

2. Mentorship
Andrei constantly interacts with his peers, observing their tech and soft skills. This enables him to conduct accurate and pertinent evaluations that help him to establish which projects, roles, and tasks are suitable to a particular person.

According to him, the greatest challenge here lies in identifying the right mentoring or teaching style to suit each individual. Everybody learns differently, so it’s essential to empathize with them and view things from their perspective in order to create a mentoring style that suits them. Although these aspects require time, they are incredibly rewarding. Andrei has been able to achieve incredible progress and results with individuals by dedicating himself to such tasks. Individuals open up more as he builds trust with them, allowing him to use the right method, style and approach to help them grow and progress rapidly. It has become a personal drive for Andrei and he dedicates himself 100% to bringing all his team members to a high level.

3. Supporting others
Our colleague emphasizes the importance of working together, being a team player, and learning from each other – working towards a collective well-being rather than for individual gain. We’ve seen the difference in how efficiently and effectively we work when we leverage the work of others because we have an impact through our shared effort.

By tapping into the knowledge and skills of our teams, we work together towards a common goal, drawing out the commitment to achieve clear results.

4. Keeping up with tech updates
Staying informed and updated on new technologies in the appMobile sector (such as React-Native, React, JavaScript, etc.) is crucial. This also applies to adjacent technologies as they provide a broader understanding and perspective. Andrei also makes sure that he has a thorough understanding of back-end technologies and databases as they allow him to achieve greater depth in his activities.

Additionally, our environment encourages progressive and efficient automation, innovation with an emphasis on metrics and high-performance delivery. And DevOps incorporates them all.
But making the transition is no walk in the park, and it is an ongoing operation that delivers benefits and real value to us. Through its implementation, we save time, reduce human error, and ultimately, we bring more value to the customer.

From Andrei’s side, he is hands-on involved in planning DevOps pipelines and helping out with project automation on various projects. Even during our tech training sessions, various DevOps solutions are presented and explained so that everyone is enabled to broaden their perspective, becoming well-equipped to deal with various tasks.

Key challenges, rewards, and activities of a technical discipline leader

Based on Andrei’s experience, the key challenges, rewards, and activities of a Tech Lead at Expert Network can be summarized as such.

  • Adapting to and identifying what works best for colleagues under his mentorship
  • Being flexible and working on multiple projects at the same time
  • Managing the Mobile Applications Discipline
  • Awakening the talents and possibilities within individuals to deliver extraordinary results
  • Watching others grow as they become masters in their craft
  • Having his voice heard and a company-wide impact
  • Helping businesses to succeed
  • Mentoring, training, and workshops
  • Building the front-end discipline
  • Providing guidance on multiple projects
  • Taking on a support and advisory role

Seven tips from the Experts

For those who want to tackle the role of a Tech Lead, here are seven tips of advice:

  1. Do your best to understand a client’s business so that you can grasp the needs and decisions behind a project. Sometimes the business decisions weigh heavier than the tech ones, so it’s important to be aware of them.
  2. Work on diverse projects. Gaining experience by tackling various new situations will help you to grow as you are forced out of your comfort zone. It’s the only way to improve and adapt. You will also identify best practices that you can apply to each future project and team.
  3. See the bigger picture. Being flexible is essential as you need to be able to zoom out and identify the best course of action on a project. This is necessary because the end goal is to advance the business and get the most out of a collaboration.
  4. Avoid getting too immersed in your point of view, or getting irritated when things don’t go your way. Communicate with management when you wish to voice your ideas or concerns, but be mindful of other points of view.
  5. Be patient and understanding, and learn to separate personal aspects of your life from business. This will enable you to help others fully since you will be able to actively listen to them, analyze their key strengths, discuss what is not acceptable openly and how to improve a situation. By doing so, you will know how to approach them to stimulate improvement on all levels.
  6. Focus on a core skill set. Rather than knowing a little about everything, be proficient at a core skill set before diversifying your tech knowledge. When you decide to expand your knowledge, focus on a basic understanding of new tech.
  7. Integrate with large existing codebases. Have a support system for your teammates so they can share their experiences with different integrations in projects. This way, they can learn from each other.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

Overcoming the Challenges of Front-end Technology Implementation

Overcoming the Challenges of Front-end Technology Implementation

Front-end technologies are the magical set of tools or platforms used to develop the user interface (UI) of web applications and web pages. What users view, access, and interact with directly, all counts as front-end technology.

React, Angular and Vue have been the most community-endorsed tools in front-end technology for several years. In particular, React is the most popular front-end framework. React has had the highest usage ranking since 2016, hitting 80% in 2020. with Angular (56%) and Vue (49%) following two steps behind. React’s community endorsement has been constant over the years, remaining in the top three positions when it comes to satisfaction, interest, usage, and awareness ratio rankings since 2016.

Although these three powerhouses (React, Angular, and Vue) have led the pack so far, modern front-end technologies evolve rapidly, with new solutions being introduced to the market daily. Strong contenders, such as Svelte, are constantly emerging and the diversity of choices can cause confusion.

With this in mind, what factors should be considered before implementing a modern front-end technology? Furthermore, what challenges await post-implementation and how did we, at Expert Network, overcome them? What advice do we have for developers that want to work with modern front-end technologies?

Key factors to consider

Base the decision to integrate modern front-end technologies, such as React, into your codebase on a technical and business analysis. Weigh up the costs and risks against the benefits it provides, and be sure that the latter exceeds the former.

Here are some key factors to consider as you measure your scales:

  • amount of time that needs to be invested
  • the lifespan of a project (and its maintenance)
  • the scope of a project (which examines elements such as who the end-user is and whether it’s a short or long-term project)
  • team capability

Depending on the end-user, some projects will not benefit from a snappier UI or any page reloads. On the other hand, modern front-end technologies will help in the long run for a lengthy development or maintenance timeframe. Although integrating front-end technologies requires an investment of time, newer technologies are easier to maintain and integrate, making them ideal for long-term projects.

Challenges in implementing front-end technology

At Expert Network, we use React as part of our front-end stack. We chose to use React as it has the best balance between developer satisfaction and community support, as well as the best third party libraries. Despite its many benefits, we’ve had to overcome several challenges whilst implementing React: making sure our teams have the support they need, using the right tools and best practices, and providing standardized ways of integrating React with existing large codebases.

1. Getting teams ready – providing company-wide support
One of the challenges of integrating modern technology, such as React, into an existing project is ensuring that teams are comfortable using the technology. The solution is to have sources that promote and share best practices.

At Expert Network, we hold extensive training sessions and workshops to ensure that our teams get the support they need to deliver quality code using React. We also have people that encourage other team members to use best practices and conduct knowledge-sharing sessions. Moreover, our front-end discipline provides help and consultancies whenever required.

2. Choosing the right tools from millions
Another challenge is choosing the right tool for the job. The front-end ecosystem is incredibly diverse, with 1.3 million packages on NPM, and it is becoming increasingly difficult to sift out the ones with good support and planned future updates.

To counter this, we keep a list of curated tried-and-tested packages based on the community support a tool enjoys. This list helps our developers to choose the right tool to tackle a problem. In another sense, it also helps us to standardize our workflow across multiple projects.

3. Integrating with large existing codebases
Not every project is new. When using modern front-end technologies, they may need to be integrated with an existing codebase. Depending on how the specific project was designed, this could be an easy or difficult task.

To help our teams, we provide guidance and support with planning and integration. We also constantly share our experiences with different integrations on various projects so that individuals can use this knowledge to choose the best solution. As an example, we hold internal meetings, named DevOps Forum. DevOps Forums are internal meetings with our group of developers where we exchange ideas, learn from each other, and come up with the finest strategies and approaches to implement into our projects. It’s a hands-on approach that tackles the task in question directly and gives the team a space to get the advice and support they need.

At Expert Network, we constantly aim to standardize and streamline processes because it helps our developers, our customers, and our company. In this sense, we are working on a series of guidelines, training, and an internal audit process to find timely solutions to issues that may arise.

Advice to keep in mind

Our experience in integrating modern front-end technology has been a true learning curve. For other developers at the cusp of a similar journey, here is some advice we’d like to share based on our experience:

  • Improve your project one module at a time. Integrating with large codebases does not have to be done all at once.
  • Use tools that are supported by the community. This will help you to reduce the number of bugs and will make it easier to find solutions for issues that arise along the way.
  • Your team is the key to the success of a project. It’s essential to identify team members that have an affinity for front-end technologies and are willing to promote or share their knowledge with the rest.
  • Several frameworks have been tried and tested, proving themselves effective for projects of any size and difficulty. Therefore, using community-endorsed tools like React, Angular or Vue will provide the best results in projects as you’ll be able to easily find the answers you are looking for.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

A Guide to DevOps Security

A Guide to Security in DevOps

DevOps successfully unifies two traditionally separate aspects of the IT world: software development (Dev) and IT operations (Ops). By combining the people, processes, and technology of these entities, DevOps accomplishes its goal of shortening the systems development life cycle. The DevOps approach utilizes the Agile methodology to integrate and streamline the development and operations processes. This enables a faster and more efficient development process that provides continuous delivery of value and high-quality software.

As the spotlight focuses on speed, automation, and other DevOps tenets, security often becomes an afterthought and its negligence is a common shortcoming. Effective DevOps ensures rapid and frequent development cycles, but outdated traditional security practices can’t seem to keep up. Although the fast pace that DevOps promotes is part of what makes it so desirable, this velocity is simultaneously a downside as it can lead to additional security risks.

The solution is to integrate security protocols and practices across the entire DevOps pipeline and life cycle. DevOps security, or DevSecOps, is the application of information security (InfoSec) policy and technology to the entire DevOps lifecycle and value stream.

What security challenges have emerged from our DevOps initiatives? What practices have we implemented to overcome security gaps or challenges without hindering the benefits of DevOps practices?

Challenges in DevOps Security

The shift from monolithic applications to agile DevOps environments presents new risks and changes that traditional security solutions and practices cannot address. What new security challenges have emerged as a result of the modern, agile focus of DevOps?

  • The fast-moving development process and environment can lead to security concerns caused by undetected bugs or errors. If security cannot move at the same speed as DevOps, it can lead to unintentional vulnerabilities, insecure code, and other weaknesses that contribute to operational dysfunction.
  • The DevOps model is based on collaboration between different teams but these teams may have different processes, which can lead to gaps in security protocols. The highly interconnected and cohesive nature of collaboration in DevOps teams may also require unrestricted access to privileged accounts or the sharing of access keys, API tokens, certificates, etc. In turn, this opens dangerous backdoors and provides opportunities for malicious actors to attack, steal data, and disrupt operations.
  • A large majority of DevOps environments rely on the extended usage of cloud (serverless) computing. To ensure complete support, the cloud provider needs to fulfill security requirements in compliance with an organization’s security processes and policies.
  • Integrating security into CI/CD pipelines by including automated security testing to address vulnerabilities early and eliminate inefficiencies.

Best Practices for DevOps Security

The DevOps ethos has brought on a transformation and changed the way security needs to be achieved. Since DevOps involves every stage of the software development life cycle, effective security is more critical than ever. What principles and guidelines have we integrated to help deal with security challenges in a DevOps environment?

  1. Transition to a DevSecOps team. DevSecOps is an approach that brings together software development (Dev), security (Sec), and IT operations (Ops) to integrate security into the entire DevOps pipeline and life cycle. It’s essential for the DevOps team to take ownership of addressing security (rather than relying on an external provider) and for security to be included as early as possible in the development life cycle.
  2. The development team must adopt secure coding practices. For example, the OWASP Secure Coding Checklist is a comprehensive reference.
  3. Use tools for static code analysis and to highlight security flaws.
  4. Designate a member of the team to be responsible for security. Also make sure to use documented security procedures and policies that are easy for developers and other team members to comprehend.
  5. Use separate environments for developing, testing, and accessing production environments whenever possible.
  6. Make security a main concern in all testing phases and strategies.
  7. Follow a structured security testing methodology.
  8. Automate security testing as much as possible to scale security to DevOps processes. Security automation also minimizes the risk of human error and manual intervention.
  9. Use best practices in regards to credentials management to securely store and manage them.
  10. Run periodic manual and automated penetration testing on the production environments.
  11. Use containers whenever possible. Containers enable DevSecOps as they provide security and make rapid, repeatable application development and deployment cycles.
  12. Hack yourself. Assess your infrastructure and code from an attacker’s viewpoint to enable a better understanding of the security weaknesses and strengths of an application, service, data center, and cloud platform.
  13. Use automatic backups for critical information resources.
  14. Prepare a disaster recovery plan and test it periodically.

Despite the many benefits of DevOps, it presents new risks and security challenges that traditional solutions are unable to address. Although DevOps fuses development and operations processes, DevOps and security often still remain largely separate. To overcome this, DevOps security or DevSecOps aims to integrate security into all phases of the software development life cycle. From planning, developing, and testing to release, deployment, maintenance, and beyond.

Introducing DevOps security early in the life cycle enables a productive DevOps ecosystem. It helps to identify vulnerabilities and operational weaknesses long before they become an issue. By implementing the above DevOps security best practices, organizations will be empowered with the ability to reduce data breaches and to continuously deliver high-quality software at velocity, securely.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

Advancing in DevOps with Cypress and Percy

Advancing in DevOps with Cypress and Percy

In general, emerging development technologies in the software industry require more attention from those who contribute to the creation of products. How can we deliver qualitative products that meet customer needs? By staying on our toes, constantly seeking new solutions that can be applied to projects.

As the web evolves, testing needs to evolve along with it. In the QA discipline, there’s been a persistent growth in the need to automate manual testing. Integrating a tool that could accelerate such automation in the DevOps process is necessary to fuel a fast, qualitative and reliable delivery. At Expert Network, we recognized that the best-fit tool for us would need to be developer-friendly, powerful, and as open-source as possible. Its scalability for all browsers and resolutions was also a criterion we needed to consider.

The solution we chose was Cypress, a new automation tool that met all these qualities and has already been implemented in several projects since.

The benefits of Cypress

The need to deliver correctly, on time, and as easily as possible led to the question: “Which automation tool is best for us?” To find our answer, we compared the particularities of Selenium and Cypress. Selenium is a famous and widely used automation tool, whilst Cypress is a new tool with a JavaScript based testing framework built for the modern web. After comparing the tools and balancing their differences, we found that the benefits of Cypress outweighed Selenium.

What are the benefits of Cypress?

  • The speed of test writing was a decisive criterion in this “dispute”. The development of tests in Cypress is much faster due to its programming language (namely JavaScript), but also much easier since it requires minimal knowledge of JavaScript.
  • Easier and quicker debugging in case of failure. The location and cause of errors are clearly presented, and Cypress would even offer a solution at times. This reduces and eliminates the amount of time spent looking for errors and solutions, which in turn meant that maintenance became faster.
  • The real-time reload. After each code change, Cypress gives itself a real-time reload, running the new freshly modified automation test. This helps to streamline the test development process so you can quickly view the results of new changes.
  • Cypress supports many browsers, which makes testing on different types of environments more accurate.
  • Consistent and well-structured testing results make it easy to create reports based on them. Furthermore, Cypress’s screenshot and video feature help to accurately diagnose and cover a problem encountered in the application.
  • Cypress has great integration with Percy, a visual test tool.

Alongside Cypress, Percy is the newest way to design, develop and deliver software with confidence. Percy is a testing tool that provides a complete visual overview: rendering, comparing and reviewing visual changes to catch bugs. With Percy, we could get visual coverage across our entire UI. We chose Percy because it has a scalable infrastructure optimized to be fast. It’s secure, reliable, and allows our team to work collaboratively. It adapts easily to browsers or changes in resolution and finds even the smallest changes of components in the application.

Bumps along the road to Cypress

The main challenge we encountered in our switch from Selenium to Cypress was the transition to a new programming language. Although Cypress’s JavaScript language is easy to learn, there are considerable differences compared to Selenium’s C# language. This difference in language had the potential to create conflicts of knowledge when developing the automation suite.

Another challenge was the complex task of implementing object-oriented programming (OOP) for a suite that would be organized and easy to understand. We needed to create a space that was very well-structured, which is more difficult than it sounds in a sentence. It also needed to facilitate the maintenance and reuse of certain tests, functions and commands.

The last bump in our road to Cypress was creating the right structure for test results, as well as moving or rewriting existing tests in Cypress. The test results, in the form of screenshots and videos, had to be easy to find so they could be accessed by everyone. Our saving solution was the formation of a Page Object type of structure for an orderly and well-systemized development.

What kind of results did Cypress provide?

By implementing Cypress, we experienced the possibility to improve metrics. It takes less time to write and run tests due to the Cypress interface, the complexity of regression decreased considerably, and releases are no longer as painful. The automation process also starts from the early stages of user stories, helping us to successfully catch bugs from the first stages of development.

Other advantageous results include how the differences in application between browsers are easy to identify and the search for errors in debugging is done by Cypress. The consistency of Cypress’s testing results, as well as the photo-video evidence preservation of a bug, also makes the creation of an automation running report extensive and accurate.

It was observed that many of our colleagues were very open to the transition from Selenium to Cypress. They were quick to notice the advantages that came with this tool and keen to learn more about it.

Additionally, Cypress (along with Percy) provides insight into every product change, which was exactly what we needed. Now we see constant progress at project level and there’s nothing we enjoy more.

Never stop improving, this is how we DevOps

It’s undeniable that the software industry goes through continuous upgrades. A more efficient new tool or design pattern could appear at any time. As such, we put a lot of focus on remaining up-to-date and willing to adapt to new requirements or opportunities in the market.

At the moment, our plans are to improve the structure of the automation project. This will optimize the development and running of test suites from a spatial and temporal point of view. Additionally, the total elimination of hardcodes or workarounds from the project is in a continuous process of development. This particular improvement is a priority for the creation of a reliable, usable and efficient project.

Another target we’re aiming to reach (as soon as possible) is the full integration of Percy in the project to automate the validation of its design. Finally, we plan to adapt our developers to Cypress-specific coding best practices. Accomplishing this would aid both the project and the QA Engineer in charge of creating the tests.

We’re constantly seeking new solutions and planning for future implementations or possible improvements. As the need to automate manual testing continues to grow in the QA discipline, we’ve chosen Cypress and Percy as our solutions. They’re the best-fit automation tool for us and we already benefit from increased speed of test writing and running, easier debugging, consistent and well-structured testing results, and more. We have plans in store for future developments and aim to continuously adopt innovative technologies that benefit us and our clients. This way, we can remain competitive in this rapidly evolving industry.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

Introducing New Technology to a Long-Running Project

Introducing New Technology to a Long-Running Project

As time elapses, technology evolves continuously, and finding ways for products to remain competitive is a necessity. This is notably evident in long-running projects that grow gradually to stay relevant and competitive by adapting to trends and implementing new technologies.

At EXN, we have worked on a long-running project with Carflow, Europe’s complete solution for marketing, sales, and stock management for auto dealers. Carflow‘s goal is to create a platform that will allow car brands, dealers and buyers to connect, share information about products, and manage their purchases. Our journey with them began in 2008 and the initiative to redesign their platform has been an ongoing mission since 2013.

As new challenges emerge, fancier and more advanced technologies are needed to adapt business flows, improve speed, and enhance UI/UX. In particular to the Carflow project, the benefits of KnockoutJS were slowly fading away as the technology got old and received less support. Meanwhile, newer and better front-end technologies were gaining traction.

Introducing ReactJS to Carflow

At that point, a substantial module in the Carflow application needed a revamp to improve business flows and UI/UX. The old module was built with ASP.NET MVC and ASP.NET Web API for the back-end and KnockoutJS to render the front-end. KnockoutJS is an open-source JavaScript library that helps developers build rich and responsive websites, but its declining benefits were an indicator that it was time for an upgrade.

In other words, it was the perfect opportunity to introduce a new technology: ReactJS. We set about rebuilding the module using ReactJS as the front-end technology while maintaining the existing back-end architecture (with a few adaptations).

Why did we choose ReactJS? Similar to KnockoutJS, ReactJS is an open-source front-end JavaScript library that helps developers to create interactive UIs. ReactJS is currently the newest advancement and hottest topic in the software industry. It has a rich ecosystem of libraries and packages, and has obtained an outstanding track record in the industry and community. It also improves the standard of web page rendering performance, which was ideal for us since one of our objectives was to improve user experience.

What are the advantages of ReactJS over KnockoutJS?

  • ReactJS’s Virtual DOM (Document Object Module) mechanism makes the process of updating real DOMs much faster and more efficient.
  • Although KnockoutJS also has components, it is easier to develop, extend, and compose components in ReactJS.
  • ReactJS has a thriving community due to its widespread adoption.
  • ReactJS comes with “one-way data binding” while KnockoutJS’s “two-way data binding” offers inferior performance and allows the introduction of unhealthy patterns. That said, two-way data binding was initially more intuitive to learn and use.
  • With ReactJS, we had multiple viable options of approaching state management, allowing us to choose the best fit for our data flows.

The challenges faced and how we overcame them

Transitioning to new technologies can be a bumpy road. These are the challenges we had to face with the introduction of ReactJS:

  • Our team had no knowledge of or expertise in ReactJS, which meant we were at the starting line of a learning curve.
  • Variety requires meticulous decisions. ReactJS has a rich ecosystem of libraries and packages, so it took time to choose the appropriate ReactJS patterns and libraries for our needs.
  • Creating the new module in ReactJS meant that we ended up with two applications: the existing ASP.NET MVC App and the new React App. The challenge was then to achieve seamless transitions to ensure that users will not notice the switch from one application to the other.

How did we approach and overcome these challenges? To solve the team’s lack of knowledge in ReactJS, we held internal training sessions during the transition. We also organized sessions with a trainer and specialist from our local community who guided us through the features and quirks of ReactJS.

To overcome the slightly overwhelming variety of libraries and packages that ReactJS offered, we collaborated with a ReactJS consultant to help us choose the most suitable stack of libraries for our needs. Of the many that were available, we ended up with:

  • React Hooks
  • Styled-components
  • MobX for state management
  • Hook Forms for form validation
  • Axios for API request management
  • Material-UI for React component styling

In order to approach the challenge of ending up with two applications (ASP.MVC and React), we employed several solutions. The first was to host the React App as a module inside the ASP.NET MVC App. We achieved this by having a script that creates a virtual directory in IIS as part of the deployment script and binding the virtual path to the React Router. Secondly, we made the two applications share the same session by using the Axios withCredentials parameter for API requests and leveraging the virtual directory approach. The third was to replicate authorization mechanisms in the React App to match the ones in the ASP.NET MVC App. Since our application is deployed as an Azure Cloud Service, a package is created during the release pipeline. We included a script in that deployment package to create the virtual directory and copy the npm build output of the React App to that location.

The drawbacks and wins

An unexpected and slightly humorous drawback of our transition to this new technology is that there’s more competition between team members as they “fight” over the stories in the new React module. Team members love taking them on and this has resulted in greater involvement in task assigning and Sprint management since everyone wants to progress in ReactJS. It is also an extra challenge now, for Product Owners and Development Leads, to keep everything in check and balanced knowledge-wise, as well as keeping everyone motivated. In comparison to if it had been developed in KnockoutJS, the redevelopment of the module with ReactJS took longer due to the learning curve we had to overcome and the refactor we needed to do down the line.

The refactor was necessary because we wanted to reduce the technical debt that usually appears when adopting a new technology if incorrect patterns are chosen. The last drawback lies in the fact that the project now uses two front-end technologies. This means that developers need to do a paradigm switch from time to time. Furthermore, new colleagues that join the project would need to learn about both technologies, which would take additional time and guidance to ensure that everyone working on the project possesses the same amount of knowledge.

A particular benefit of introducing ReactJS was that people on the team found it very motivating and stimulating to work with the latest front-end technology. As we got past the initial learning curve, we also observed increased development speed. Furthermore, feedback from our client also emphasized that the new module was much faster and more responsive than the previous ASP.NET MVC and KnockoutJS combination. The development of this module with new technology also triggered a change in the framework used for UI automated testing: we switched from Selenium to Cypress. At the end of the day, it was a big win for the team to complete this migration successfully while overcoming each hurdle that was encountered along the way.

The transition to new and more advanced technologies can be difficult, but the wins we’ve achieved with the introduction of ReactJS to the Carflow project outweigh the drawbacks and obstacles we’ve had to overcome. As of now, we already benefit from increased development speed, improved UI/UX, greater efficiency, positive feedback from our client, and a motivated team. We aim to continuously adopt innovative technologies that benefit us and our clients so we can remain competitive in this rapidly evolving industry.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

What You Didn’t Know about Agile and DevOps

What You Didn’t Know about Agile and DevOps

As word spreads about the benefits they provide, many organizations are turning to Agile and DevOps methodologies, to really drive organizational outcomes. It’s broadly understood that the goal of Agile and DevOps is to improve and boost the productivity of a business. This is achieved by unifying the people, processes and technologies of development and operations teams in order to develop and deliver high-quality software efficiently, reliably, and cost-effectively.

Beyond the main benefits that have been widely iterated, what else is there to know about Agile and DevOps? In this article, we’ll cover recent statistics about Agile and DevOps, what is required to implement them, and difficulties teams might encounter along the way. We’ll also reveal what inspired our transition and our advice, which is based on our experience, to others who are on the cusp of taking on the challenge.

Take a look at the data

For those still a little unfamiliar with Agile and DevOps, here is a concise analysis of both concepts, their benefits, and what sets them apart. The development of Agile and DevOps has revolutionized the software development industry over the past 30 years. It has replaced traditional and time-consuming methods, with a new culture that promotes progressive and efficient approaches, automation, innovation, as well as improved communication and processes. Data from research into their implementation really exemplifies the value they can bring to those who take on these practices.

The 2020 State of Agile Report reveals that more and more organizations are realizing the value of Agile adoption, with 95% of organizations having adopted some form of Agile process. The 2018 Standish Group Chaos Study results also show that Agile projects are statistically 2X more likely to succeed and 1/3 less likely to fail than waterfall projects. In Chris James’ (CEO Scaled Agile, Inc.) welcome keynote address at the Global SAFe Summit 2020, he shared that 93% of business units that had fully adopted an agile model before the COVID-19 crisis outperformed units that hadn’t.

DevOps adoption and success rates are also soaring. According to the recent 2021 State of Database DevOps, 74% of the 3,200 enterprises surveyed have adopted DevOps in some form, a significant increase compared to the 47% in the 2016 report. With regards to success rates, 99% of respondents to the Atlassian DevOps Trends Survey 2020 said that DevOps has had a positive impact on their organization. Furthermore, those who have been practicing DevOps for longer (3+ years) are more likely to see higher-quality deliverables (66%), lower failure rate of new releases (45%), and fewer incidents (40%). The DevOps Research and Assessment (DORA) 2017 and 2019 State of DevOps Reports also reveal that high-performing DevOps teams are more agile, deploy 208X more frequently and 106 times faster than low-performing teams. The best teams recover 2.604X faster and spend 50% less time fixing security issues.

In a scene where speed, stability, and security are sought-after qualities, Agile and DevOps are the ideal choice to drive improved and elite performance.

What do you need to implement Agile?

Although Agile and DevOps share the common aim of developing and delivering end-products as quickly and efficiently as possible, they employ different approaches and functions.

The Agile methodology is a people-and results-focused approach to software development and testing that is essentially used to create applications. It is centered around adaptive planning, self-organization, and short delivery times. It is flexible, fast, and aims for continuous improvements in quality using techniques like Scrum, Kanban, and eXtreme Programming. The Agile methodology also utilizes certain main tools in its process: Agile boards, backlog management, project and issue tracking, Agile reports, and custom workflows. Some of the best Agile tools to use include ActiveCollab, Agilo for Scrum, Atlassian Jira + Agile, Pivotal Tracker, Prefix, and Retrace.

Although the list for Agile best practices could extend endlessly, here are a few important ones:

  • Communicate, whether face-to-face or through open communication tools, at every stage of the project to ensure the process stays on track even as conditions change.
  • Work fast, set priorities, and maintain small release cycles. Aim to deploy increments every few weeks and the entire piece of software in a couple of months.
  • Integrate fast feedback loops, tracking feedback on the success and speed of the development process regularly.
  • Self-organizing teams and employees are empowered, highly motivated, and generate the most value as they understand goals and create their own path to reach them.
  • Inspect practices, adjust, and adapt quickly to the process continually.
  • Use techniques like pair programming to deliver higher quality.

What do you need to implement DevOps?

DevOps is an evolution of Agile and is fundamentally utilized for application deployment. It brings together the skills, tools and processes from development and operations teams to create a culture all about automation, communication, accountability, increased collaboration and shared responsibility. DevOps standards, practices, and tools are different for every team and every company. As long as the practices and tools adopted help to deliver quality software faster, the goal is served. There is a wide array of DevOps tools available on the market for different categories: GitLab or GitHub for source code control, Ansible or Jenkins for CI/CD management, Kubernetes for container platforms and microservices, Azure or AWS for cloud computing and storage, and so much more.

Here are a few best practices to adopt when transitioning to DevOps:

  • Change the culture so that collaboration, transparency, trust, and empathy become a focus. Developers should be involved in operations, and vice versa.
  • Have a loosely-coupled architecture at both team level and technology level.
  • In addition to source code, version control everything from settings and parameters to software and hardware configuration files.
  • Use Agile methodologies for software development and infrastructure to deliver value to customers faster and with fewer headaches.
  • Automate everything that can be automated since manual tasks and processes are error-prone and unscalable.
  • Shift left with continuous integration, delivery and deployment (CI/CD) pipelines so that if anything fails, there is a fast feedback loop leading to rapid recovery.
  • Build with the right tools for each stage of the DevOps lifecycle and use the same tools and platforms in development, staging and production environments so that what works in development will transition successfully to the staging and production systems.
  • Continuously monitor the DevOps pipeline and applications so a broken build or failed test doesn’t cause unnecessary delays.

Difficulties along the way to transformation

The transition to Agile and DevOps is hard and an ongoing journey. It’s a real challenge but also delivers real value to organizations. Common issues with Agile and DevOps implementations are a lack of or limited knowledge and Agile skills, legacy infrastructure, and adjusting company culture to adequately support the Agile and DevOps philosophy.
Integrating a new perspective and culture is no easy feat since everyone, including clients, needs to be in agreement and ready to embrace a different approach and new way of working. 75% of major organizational change initiatives fail and the leading cause is a neglect of company culture. Agile and DevOps is all about acceleration and faster releases, and the only way for it to work is to encourage communication, collaboration, and break down silo mentalities. It’s also essential to make the transition accessible, easy to follow, and accompanied by appropriate guidance, support and tools. Fully embracing Agile and DevOps takes open minds, time, practice, and is a continuous job.

Our transformation and advice for others?

A couple of years ago, we began transitioning to Agile and only started integrating DevOps practices later on. Although there was plenty of talk about transitioning to DevOps practices, not everyone on our team was on board with the idea, until a particular book inspired us all. Accelerate: The Science of DevOps by Nicole Forsgren, Jez Humble and Gene Kim motivated us to begin our DevOps transformation. We made use of the practices and capabilities presented in the book to drive high performance in technology delivery and, ultimately, achieve high organizational outcomes.

Besides reading Accelerate: The Science of DevOps, we encourage others who wish to integrate these technologies in businesses and projects, or are on the cusp of a DevOps transformation, to consult research from Google’s DORA team. These reports are informative and will convince others, as well as yourself, on the value that Agile and DevOps practices can provide to your organization. In addition to this, there are several recordings of Nicole Forsgren’s visionary and pragmatic presentations that share insights into the key leadership, technical, architectural, and product capabilities that enable high-performing IT teams to decisively outperform low-performing peers.

The transition to Agile and DevOps is undoubtedly challenging, but they deliver benefits and real value to organizations. With each day that passes, it will get easier to understand and efficiently implement these practices so you can remain innovative and stay on top of your game. As of now, we already enjoy faster releases, CI/CD pipelines, and continuous integration with our Agile and DevOps transformation. We aim to fully achieve continuous delivery and maintain our high performances in technology delivery and organizational outcomes.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.

Agile and DevOps, the Game Changers that Drive Innovation

Agile and DevOps, the Game Changers that Drive Innovation

The latest buzzwords on the lips of CEOs, developers, and businessmen are Agile and DevOps. But why are they so popular and what value do they actually bring to organizations?
Broadly speaking, both concepts include practices with the common aim of getting end-products out as quickly and efficiently as possible. Yet, to zero in on the targeted goals, Agile and DevOps work differently, employ various approaches, and function distinctly in a team-based environment.

Although many businesses are eager to take on these practices, it’s essential to make a calculated and well-researched decision before making the transition. In this article, we’ll provide an analysis of both concepts, the benefits, as well as what sets them apart, and our experience with implementing them.

The Agile methodology

The concept came to life in the 1990s as a response to the growing needs of the software development industry. In 2001, the Agile Manifesto was written by 17 independent-minded software practitioners who uncovered better ways of developing software while helping others to do it. In the manifesto, they introduce 12 principles and 4 values that would provide an overview of expectations in Agile development lifecycle practices. The values are:

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

Basically, it is a collection of methodologies based on the best practices at the time. It unifies extreme Programming (XP), an aggregation of Scrum and other heavyweight software development processes, to combine the most progressive and efficient approaches into a single set of principles. So, whoever applies any type of Agile methodology adheres to these values and principles that make up the Agile software development culture.

Agile benefits

To better understand this concept, Tom Hall, a DevOps advocate and practitioner, explains: “Agile is an iterative approach to project management and software development that focuses on collaboration, customer feedback, and rapid releases… In an agile approach, some planning and design are done upfront, but the development proceeds in small batches and involves close collaboration with stakeholders.”

Here are six clear benefits that we can enjoy from incorporating this approach:

  • Software can be remediated in real-time. Unlike the waterfall approach, which doesn’t move fast enough to meet customer demands, Agile encourages rapid and flexible responses to change.
  • Focus on business value by continuously aligning development with customer needs and trends.
  • Efficiently deliver the optimum high-quality software product through Sprints that allow teams to easily notice and respond to unpredictability.
  • Transparency for all parties involved through user stories. They help achieve cross-team clarity on what to build, for whom, why, and when.
  • Reduced risks leading to increased customer satisfaction.
  • Predictable costs and schedules. Clients can more readily understand the approximate cost of each feature and each Sprint has a fixed duration.

DevOps Practices

The DevOps concept is more recent than Agile and arose due to the increasing need for innovation in the available rigid frameworks. For years, development and operations teams remained separate with different (and often competing) objectives, department leaderships, and key performance indicators, which would all lead to dysfunction and frustration.

The term DevOps gained popularity in 2007 and 2008, when the two communities (led by people like Patrick Dubois, Gene Kim, and John Willis) united and eliminated this pattern of siloed teams and broken lines of communication within organizations.

The principle of DevOps is to bring development and IT teams together, connecting the skills, tools, and processes from every facet of an engineering and IT organization. View it as “an evolution of agile practices, or as a missing piece of agile.”

At its core, DevOps is about creating a culture of improved communication and processes with better information sharing across teams and companies. It promotes a philosophy of agility, automation, transparency, communication, and efficiency.

In a survey of 500 DevOps practitioners, Atlassian found that 50% of organizations say they’ve been practicing DevOps for more than three years.

DevOps benefits

On the technical side, the advantages are:

  • Faster resolution of problems because team members don’t need to wait for a different team to troubleshoot and fix the problem.
  • Continuous software delivery as code changes are automatically built, tested, and prepared for a release to production.
  • Less complexity because DevOps streamlines processes, generating efficient releases that ensure quality builds.

Business-wise, the clear benefits are:

  • Features are delivered faster, which can lead to increased revenues.
  • The operating environment is more stable and lowers costs.
  • DevOps streamlines processes, generating efficient releases that ensure quality.
  • Drives business innovation, increasing sales as well as employee and customer engagement.

What sets Agile and DevOps apart?

As we’ve explained, Agile and DevOps are not fundamentally opposed because their goals are the same: to improve and boost the productivity of a business. Yet, they follow a unique approach and contribute differently to the same purpose. The differences and similarities between the two manifest as follows:

– Agile concentrates the flow of software from ideation to code completion.
– Agile puts focus on collaboration between developers and product management.
– Agile provides structure to planned work for developers.
– Agile emphasizes iterative development and small batches.

– DevOps expands the focus to delivery and maintenance.
– DevOps includes the operations team.
– DevOps incorporates unplanned work common to operations teams.
– DevOps concentrates more on test and delivery automation.

Expert Network’s experience with Agile and DevOps

A couple of years ago, we began transitioning to Agile and integrated DevOps practices later on. With Agile, we organized courses so that all teams could familiarize themselves with the methodology and guidelines. This was necessary in order to make the right adaptations depending on ‘the profile’ of each project. We also held meetings where we would voice our concerns, the results obtained, and learn from each other to come up with appropriate solutions.

Integrating a new perspective wasn’t a walk in the park because it meant rewiring our approach and embracing many different changes. In addition, we also needed to be in agreement with our clients and explain to them why such an upgrade was beneficial to everyone. Luckily, once we were all on board and began enjoying the impactful, positive changes, there was no going back. Some of the improvements we have enjoyed:

  • Tasks are better defined and easier to accomplish.
  • Planning is more straightforward, making our releases more frequent and with faster-delivery feedback.
  • With increased transparency, all parties involved have access to the roadmap and changes can be easily picked up and implemented.

In a similar manner, when we took a more hands-on approach to DevOps, we wanted to make sure the transition would be accessible, easy to follow, and accompanied by guidance and support. We were already on Azure, using cloud infrastructure for project management and provisioning the resources we needed. Still, fully embracing DevOps takes time, is a continuous job, and necessitates constant testing and adapting to come up with the best course of action for each situation.

Yet, initially, our main objective was to integrate certain practices that would ease and streamline the whole working scheme. We focused on the technical implementation of DevOps, holding internal presentations and meetings where we introduced the new requirements, tools, and how they could be included with each team. We created performance metrics to monitor how performant teams are, where they needed assistance, and how we could intervene to help. At the moment, we already enjoy faster releases, CI/CD pipelines, continuous integration with the aim of fully achieving continuous delivery.

We couldn’t neglect the cultural impact that comes with these technologies. That is why we are constantly building our mindset around psychological safety, how to enable autonomous teams, and rethink the team leadership structure to encourage the teams to work towards a common goal through their vision and values, mindful of their needs.

So far, we have shown high performance in technology delivery and, ultimately, we wish to maintain our high organizational outcomes that lead to our clients’ success stories. With each day that passes, we become better and better at understanding these practices and how to efficiently implement them to innovate and stay on top of our game.

All things considered, it is undeniable that both Agile and DevOps shook things up by breaking through traditional ways of tackling software development. Together, Agile and DevOps have a considerable impact on how individuals approach collaboration models and how effectively they implement the needed digital transformation.

Share this article on

Join us

Reach your full potential and value. Visit our Careers page.