Athena

Athena is a technophile and Antra’s content crafter, specializing in innovative technology and creative writing. She covers the latest trends,helpful tips and insider secrets to reaching career goals. Her other interests include growth hacking, surfing and science. Enjoy reading her posts!

Home Automation: Amazon Is Leading, But Is Google On Pace To Compete?

No comments

Internet has changed the way we live and operate in the world. It is now changing the way that we live in our homes. Yes, we are talking about home automation and IOT (Internet of things). Kicked off with the Bluetooth connectivity, home automation has garnered a significant attention for its wide range of innovative approaches and smart home solutions that make a person’s life much easier. There have been continuous improvements made to home automation category in the meanwhile, which radically changed the way users live in today’s world.

AthenaHome Automation: Amazon Is Leading, But Is Google On Pace To Compete?
Read More

Increase Efficiencies in DevOps to Accelerate Software Releases

No comments

Background:

Several enterprises have moved towards agile and DevOps model but have challenges in taking the advantages of these models. Most of these enterprises have legacy methodologies and technologies to release software that cause challenges in transitioning to modern efficient models. Our client is a global software company that serves financial services customers. Our client had several inefficiencies in their software release management that were causing delays in software releases and customer disappointment.

Challenges

Client had challenges in releasing the software on time as planned. First, there was no standardization in the release management process. The current release management process was partly automated with weaker accountability. The pass/fail criteria for a release every sprint in the SCRUM process were weakly defined and the overall team lacked transparency to make quick decisions on the issues. Second, there were several independent legacy technologies being used to build and release the software to N+1 environment. The manual handshake was not coordinated well and there was a clear need for automation of not just the handshakes but automating the critical test cases and regression test cases. There was no tool that orchestrated the release process end-to-end that gave transparency not just to developers but also to the product/business team. Finally, there were gaps in understanding between business and development/release teams on how and when the finished releases would be launched to the customers.

Solution and Outcomes

Antra captured and analyzed the current development, build, and release process to identify the key inefficiencies that were hindering high quality software releases to their customers. We participated in client sprint cycles and interviewed the team to understand and identify the process flows, tools used, and the key issues currently faced.

Antra’s solution composed of

  1. Standardize the software release management process to reduce complexity and increase transparency and accountability
  2. Automate the test cases and the release management process using industry standard technologies
  3. Establish a agile framework to prioritize and release the business features with the proposed automated solution

The solution offered:

  • Increased software release throughput by 70%
  • Faster time to market on business features
  • Faster regression cycles and Improved software quality

Antra solution also consisted a clear roadmap with an analytical and ROI model that demonstrates desired software release model with the solution. Antra proposed and implemented a test pilot software release with the proposed solution to demonstrate the benefits in the ROI model presented.

AthenaIncrease Efficiencies in DevOps to Accelerate Software Releases
Read More

Automating Continuous Software Delivery Across Multiple Applications

No comments

Background

Our Client is a financial institution that has several customer and internal software applications. The software development teams have an existing platform and a framework to develop and build these applications and the operations team was responsible for the infrastructure and tools to release the applications. The overall platform had the tools to build, release, track issues and notify, and governance of the releases. Client had automated the tests and used continuous integration tools (Jenkins) to automate the code integration and the build of the applications.

Challenges

The key challenge for the team was that the release process of a single application was taking around 10 to 15 days and multiple application releases made the management of the releases complex. The existing automation tools such as Jenkins helped Client accelerate some of the build and the release process, however, the overall orchestration process took significant time that included change management, issues analysis and decision making, issue resolution approval process, and rapid deployment of the code on to N+1 environments. In case of errors during the build process, rollback, issue resolution, approval, and redo, build were taking significant time. These integrations are at large done manually that created many dependencies and increased wait time. Deployment tickets were raised and the wait times were up to 24 to 48 hours to get the tickets resolved. In addition, there were no feedback and notifications to all the stakeholders. The resolution times sometimes took longer to analyze the issues during the build and make a decision to promote the build to N+1 environment.

Solution and Outcomes

To ensure continuous delivery, all the tools (including change management, release management, and ticket management) had to be integrated to optimize the DevOps model. To reduce wait time between promoting the build, a solution with automated validation of the errors was required. To manage multiple releases effectively and promote collaboration, a visual easy-to-use interface was required for orchestration. The solution involved analysis, design, and deployment of the tool along with the process changes that enabled complex multiple deliveries and orchestration of end-to-end application life cycle. Outcomes include:

  • Reduced build and release time to less than a day from 10 to 15 days
  • Increased deployments across multiple applications (more than 10 a day)
  • Reduced wait time between build promotions
  • Reduced dependencies and improved team collaboration
  • Improved continuous delivery across multiple applications and environments
  • Improved end-to-end process
AthenaAutomating Continuous Software Delivery Across Multiple Applications
Read More

Agile FAQs

No comments

agile_faqs_featured_image

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

1. What is Agile?

Definition

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

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

What is the History of Agile Software Development?

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

Brief History of Agile Software Development or Agile Manifesto

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

2. What are the Four Values of Agile Manifesto?

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

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

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

3. What are the Benefits of Agile?

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

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

4. Are Agile and SCRUM the Same?

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

5. What are Other Popular Methodologies of Agile?

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

6. What are 12 principles of Agile Software Development?

The 12 principles of Agile Software Development include:

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

Find more about these 12 principles behind the Agile Manifesto.

7. What are Popular Certifications in Agile?

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

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

8. Is Agile Only Used in Software Development?

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

9. What is SCRUM?

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

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

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

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

SCRUM Alliance

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

Agile Alliance

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

Agile or SCRUM Google Communities & User Groups

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

Agile and SCRUM Meetup

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

Scrum.org

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

Stack Overflow

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

ScrumHub

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

11. What are advantages and disadvantages of SCRUM?

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

Advantages:

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

Disadvantages:

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

12. What are the Roles in Scrum?

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

scrum_communication_model

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

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

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

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

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

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

 

 

 

 

13. What are the Meetings in Scrum?

Scrum practice has four primary meetings. Here they are

Sprint Planning

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

Daily Scrum

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

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

Sprint Review

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

Sprint Retrospective

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

14. What are Artifacts and Tools in Scrum?

Artifacts:

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

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

Tools:

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

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

Managed Multiple Complex Releases With Agile & Reinforced Effective Communication

No comments

Background

Our client is a reputed financial institute that holds multiple internal projects while running these projects almost simultaneously. The PMO feels pressured to track, report, manage, change control, and efficiently learn from experience and transition to Agile due to ineffective communication between multiple projects. As a consequence, they failed to improve the quality of their deliverables, track the status of projects, couldn’t solve unexpected issues within the project or SDLC (due to the implementation of waterfall approach), and there were plenty of post ticket release issues where they failed to work iteratively. Our client wanted to manage these projects and individual applications with ease by deterring those conventional processes and rigid waterfall models which are not able to streamline the complex tasks and overcome the existing challenges.

Challenges

Management of multiple projects with dependencies on each other has become a nightmare for PMO. To cope up with this problem they need to embrace new processes and transparent approaches – Agile transformation and methodologies that was indispensable for managing these projects effectively and sustaining growth. Here are some of the key challenges seen in the organization:

  • Waterfall models and processes being used internally hindering the productivity
  • A lack of effective communication among teams and project members
  • Resistance to embrace change and failing to create a culture of collaboration

Solution and Outcomes

We helped client to quickly build an efficient team involved staffing full-time employees from multiple industries as the projects demanded. And this hiring was done in a higher volume than ever before in their organization. We delivered the right quality and prolific candidates the client needed for all of the internal projects they have.

We looked into reworking requirements, regrouped the team members based on their skills and commitment, and our client has set to start implementing Agile. We offered business advisory services to help their organization deal with the challenges in management and interpersonal relationships. In addition to deploying physical technologies, we also helped the entire organization practice Agile methodologies through our performance transformation initiatives. Our industry-focused approach was started with a pilot program and continued as a 12-month engagement. The enterprise-wide Agile transition has been successful and the transition being ended up within the stipulated budget.

All the internal projects and several applications were a success, the new Agile team that was formed through our IT professional services practiced Agile in the way that was planned. The quality was better, productivity increased, and there was greater visibility and self-learning among the team members.

Intense Agile training for effective communication and the effort that has been put to regroup the team members were the two crucial

AthenaManaged Multiple Complex Releases With Agile & Reinforced Effective Communication
Read More

Leverage Microservices and Machine Learning to Improve Patient Safety

No comments

antra_microservices_machine_learning_whitepapersThis researched white paper by Antra Inc. on Machine learning will offer deep insights on challenges and solutions for patient safety seen in a reputed company. One of our consultants, who worked with the company, has helped us in developing this white paper. Download to know more about how the company leveraged Micro Services and Machine Learning, thus improved Patient Safety.

readmore

AthenaLeverage Microservices and Machine Learning to Improve Patient Safety
Read More

Electric Cars Part 2: A Complete Switchover To Electric Cars – What Would The World Be Like?

No comments

THIS IS THE CONTINUATION OF OUR PREVIOUS POST – A WORLD OF ONLY ELECTRIC CARS, IS IT GOING TO BE A REAL GAME-CHANGER? WELL, IN PART 1 OF THE POST, WE HAVE PRESENTED SOME OBVIOUS CHANGES IN THE INDUSTRY IF ALL THE CARS IN THE US WERE ELECTRIC. IN THIS POST 2, WE BRING THE TOPIC TO A CLOSE BY ANALYZING THOSE CHANGES AND BY UNDERSTANDING THE ADAPTATION OF ELECTRIC VEHICLES IN A BIGGER PICTURE.

AthenaElectric Cars Part 2: A Complete Switchover To Electric Cars – What Would The World Be Like?
Read More

A World Of Only Electric Cars, Is It Going To Be A Real Game-Changer?

No comments

world of only electric cars

At Antra, we get excited about technologies that drive innovation and we strive to enable the enterprises with tools and resources to support the innovation and shape further newer ideas. We always love to talk about the changes that these innovative companies bring in and get a flash of inspiration.

One of our clients who happen to work with a electric automaker recently initiated a conversation about a popular topic these days, how the automobile industry is being disrupted and how the electric and hybrid cars such as Tesla, Nissan Leaf, Chevy, and Ford are changing the consumer world. This conversation has inspired a transformational thought – “World with only electric cars” – triggering in detail on some obvious changes, pros and cons of electric vehicles.

In this article, we are presenting some fundamental information gathered to discuss about what changes we ought to see today and expect to see tomorrow. Read on.

AthenaA World Of Only Electric Cars, Is It Going To Be A Real Game-Changer?
Read More

Why Employee Engagement Is Important In Modern Work Space?

No comments

employee-engagement-imageThis is a post contributed by one of our new employees.

Empowered employees produce more and create a positive environment in the company! I wonder how many companies consider and execute employee engagement as a strategic activity.

I have been working in the IT industry for over 4 years and was looking for new opportunities recently. I was fortunate to get some good offers. In all honesty, money wasn’t always the priority or the concern of moving on to next job chapter. However, I was rather looking to join a company where I could enjoy my work with utmost comfort and freedom. Right now, the new work space seems peaceful and “work-worthy”. But what made the difference? Is it the company or just me? And this is when I approached a friend who works in HR. Our coffee chat turned to be very informational with discussion around Employee Engagement Strategy and here are some key points that I wanted to share.

AthenaWhy Employee Engagement Is Important In Modern Work Space?
Read More

Transaction Management Fundamentals in Java – Spring & EJ

No comments

This image show a picture about Java-Spring- EJB

Transaction Management is one of the fundamental topics of how an application manages data and below is an overview of how transaction management is handled using Java as the programming language.

What is transaction management?

In simple terms, a transaction is a group of tasks that must be processed together. Transaction is indivisible and must be executed as a whole; otherwise the data integrity is violated. For example, a banking money transfer request involves deducting money from the source account, transfer the money into an interim escrow account, and finally transfer the money to the destination account. And all these “tasks” need to happen together and otherwise, the money is “lost” in transaction. And data integrity is violated.

Transaction Management in Java EE world:

Now, let’s talk about tasks of a transaction in Java EE world. In the Java EE world, we are referring to group of SQL statements or processing of JMS messages.
Both Spring and EJB have provided comprehensive support for executing transactions in Java. The usage of spring is simpler as compared to the usage of EJB, while EJB is definitely the official Java EE standard. Both technologies have their own strong points and the usage can be sometimes interchangeable.

JDBC is definitely the first database API option for any Java developer. The transaction management using JDBC can be illustrated in simple and and boiler-plate terms:

  • Set auto-commit to false

  • Execute the sequence of JDBC SQL statements

  • Manipulate the data using the result set

  • Do commit OR rollback back for any exceptions

Transaction management “ways” using various Java APIs:

  1. The transaction is clearly controlled in the JDBC based program and no wonder it is called “Programmatic Transaction Management”. As the business logic grows complex, the code grows complex and, managing transactions in the program becomes difficult.
  2. Spring’s transaction management was introduced to reserve the flexibility of manual control of the transactions as compared to automated part of programmatic transaction management. Spring’s TransactionTemplate or PlatformTransactionManager API can be used for this purpose.
  3. EJB provides Bean Managed Transaction (BMT) to handle complex transaction commit and rollbacks to avoid major pitfalls. UserTransaction API is invented for the similar purpose of PlatformTransactionManager API in Spring.

Comparison and Analysis of these “ways”:

Since most of the time the transaction management logic is straightforward, most of the users prefer declarative transaction management. With the declarative model, developers usually don’t have to write any code related to the transaction itself. All we need are some annotations and configurations. It is easy to use declarative transaction management in Spring by just put @Transactional and @EnableTransactionManagement into the code. Under the hood, Spring implements it via APO proxy. The caller of one transaction actually invokes an AOP proxy where the transaction is created on the way in and committed or rolled back on the way out. If everything goes smoothly, the transaction will be successfully committed. In the default configuration, Spring will mark a transaction for rollback in the case of Runtime Exceptions. And of course this can be overridden by doing configuration changes to make Spring rollback the transactions on any exceptions. Similar to the Spring’s declarative transaction management, EJB provides the better worry-free container-managed transaction (CMT) demarcation. With CMT, the EJBs automatically become transactional by default. The application server is in charge of commit and rollback. Also in EJB world, one can use TransactionAttribute annotation to specify the TransactionAttributeType.

Programmatic transaction management is better only when a small number of tasks are involved to complete a transaction. On the other hand, if your applications has lots of transaction operations (tasks) or involve multiple resources, considering declarative transaction management is worthwhile.

A distributed transaction is one that involves more than one transactional resource. For instance, a transaction having operations in two different data sources, or one transaction writes to database and also need to put a message to a messaging middleware. There are many solutions to resolve this situation where atomicity, reliability and safety are the main criteria.

Spring provides a ChainedTransactionManager (CTM) API using 1-phase commit. Basically, no-XA recourses can be used without changing much of the existing transaction managers. However, this is not infrastructure failure tolerant. And hence the 2-phase commit mechanism seems to be a better solution. Spring also provides full support of JTA by using JtaTransactionManager API (JTM). And, the application server handles the XA-resources. However, this way requires more configuration changes as compared to CTM. CTM is easy to implement with the help of JTA. Just like how CTM is configured using set transactionAttribute and JTA takes care of the XA-resources’ commit and roll back atomically.

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

AthenaTransaction Management Fundamentals in Java – Spring & EJ
Read More