Tag Archives: Software Development

DevOps

The Impact of DevOps Adoption on Teams

Companies operating in the field of software development have ushered into an era of stiff challenges and expectations, unprecedented till now. Possessing the qualities of agility, accuracy and speed simultaneously are becoming imperative for survival rather than a means of maintaining a competitive edge. Under the circumstances, a DevOps culture provides a flexible, efficient approach of standing up to the demands. It does so by following a model that delivers results leveraging the dependencies that exist between the software development and operations aspects of software delivery. It balances responsibilities more evenly than in a traditional waterfall model, where developers simply turn completed code over to those in charge of operations. DevOps also establishes procedures to ensure that all team members have insights into application performance, which provides benefits such as greater collaboration and engagement between team members.

……………………………………………………………………………………………………

Improved Collaboration

Traditional software development happens in phases. There are teams mapped to each phase and each team is entrusted with the responsibility of playing its part in the successful completion of the phase it is involved in or responsible for.  The result of this approach is that the ownership of a team gets too confined only to the successful execution of the part it deals with. Thus, each team tends to be most concerned with achieving its own objectives instead of meeting the organization’s ultimate business goals. As long as projects get executed successfully, the fissures that exist beneath do not come to the forefront. It is only in the moments of crisis that the lack of synergy becomes apparent and sometimes takes gigantic proportions resulting in the partial or complete derailment of projects.

DevOps neutralizes this possibility completely. The approach requires all team members to be equally dedicated in meeting the broad goals while also focussing on their individual ones. This leads to improving collaboration between people across the development and operations teams. This model eliminates the possibility of working in silos. Members across teams remain fully committed to the software throughout its development life cycle to ensure that their project’s overall goals are met. Accountability for successful delivery lies with all. This compels employees to get more involved in working together.

More Engagement

One of the primary goals of DevOps is to shorten the development life cycle while still delivering software that meets business objectives. The shorter development cycle essentially means a higher frequency of code releases followed by exposing these releases to scrutiny for the detection of bugs within the code, infrastructure and configuration. The pace at which things get done is brisk. There are no slack periods for teams anymore waiting for their phases to begin. All this brings about a high degree of engagement for all the members involved in a project. And it can be intense at times. The results are equally impressive. Industry reports have indicated that the failure rate of organizations with a DevOps culture is 60 times lower than those that don’t.

Higher Efficiency

DevOps uses a workflow that emphasizes on continuous delivery (CD) and continuous integration (CI). The efficiency that gets infused results in software getting delivered faster and with a higher frequency. Automated testing and integration tools are also key elements in DevOps practices. It makes the IT staff more efficient by eliminating the need for them to perform repetitive tasks. Developers no longer need to wait for code integration processes to complete, which can otherwise get quite time-consuming.

DevOps platforms offer opportunities for improving efficiency and increasing the predictability of cloud-based solutions like Azure and Amazon Web Services (AWS). These platforms use a scalable infrastructure to reduce testing and deployment times by increasing available hardware resources during this period. They also provide DevOps as a service, such as Azure DevOps. AWS also provides a set of services specifically intended to help organizations implement DevOps practices.

Exposure & Learning

Employees are generally happier and more productive under the DevOps model, largely because it focuses more on performance than anything else. There are fewer administrative obstacles and greater sharing of risk, which allows individuals to blossom. Members in both development and operations teams prefer DevOps because they get exposed to multiple roles, resulting in their getting a better understanding of project execution and the business as a whole. This experience is more rounded, fulfilling and increases job satisfaction considerably.

Better Results

The improved collaboration between teams and the ensuing efficiency has a direct impact on reducing the time needed to build software. Collaboration encourages a proactive approach amongst team members in putting their act together. All this eventually reduces the time needed to bring a product to market. This benefit is particularly important in competitive markets where the ability to deliver software on time has a direct impact on the revenue and market share. With the DevOps approach not only is the speed looked after but also the quality of the outcome. It also increases customer satisfaction when they receive a comprehensive product sooner than expected, with all the promised benefits delivered quality-wise. To achieve this end goal can be a highly fulfilling experience for all the members involved in giving shape to the software.

……………………………………………………………………………………………………

A DevOps culture improves the collaboration between groups with historically distinct roles, especially people in software development and operations. This practice provides many other benefits that generally result in the faster delivery of software. DevOps practices also improve the engagement of team members by making them responsible for projects throughout their entire life cycle, rather than a specific phase of the project. The increasing availability of tools is making it easier for organizations to implement DevOps practices, allowing team members to automate many of the tasks needed to develop, test and maintain code.

……………………………………………………………………………………………………

If you have any queries in this field, talk to Mindfire Solutions. For over 20+ years now, we have been the preferred Software Development Partner of over 1000+ Small and Medium-sized enterprises across the globe.

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Thoughtful Programming Can Save Days. But Do You Have Time For It?

 

Today I will share an experience in the effects of inflexible software, actually caused by hard work!

We use a SaaS service for our payroll process. Last month, we needed to add a salary component for selected people. We decided that instead of adding it as the pre-defined “Bonus” component, we would name it “KMBonus”.

All good till now. The payroll system allows addition of custom components. Then you download a blank Excel file and upload it back after inserting figures.

We downloaded the template which had a column for KMBonus, along with columns for every other component. This sheet was filled for KMBonus and uploaded back. It failed. No error message, nothing – the page just refreshed silently.

What was wrong? Was it a problem with file format? File size? Number formats? Did columns or sheets or anything get rearranged by mistake? This took a couple hours. When nothing worked, a support issue was filed. It was a weekend.

On Monday, support tried to understand what was wrong. After few hours, and with the file being analyzed, support figured out what was wrong – the uploaded file couldn’t have empty cells/columns while being uploaded back! So, although you wanted to update only KMBonus column, you had to either insert zero into every other cell everywhere, or delete all other columns.

First I was upset – that a simple error message, or documentation on expected file format, would have helped avoid this. Then I realized something else.

Entire payroll for hundreds of people got stuck for a couple days, because the programmer had worked hard – but harder than necessary.

Think about code structure. It would have taken more work, more effort, to put in all this validation – “Check all cells have numbers, ensure none are blank!” Sure, requirements may not have covered this case, so as a programmer I am free to do anything. But if I am free, do I do things after thinking about it – being thoughtful about work? Do I do things for the user – being thoughtful about users? Or do I do things that are just technically correct? Instead of tightening by validation, a simple conceptual foundation would have reduced the programmers’ work and rendered flexibility to user!

Imagine if the conceptual foundation had been: any blank cell means nothing is to be done. If something has a number, update component to that number. Simple.

So when you get a sheet with many cells blank, entire columns blank, ignore the blank ones. And process only the ones with numbers. Did I say simple?

Think of code. This is actually less work, is conceptually clear, and means much more to user! Smart work versus hard work. Saves days of effort for the programmer. And, in our example, a difference of days in payroll processing!

Thoughtful programming is based on common sense. Thoughtful programming reduces work. Thoughtful programming can save the day. Days.

 

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Do Industry Technical Certifications matter?

My first day at Mindfire and I already have an inferiority complex that all my peers, colleagues are Adobe certified. I have the experience in the same technology but not the certification. Which one is better? Or is there a better one? Or we need both? Not able to answer the question, first I decided to live in my comfort zone, with what I have and “prove myself with quality work”. But the second day again went with the same dilemma, looking at sample resumes that titled Adobe certified, in our company’s format.

Hmmm, I have the experience and knowledge, then why this hesitation of taking the examination for certifications? Well, these days when development platforms have syntax “help” and there is “Google maharaj”(Google GOD) for rescue, maybe I didn’t trust my knowledge enough and fear of not clearing the exam stood by me.I was still in two minds as I went back home, where my daughter was going to learn skating. As soon as she wore her skating shoes, she fell badly and my elder daughter said “Diya, get up! Dar ke agey jeet hai (popular advert slogan, which in English roughly means “to achieve victory, you have to defeat fear within you“) With a smile I realized this was my moment of learning from my kids, and decided to flush my fear and go for the certification. Hands-on experience certifies that I have the working knowledge to face a variety of tasks, which may or may not have training programs as prerequisites. At the same time, the certification itself would exhibit a determination and dedication to learn and improve.

A credential alone doesn’t guarantee real-world job skills, but in shortlisting and selection process, it increases the odds that the person is competent. With an ever-growing IT market, companies know competitive advantages help clinch deals and technology certified employees can be selling points. Following are some benefits of an academic credential, that I realized once I decided to take the certification and thought of sharing it with people like me who are still fighting to venture out of their comfort zone.

  • Broadens your knowledge scale: Preparing for the certification forces you to fill the gaps in your knowledge. There are some theories which you haven’t used in the actual projects and hence may not have detailed understanding of – the exam forces you to know these thoroughly.
  • Shows you the difference between your perception and reality of your knowledge. There were so many concepts that you know superficially but preparing for the certification makes them clear.
  • Earns respect of your peers: When my colleague had mentioned that he is Adobe certified, my first reaction was “Wow man!” – it makes you stand out of the crowd.

Having said this, I just don’t want to pass the exam with the easy means available, but by increasing my knowledge base. There are people who see certificates as badges to adorn on resumes – They are real assets only if you get them by working hard for them and are superficial if you have grabbed them through easier means.

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •