Architecture Owner, the Agile Software Architect at CCBill

As CCBill started to adopt agile software development methodology, questions arose regarding the roles and responsibilities of the software architect. Does it still make sense to have software architects?  If so, how do software architects fit within the agile methodology, process and framework?

Software Architecture before Agile


CCBill followed the waterfall development methodology before adopting the agile methodology.  The software architects would produce the foundation and component architecture of a software project.  The foundation architecture defines the structure of the software system, including the major components and the relationship among the components in the system.  The component architecture provides detailed information pertaining to how each component should be implemented.  Once the architecture is completed, it is handed-off to the development team for implementation.

In addition to project architecture responsibilities, the software architect is also responsible for defining the enterprise architecture aspect software development, including standards, principles and cross-cutting concerns.  The standards, principles and cross-cutting concerns are applied to all software projects.  Examples of standards include using Java as the programming language, AngularJS as the front-end web development framework.  Examples of principles include “loose coupling” and “separations of concerns.”  Examples of cross-cutting concerns include standard approach to logging, authentication and authorization.



By adopting the agile methodology, the architecture must become evolutionary, which means designing for early feedback and quick adjustments as new knowledge is gained. Within a self-organizing team in agile, the architecture should not be defined by a single person, but by the team as a whole.

Scrum, SAFe, DAD and the role of Software Architect


Developed primarily for complex product development, Scrum methodology does not define any architecture role. Namely, the general Scrum framework defines the following three types of roles:


1. Product owner, a visionary whose responsibility is to maximize the value of the work being done by the Development Team;


2. Scrum master, a servant-leader to the Scrum Team whose responsibility is to ensure Scrum is understood and adhered to by those inside and outside of the Scrum Team;

3. Development team, a self-managing group of people whose responsibility is to deliver a potentially releasable product increment at the end of each sprint. 

The roles of architects, however, are defined in more mature and scalable agile frameworks, such as Scaled Agile Framework (SAFe) and Disciplined Agile Development (DAD).  For instance, DAD defines the role of the Architecture owner (AO), which is what we adopted at CCBill.



Roles and Responsibilities of an Architecture Owner (AO)


Serving as the software architect within an agile development team, the Architecture Owner (AO) has the following responsibilities at CCBill:

Primary responsibilities:


·         Envisioning high-level/foundation architecture
·         Facilitating the creation of architecture
·         Breaking technical decision “deadlocks”
·         Performing architectural spikes & proof-of-concept
·         Provide feedback for improving the agile process, practices and tooling
·         Defining the acceptance criteria for sprint
·         Add technical requests to user stories for prioritization

Secondary responsibilities:


·         Provide technical guidance and mentorship to the team
·         Code review

Shared responsibilities:


·         Document feature/component design and ideas
·         Document system overview
·         Coding

Traditional Software Architect vs. Agile Architecture Owner


The table below compares and contrasts the responsibilities of a traditional software architect and an agile architecture owner at CCBill:


In order to adapt the principles of agile, such as “evolutionary,” “early feedbacks” and “self- organization team,” the agile architecture owner focus on facilitation, collaboration and lean architecture documentation, while still providing the technical and architectural leaderships as expected from traditional software architect.

Goals of Foundation Architecture


Even with agile development, CCBill continues to value the importance of high-level architecture envisioning and planning.  Before the Development Team goes into the agile iterations, the architecture owner envisions and defines the foundation architecture to communicate the high-level structure of the system to be built.  The foundation architecture is similar to the “Intentional Architecture” and “Architecture Envisioning” in SAFe and DAD respectively.  Specifically, the goals of the foundation architecture are to:


       Provide a holistic view of the system
      Ensure well-thought plans to satisfy overall project goals
      Define component names to ease communications
      Serve as entry point to understand the system


       Embed architecture principles & standards in the system
      Separation of concerns
      Don’t repeat yourself
      Loose coupling
      Standard approach to handle cross cutting concerns (e.g. logging, auth)


As the systems are built, the foundation architecture is expected to change based on lessons learned and design decisions made during the agile iterations.

Putting It All Together


The following diagram depicts the overall process in agile and how the architecture owner fits in within the process:



As described in the previous section, before getting into the agile development iterations, the architecture owner defines the foundation architecture based on high-level project scope, user stories, and enterprise architecture (e.g. standards and principles).  As the agile iterations start, the architecture owner works closely within the agile team, providing leaderships by facilitating the architecture and design to fulfill user stories, and performing spikes and proof-of-concepts.

By embedding the architecture owner role within the agile development process, CCBill is able to ensure proper architecture vision, standards and principles are being employed within our product development , while allowing closer collaborations among the architects, the development team and the business owners.  This enables us to deliver products in a timely manner without sacrificing the architectural qualities of the products.

Author:

Seow Lim, PhD
Director of Enterprise and Solutions Architecture

Planned System Maintenance on April 14 and April 21, 2016

Updated: April 20, 2016

The CCBill team will be conducting a planned maintenance on the systems supporting our infrastructure on April 14 between 2:00 a.m. and 6:00 a.m. Mountain Standard Time (MST) and on April 21 between 12:00 a.m. and 4:00 a.m. MST. The maintenance is intended to update the hardware that manages our Ashburn, Virginia node transaction traffic and we expect no serious disruptions during the four-hour maintenance window. The traffic will be diverted to our other nodes to reduce potential user or transactional impact, but this may cause an intermittent connectivity.

Our team will work to ensure maximum functionality of the systems even during this time and we are thankful for your patience while we are resolving the issue. In case you experience any problems, we encourage you to get in touch with our service representatives via email at adminsupport@ccbill.com, a phone call to 800.510.2859 or our Merchant chat service

We are thankful for your understanding as we work on improving our systems to better support the needs of your business. 

CCBill System Maintenance Notification, March 3 and March 10, 2016

Post updated: March 9, 2016

In order to refresh and upgrade hardware that supports our Phoenix node services, the CCBill team will conduct a planned maintenance on our systems on Thursdays, March 3 and March 10, 2016 between 1:00 a.m. and 5:00 a.m. Mountain Standard Time (MST).

We are taking all the necessary steps to mitigate any potential disruptions and provide optimal systems to help your business operate during the maintenance window. However, intermittent connectivity may occur and we would like to ask our merchants for patience if they encounter such issues. Our teams are working to divert all the Phoenix node traffic to our global nodes, so that you and your consumers can normally continue using our services. We expect no downtime, but if you face any problems or unusual activities, our support teams are at your disposal anytime. You can contact us via:
  • Email: adminsupport@ccbill.com
  • Phone: 800.510.2859
  • Chat service
These regular updates help us improve our services and provide better experience for you and your consumers. We appreciate your understanding and we encourage you to get in touch with us with any comments or feedback you might have. 

Time to Simplify: Use a Single Payment Solution to Drive Retention

Simplicity is the guiding principle that has been pushing digital businesses forward, for decades. In design, it has been heavily promoted by such thought leaders as Steve Jobs, while many of us in the advertising world studied Volkswagen’s epic, and very successful “Think Small” campaign.

Although these examples refer to large-scale, consumer branding efforts, these brand icons illustrate the importance of simplifying human lives and revealing the great potential for businesses that aim to do so. In the crowded digital world, simplicity is particularly important and should be applied to every aspect of an organization’s or individuals online presence. We recently discussed this in relation to UX and UI design, but this idea is equally important for the process and flow of an online payment, as well. 

Connected consumers make their buying decisions in a matter of only a few seconds.  This is why the entire payment process needs to be as simple and intuitive as possible. By accepting different payment options for your website with the help of a single integrated payment processing solution, you can simultaneously grow your customer portfolio, while minimizing buyer conversion hurdles. More importantly, the right choice of a payment solution largely simplifies your life, enabling you to run a more successful business and overcome a variety of ecommerce challenges.

Facing the ecommerce payments challenge
 
Implementing the right online payment solution is not normally an easy task, even for those who have been running an online business for years. Experienced ecommerce business owners and online merchants also often face difficulties in finding a solution that allows them to expand their payment capabilities while staying resistant to dynamic payment challenges.

Combined with the idea of simplicity, these challenges may make it exceptionally difficult to find a solution that supports all these needs. After all, you do want your payment system to meet your users’ expectations, regardless of their location or preferred platform. This is why a trusted IPSP (Internet Payment Service Provider) is usually a solid, simple and cost-effective way to meet all these challenges.

Why you should choose an IPSP over merchant account? 
 
IPSP is an acronym that denotes a company which accepts payments on behalf of you or your company, enabling you to operate an online business without a merchant account.  Effectively, this allows you to accept payments via different methods (credit cards, bank transfer, etc.), as most IPSPs process payments through their own gateways, without requiring you to go through a credit check, or requiring your business to shoulder the risk of a merchant account. In addition, depending on the solution, an IPSP can also help you handle other back-office or marketing processes that are essential to increasing sales or affiliate revenue. 

Compared to a merchant account, an IPSP account is easier to obtain and manage, while the fees are often lower. Although both of these types of payment solutions have their advantages and drawbacks, an IPSP account is usually quoted as a comprehensive and more functional solution which provides a greater variety of the services you need to remain compliant and secure. In the case of CCBill, the multiplicity of services offered is one of the key advantages over a self-owned and operated merchant account. Here are some types of IPSP services:

-    Accepting multiple payment types. Compared to merchant accounts, an IPSP gives you greater flexibility with respect to the payment types you can accept on your website. A single CCBill account allows you to accept many different payment options, including all major global credit cards, debit payments, and electronic checks.
-    Fraud mitigation.  Though some merchant account and gateway providers package fraud tools with their service, many times those tools don’t do enough to fight fraud, and the use of additional sophisticated, third-party fraud protection and prevention algorithms becomes a requirement.  An IPSP, on the other hand, can handle even the most aggressive fraudulent attacks and keep your consumers’ data safe, and usually at no additional cost to you, as the merchant.
-    Processing up-sales and cross-sells. Thanks to comprehensive data integration, an IPSP allows you to process up-sales for your own products, as well as cross-sells with other merchant products more easily.
-    Customer support. IPSPs often handle the inbound and issue resolution for your end-user’s orders and subscriptions, thus allowing you the chance to focus on the areas of your business that you do best.
-    Reporting. Merchant accounts send you separate reports for each transaction, while CCBill uses a reporting engine called FlexStats that provides custom and detailed buyer and sales data on all facets of your monetization.
-    Transaction fees. With a merchant account, the single tier of fees apply to your entire offering, while with an IPSP such as CCBill, you receive the best rates for each particular offering.

Unlike most other payment services, CCBill is a trusted consumer name in the online world.  That earned trust is an important benefit for webmasters and merchants that want to build a secure brand and reassure their consumers that their buyer data and their transactions are completely safe.

How CCBill simplifies the payment process
 
Given the number of features offered, CCBill integration may seem complex to manage. However, since our teams and systems handle all the exhaustive processes, such as managing user accounts, payment processes and integrations, this simplifies your business and your life long term. More importantly, it allows you to simplify the payment and checkout process; resulting in more people buying the products or services on your website, which is a key to achieving the following goals:

1.    Increase sales. By allowing you to accept different payment methods, CCBill allows you to reach more consumers and grow your sales.
2.    Easily cross-sell and up-sale. IPSPs partner with different merchants to offer you an easy way to cross-sale, as well as allow you to up-sale your own assortment of goods and services in the payment process. CCBill’s solutions such as FlexForms and Merchant Connect help you significantly boost your visibility and sell more.
3.    Handle customer support. Minimize the time you spend on handling customer support questions and dedicate it to improving your offering.
4.    Analyze customer data. Using CCBill’s FlexStats, you can easily segment the most relevant customer data and analyze it to better understand your audience.
5.    Inspire consumer trust. The trusted CCBill service helps you gain that critical element so that you can increase sale conversion and retention, and establish your website as a secure resource.

In the realm of online payments, simplicity includes a variety of different notions, each of which contribute to creating an excellent user experience and satisfaction with the brand.  Even though the payment itself is a key step in the process of acquiring a customer, success in generating lots of sales depends on your ability to take a strategic approach.