KKA Technica is an Ann Arbor, Michigan-based IT consulting firm principally engaged in the design, development, and integration of high-performance, mission-critical information management systems. Since 1996 we've been providing high-quality, business-class software developed by a select group of seasoned, senior-level project managers, software engineers, and architects.
Start-up or established enterprise (or somewhere in-between), information technology likely plays an important role in your overall business plan and objectives – regardless of your industry. Perhaps you have a new development effort in the offing but your in-house resources are committed to other work, or perhaps you're already deeply immersed in a project and faced with a problem outside of your team's area of expertise and would appreciate having easy access to an experienced, objective, and respected professional (or, better yet, an entire team of professionals) with whom you can confer and brainstorm ideas / solutions. Possibly, your project has fallen behind schedule and you need talented resources who can hit the ground running and help you quickly get it back on track.
Whatever the situation, KKA Technica can help. Our engineering team has been built, piece-by-piece over the last 17 years, with one goal in mind: to assemble a team of not only talented engineers, but moreover, one in which all of the pieces work beautifully in concert. We are seasoned IT professionals – whole systems thinkers who add significant value to organizations in a wide array of information technology-related areas, including:
Custom Software Development outlines our approach to software development (specifically where new initiatives are concerned) – we touch on some of the many types of applications with which we have significant experience and explain how our talented engineers can reduce both your development costs and your time-to-market.
Like most organizations yours has probably made (and likely continues to make) significant investments in IT but perhaps you feel those investments are not providing the returns you expected. If so, take comfort in knowing you're not alone. You can also take comfort in knowing that in the right hands those returns can be realized. KKA Technica can help you extract more value from the investments you've already made in information technology – learn how in IT Asset / Investment Management.
Finally, in Consulting Services we show you how leveraging our experience in all areas of information technology can be of significant and long-term value to organizations that understand the value of establishing a partnership with an established group of seasoned IT professionals. If you're only in the market for turbocharged IT brainpower at this time we can inject high-value insight into your decision-making process.
We operate in all phases of the systems development life cycle so you can focus on your core business while we handle your information technology needs as a trusted and mature partner; our experience sets us apart.
KKA Technica designs, constructs, and delivers world-class applications both large and small for clients in some of the most demanding arenas such as energy, banking, health care, logistics, and retail.
While we carefully monitor changes in our industry we utilize only mature, best-of-breed technologies such as Java, .NET, PHP, Oracle, SQL Server, XML, etc. – no experiments, trials, or risky flavor-of-the-month ideas here. We employ agile development techniques throughout the development cycle and we religiously follow best practices. As proven technologies advance we ensure each new round of our applications is more reliable, more secure, and more performant than our last.
Our software design and development services include, but is by no means limited to:
While we firmly believe in the principles and ideas behind agile software development practices we work – as you might suspect – with whatever methodologies our clients are comfortable with (ours is not to proselytize but to produce). That said, on our own projects as well as those on which we've been directed to select a methodology we employ agile development techniques, and for those of you who may be unfamiliar with agile software development the Agile Manifesto provides the core tenets:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
Agile development methodologies promote collaboration and teamwork and these are two important keys that drive successful software development projects – building software is first and foremost a collaborative effort. Ultimately, our goal is to help you achieve your goals, and we can only do that if we work together (or to paraphrase Tom Cruise in Jerry Maguire, when you "help us, help you").
Keeping in mind that agile means adaptable and not without a plan, our plan involves gathering as many of the requirements as possible in the initial development cycle because design decisions for the core application may be affected by these requirements. Once the core has been developed and tested, however, our build / test / deploy cycles are typically four weeks. Think of these cycles as "feedback loops."
Iteration cycle length aside, the following phases are involved:
Our collaborative and iterative approach to software development translates into lower costs, fewer risks, reduced time-to-market, higher quality software, and most importantly, growing businesses and happy clients.
Whether we're building a HIPAA / PHI-compliant EHR / EMR system complete with thermal imaging capture and analysis tools (Java), a custom e-commerce site with an integrated call center application (.NET), or a reconciliation and settlement management system for an international logistics company (PHP), our work always begins with fully understanding the requirements and your goals / objectives – it's only after we've acquired the target and we understand how success will be defined for the project that we move forward.
Every solution, even the simplest one, must go through a formal requirements gathering phase at least once – to bypass this phase altogether would only invite trouble. Once the primary requirements and functionality points are defined, however, understand that it can be costly to attempt to "build it on paper" – much time and effort can go into discussing minutiae and attempting to nail down every last requirement (this is one of the primary ideas behind agile software development).
Once the requirements and primary functionality are agreed upon wireframes / mockups are developed to provide both confirmation that the requirements are fully understood as well as clarity (and ultimately agreement) on how those requirements will be fulfilled by the application. Not surprisingly, this phase elicits much feedback as each person involved typically has differing ideas on how the requirements should be presented to the users of the application.
Again, it's not practical to expect that all requirements can be identified and collected during even the first two development cycles – many are unknown even to the client; moreover, a fair percentage of the known requirements will change (or be eliminated altogether) once the application structure and primary functionality is in place and working, regardless of how many rounds of requirements gathering and mockup reviews you go through to uncover them.
Unfortunately, there's no such thing as a silver bullet / one-size-fits-all technology. .NET (Java, PHP, [insert technology here]) is not the best tool for every project – each technology has advantages and disadvantages and these may be magnified in different scenarios.
Many factors will play a role in the technology decision, not the least of which is resource availability (e.g., perhaps yours is a Java shop). Naturally, we'll take all of these factors into consideration when we make our recommendations.
If you've already been through the technology selection process and have made a decision, outstanding. If not, understand that when you ask a .NET (or Java, or PHP, etc.) development firm to make a recommendation on the best technology for your particular project it's unlikely they'll suggest anything other than what they work with ("When the only tool you have is a hammer..."). Clearly, the smart money is on partnering with a firm that not only works with multiple proven / mature technologies but also has years of experience and talented resources in each one and thoroughly understands their pros and cons and when to apply them.
If you're considering a new project and you're looking for talented resources to help bring it to life, consider this: multiple studies* have concluded there are order-of-magnitude productivity differences among senior-level programmers (i.e., those having at least seven years' experience). Generally, these studies agree that a ten-fold difference between the most productive programmers and the least productive is not uncommon.
We suspect we'd not be going too far out on a limb to suggest that even a two- or three-fold increase in productivity would reduce your payback period on future projects significantly and may well make projects which were previously considered too costly to produce now viable.
UAT is a non-trivial part of the development process. As suggested by its name this phase requires a commitment of time and effort from the target end users or a surrogate group. Perhaps somewhat surprisingly, the risks to the project can be high during this phase – often times the testing group is unwilling to make the commitment necessary to complete these tests satisfactorily. Ideally, meetings should be held with the group to review functionality (and the original requirements) to help build a sense of purpose and remind users of the importance of this phase to the overall project.
Naturally, we'll create test plans and help guide and motivate users to work through them thoroughly. We'll also provide the tools to both facilitate the testing process and provide stakeholders and the team visibility on any issues uncovered as well as progress in addressing them.
From requirements gathering to user acceptance testing, a significant amount of time and effort will be invested in your software development project and its success will be based on many things with one of the more important ones being your selection of, and relationship with, your development partner. Choose wisely and your project will be successful and, hopefully, your relationship will be long and mutually beneficial for both. In your decision making process keep the following in mind: in our line of work we have to prove ourselves every day and we've been with many of our clients for several years (and with some for more than a decade) – we believe that speaks to our commitment and integrity.
As businesses grow, information technology assets (we're speaking primarily of software applications here) tend to accumulate through development and / or acquisition – often, unfortunately, without much thought given to how to extract the most value from these assets. Very often, these situations provide restructuring / consolidation opportunities which can in turn lead to considerable cost savings – many times realized immediately.
While we do love technology, we never lose sight of the fact that it's simply a means to an end and any decision you make regarding technology must be based on how it will affect your bottom line (through cost reductions, productivity increases, better informed decision making, etc.). Here are some important ways in which we can help you increase the return on your investment in IT:
Information technology investments must be monitored and managed like any other type of investment. IT systems are constantly evolving and can be affected by both internal and external factors; left unattended, their effectiveness can diminish and impact your bottom line.
Custom software applications evolve over time and many times the motivating factors which originally drove development are no longer applicable or relevant. In addition, external factors such as standards, paradigms, guidelines, protocols, and core platforms are constantly changing, and together these factors will impede the effectiveness of your IT investment.
Depending upon its complexity and the nature of the desired change, modifying your custom software application can be a simple task, a major undertaking, or something in between. For anything other than the most basic changes you'll naturally want an idea as to the level of effort involved in order to determine your payback period on the investment – we have the experience necessary to help you make informed decisions for achieving your long-term objectives.
Highly sensitive data, crucial timing, complex and / or mission-critical applications – any one of these factors would be enough to make a business owner's palms sweat at the thought of having to move a web site or application between servers, regardless of where those servers may be.
Whether you need to move a single, mission-critical application across town or a multi-server / multi-domain web, mail, and enterprise data environment across the country or around the world, we have the expertise and resources required to make it happen in an efficient, timely, and secure manner.
Increasingly, applications large and small are being integrated with other applications both inside and outside enterprise firewalls. As with most things technology-related there are as many different approaches to application integration as there are firms willing to help – advice and opinions are always easy to come by.
What you need, however, is a thorough analysis by a team of professionals who have the experience needed to not only accurately estimate the level of effort involved but also consider outcomes in regards to peformance, scalability, etc. Other factors that must be considered are licensing constraints and other possible additional costs as well as how maintainable the resulting system will be. Since all of these factors will affect your return on investment they should all be included in your go / no-go decision making process.
While single-tenant products and applications will always be costlier to maintain than their multi-tenant counterparts, applications are not always designed with multi-tenant architecture in mind. We can provide a planned upgrade path and the associated processes for converting single-tenant applications / products to multi-tenant. We can also provide guidance on application sustainability through operational and support procedures for continued growth.
Enterprises with one or more mission-critical client-server applications are increasingly exploring n-tier architectures with the idea of leveraging pervasive and flexible Internet technologies and protocols. We provide a strategic path to n-tier for existing applications which go beyond simple brute-force conversions – our emphasis is on salvaging assets and minimizing disruptions.
Customers are increasingly demanding more from Internet applications. We can provide the pathway for building richer internet applications and user interfaces using a wide range of technologies, carefully selecting and applying what makes sense in any specific enterprise application landscape.
Prototypes / proof-of-concepts / starter applications are built for various reasons and prototype development has an important place in software engineering. Unfortunately, resource limitations often preclude organizations from taking a product or application from prototype to production within the necessary timeframes and opportunities can be missed.
If you consider such prototypes viable going forward our team can take your application from prototype to enterprise-ready without drawing on resources you've dedicated to other projects, thereby allowing you to get more done in less time and, just as importantly, without adding to your full-time staff.
Business moves fast and, for better or worse, the technological landscape changes even faster. Analyses and recommendations are only as good as the experience they're based upon so you naturally want experience on your side. Our consultants have spent years "in the trenches" and that experience can give you a significant advantage.
Whether you need an objective, in-depth, and knowledgeable analysis of a software application you've recently acquired or are considering acquiring, a thorough assessment of the scheduling or technology risks associated with a new or ongoing development effort, or sound advice on incorporating open source tools and technologies into your enterprise development environment, our team of seasoned professionals is here to provide strategic and valuable insights that will add significant value to your decision making process. Our consulting services include:
In the business of software engineering, experience is everything. Being prepared for what's around the corner comes from having been around the block, and recognizing and managing risk is a critical component of every software development project.
The list of potential risks involved in any software development effort can get long. Even seemingly small design-related decisions can have a significant impact on project cost, deadlines, and even the ultimate success of your project. We can identify and manage software development risks and help you bring your project in on time and under budget.
Regular third-party reviews of your overall information technology strategy and systems by a team of seasoned and objective IT professionals is a wise investment and can often provide immediate returns. Our reviews can provide you with valuable feedback and our recommendations are always based on enterprise standards and squarely aligned with your organizational goals.
We thoroughly review and evaluate your systems at various levels as well as from integration / interoperability standpoints and experience has shown us that all enterprise applications have one or more areas of concern such as scalability, security, performance, and / or other production-readiness considerations. We perform a wide range of analyses using carefully selected criteria, metrics, and processes for evaluating applications and the environments they operate within.
Larger organizations often times find themselves with development projects that were handed over by vendors or acquired as part of one or more mergers. We can assess whether or not these applications have any long-term value and how they might best fit into your overall information management infrastructure. We evaluate all aspects of an application and our final report will provide you with an independent, objective analysis of architecture, scalability, maintainability, and overall quality. These insights will help you make better-informed decisions.
Organizations wanting increased incorporation of mature open source offerings often struggle with the selections and concerns about compatibility / integration are often well-placed. We use our extensive experience with various open source technologies to provide a sound plan and then help with the implementation and integration of open-source technologies.
Security is, naturally, of paramount concern for almost all software applications and particularly for those having very sensitive data such as financial information or patient health data / history. We can thoroughly review both existing systems and systems in development from a security perspective and provide objective, third-party analysis and best-practice recommendations. Our recommendations will always allow for flexibility where standards can be accompanied by customizations specific to enterprise needs.
Given the ever-expanding options and complexities in information technology today it's not easy making choices; it's not enough to simply collect quotes from vendors and work from there. We'll walk with you through your requirements phase and help you make selections holistically for all your technology needs, taking into account both your short- and long-term organizational goals.
We provide organizations with guidance towards adoption of a wide range of build, deploy, networking, and database topologies to match specific enterprise needs. No two organizations are alike, so applying best practices is rarely straightforward or easy – we can help you sort through this complexity.
If you're in the market for an experienced and reliable IT partner we'd love to discuss your needs with you. To get the conversation started, please contact us in any one of these ways:
|In Person:||610 Phoenix Dr.
Ann Arbor, MI 48108
Our business hours are M-F, 10-6 Eastern time. If we don't answer when you call we're either in a design meeting or immersed in code – please leave a message and we'll get right back to you.
If you'd like to submit a project brief please send it as an attachment (no more than one page, please) via e-mail to the address above. In your brief please be sure to include the amount you've budgeted for your project.
Please note: We do not answer RFP's.
* Sackman, Erikson, and Grant (1968); Curtis (1981); Mills (1983); DeMarco and Lister (1985); Curtis et al. (1986); Card (1987); Boehm and Papaccio (1988) Valett and McGarry (1989); Boehm et al. (2000);