All Posts

Software Development is a Collaborative Process

Many companies want their own app in the store. Today, a small business owner can create an app as a business, no storefront needed, and achieve great success. While this new paradigm provides great power to the small business, it also pushes business owners into a new role. This role is “conceiving and managing a software company.”

With many years and a great deal of experience making mobile applications, Susco understands that mobile apps can be much more complicated to plan and execute than web applications. Mobile apps must be efficient, space conscious (screen and memory), cross hardware platform compatible, slick, fast and consumer ready.

As we continue to engage with more non-technical clients, we must account for the risk of not having a clear path or expectation set, when they decide to build a mobile application with a custom software development company like Susco. Without consistent client involvement at multiple stages of the process, the client runs the risk of incurring significant cost overruns, or worse, receiving a product that does not meet their needs.

The first thing that a client should understand is that software development is a complicated and technical process, and a keen development firm will help them understand what their responsibilities are to the success of the project.

One could argue that a client’s engagement is most required at the beginning stages of the development process. It involves fully defining the system which is to be built and validating that the developers’ projected build will meet the needs of the client. It is the responsibility of both parties to ensure that everyone understands what is necessary and possible before we attempt to approve a concept.

There is always the risk in differences between a client’s and the developers’ intentions, an analyst works to make this gap as small as possible. Detailed analysis is performed to determine a very tight and exact cost estimate. This estimate is based on a strict scope-of-work which defines the functional requirements of the system. If a feature is not specifically spelled out in the developers’ analysis and requirements definition, then it cannot be accounted for in the estimate. While Susco strives to never process change orders in order to meet the initial requirements, there is always the possibility there is a difference from what the client intends and what the developer understands, and additional budget may be necessary to accomplish the client’s needs. For this reason, the client must be highly engaged and interesting in vetting the development firm’s analysis and requirements definitions.

Client engagement in the initial discovery and validation of requirements is paramount to the success of the project. If a client is not engaged, it will lead to problems during the development cycle. When a client does not understand a requirement or why a feature is not as they anticipated, it will lead to either the developer doing work that is deemed outside the original scope or the client paying more for what they thought was already included. Neither of which is desirable. The software developer should not have to make assumptions on behalf of the client. We often find, that when they do, they are wrong.

However, the responsibility of the client does not end at the with the requirements definition. It is highly important that the client actively participates in testing the application as soon as possible and on an ongoing basis as new features are added. This process helps the development team find issues and bugs, but also helps the client make sure that the look, feel and function of the application is as anticipated. While adequate testing relies on the client, the development team still need to guide this process as many new clients may be non-technical. This is where a strong Test Plan helps both the developers and the client.

Software development isn’t easy. When taking a concept and turning it into a working real-world application, a partially described system is not enough. Clients will often feel they can disregard a rare or ‘edge case’ scenario, saying “this doesn’t happen very much”. However, from a development standpoint, what happens once may as well happen hundreds of times.

A seasoned software company with talented analysts can guide the client through the development process. If everything is defined correctly at the beginning of the project and the client is engaged throughout, the entire process will flow more smoothly, with fewer cost overruns and an overall superior end-product. It is the software firm’s responsibility to educate the client on what they are undertaking. And it’s the Clients’ responsibility to make sure the software (requirements) meets their needs. Web and Mobile applications are becoming more prevalent every day, so more non-technical clients are going to be involved in building software. This will lead to more people understanding how software is successfully developed, which can only be positive for all involved.

Recent Posts

How a mid-life crisis turned into Growth becoming the primary Susco Core Value.

Backstory The Tipping Point In August of 2016, I had a mid-life crisis. I was burned out mentally and physically, I was a wreck. Susco revenue was at $1M, was not very profitable, our employee satisfaction was a 6/10, the average tenure was 2 years, and I was working 70 hours a week. This started […]

Applicants: Is Susco a good Values fit for you?

Purpose of this Document Susco’s purpose is to enable people to contribute in meaningful and fulfilling ways by Culture is very important to us. The number #1 requirement we have for all our teammates is to have a growth mindset.  Even if you’ve reviewed our Core Values here, there’s more “under the hood” around Growth […]

Get Where You Want to Go. Eliminate Technical Debt With a Custom CMS

Stop Being a Servant to Your Legacy Systems – They are Eating Your Profits.  Key Takeaways: Claims management today requires a digital custom claims management system (CMS). These systems automate manual tasks by collecting and processing information, including policies, coverages, claims, claimants, and assessing claim circumstances. The software can also be programmed to make decisions, […]