Skip to main content Skip to main content
Skip to main content

ACI's application development team is an established developer of advanced software, including numerous analysis and design projects, developmental prototypes, and enterprise software solutions. Our niche has been to bridge the gap between the introduction of emerging information technologies and their effective, profitable use in commercial enterprises. One of this team's "value adds" is the availability of technology, often including source code, that has already been developed and can be used to accelerate development and lower risk on efforts performed for our customers.

ACI's broad repertoire of methodologies, procedures, and technical approaches adds efficiency and control to software development projects. We are keenly aware of what is involved in the development and deployment of successful applications and, thus, the importance of thoroughly defining the objectives, features, and measurable benefits before the development process begins. ACI has established a reputation for developing practical, cost-effective systems using a variety of database, interface, and connectivity technologies that work. Our down-to-earth, problem-solving approach has received high marks from our customers. This, combined with our specific experience in designing, developing, and deploying advanced custom applications, makes ACI an irreplaceable resource for any project.

We use a variety of scripting and programming languages and database options to make the best use of available technology. They include Python, .NET, Java, Swift, PHP, REST-based Web Services, SQL Server, and MySQL to name a few.

Agile

Agile Development

ACI utilizes an agile development process as the framework for custom web-based solutions. The agile development process is based on adaptability that features continuous client involvement through constant feedback and task prioritization. This process supports discovery and identification of new or refined requirements throughout the entire development life cycle and provides the necessary infrastructure to support and implement changes. There are multiple agile methodologies, but at ACI, we prefer Scrum.

Scrum utilizes three key roles:

  • Product Owner
    • This person is responsible for defining project requirements and prioritizing features. The customer serves as the Product Owner.
  • Development Team
    • This person(s) is responsible for planning tasks that can be completed within a sprint; providing expertise to design & develop a final product based on Product Owner’s descriptions. ACI’s team would fill this role.
  • Scrum Master
    • This person removes impediments in projects and helps adopt developmental practices. This role would be filled by ACI.

One of the first steps in utilizing an agile development process would be to create the Product Backlog. This is driven by the Product Owner to provide ACI with an ordered list of all features to be developed. This list would be reviewed and arranged from high priority to low priority. Items can continuously be added to the Product Backlog and feature prioritization can be changed throughout the development cycle. Once the Product Backlog has been reviewed & prioritized, the development team meets for Sprint Planning. This meeting occurs at the start of a new sprint (development cycle that typically lasts two weeks). The Development team reviews the backlog, sets goals for sprint, and identifies tasks to be completed within sprint. To help organize and communicate project details, ACI uses Trello. Trello is a free, web-based tool used to create & manage Scrum boards.

At the end of the two-week sprint, the team schedules a client demo to showcase the completed work to the Product Owner. Feedback from the Product Owner is collected and added to the backlog as needed. The goal at the end of each sprint is to deploy a potential deliverable. During a sprint, the team holds scrum meetings. The Product Owner is encouraged to attend, and they should not exceed 15 minutes. The goal is to share with the team:

  • What was accomplished yesterday?
  • What will be accomplished today?
  • What are my blockers?

It is the responsibility of the Scrum Master to clear/resolve the blockers for the development team. Utilizing an agile development process to create custom software allows the client to refine project goals and approve changes to budget or schedule on an ongoing basis.

.

Learn More About Agile DevelopmentRead Less About Agile Development

Database Management

Database Management

ACI's proficiency in database design and development is derived from over 70 years of cumulative developer and administrator experience. Our skill sets cover many different enterprise and freeware database platforms including MS SQL Server, Realm, Mongo, PostgreSQL and MySQL. Our solutions are used by Fortune 500 companies, higher education institutions, and United States government agencies. ACI's adeptness in the database arena leads to high customer and end user satisfaction by providing both an operationally efficient and scalable database solution.

eCommerce

eCommerce

ACI can add eCommerce functionality to your website. Our preferred platforms are Stripe or Authorize.net, both of which are fully PCI Compliant. PCI compliance means the eCommerce services follow The Payment Card Industry Data Security Standard (PCI-DSS). This is a set of requirements outlined to ensure all companies/businesses that process, store or transmit credit card information do so in a secure environment.

Additional information can be found at:

Stripe:

Authorize.net:

Contact ACI today to discuss options for adding an eCommerce solution to your website.

Learn More About eCommerceRead Less About eCommerce

Test Driven Development

Test Driven Development

Test driven development is frequently used in agile development especially scrum. At ACI, we utilize unit tests during development. Unit tests are written before the code is created. Code is written until the unit test passes. Unit tests are rerun if code is updated as well as when code is checked into the repo. If a unit test fails, then the issue must be resolved before deployment can be successful. This allows for early detection of issues.

Schedule a Free Consultation!