code life cycle

Custom Software Development Life Cycle

I was in a project wrap up with a client recently and we were talking about how pleased they were with the outcome of the project. At the same time, they were trying to get a better understanding of how we ended up exceeding the expected timeline and budget.

This is a conversation we must have with clients occasionally. Custom software development is never an exact science and sometimes, despite our best efforts, things come up that are not a part of the plan. Even so, there are things that can be done in the development process to reduce the likelihood of encountering big surprises.
 

We're in the business of creating custom software, among other things...

Putting those two words together – create and custom – implies some degree of uncertainty when it comes to exactly how things will develop. We follow a specific process in the development life cycle to help reduce those risks:
 

  • Requirements Definition

  • Solution Design

  • Development and Testing (can be done in iterations)

  • User Acceptance

 

Requirements Definition

This is arguably the most critical part of the entire development process. It’s also the one that clients are least willing to pay for. Taking time to speak to various stakeholders, document their current processes and challenges, discuss future needs, and prioritize their requirements is key. This step will more than pay for itself later in the process in lost time and budget. 
 

It can be tempting to short cut this process...

For example, a Contact Us form seems pretty straightforward right? A form is a form is a form. But it isn’t. We need to know what fields should be on the form? Are they free form text or do the values come from a drop down? What fields are required? Is there any validation on any of the fields? Do we need to plan for addresses outside the U.S.? The list goes on and on, and the Contact Us form is usually the easy part.

Understanding these requirements AND getting signoff from the client stakeholders makes it much easier to clearly define the scope of the project, estimate it more accurately, and properly plan the timeline. These are all important steps in setting appropriate expectations for those involved in the project.
 

Solution Design

Once the requirements are understood, it’s time to design the solution. This typically includes a number of elements, such as the back end tools we’re going to use to build it, implementing any necessary integrations with other software, and creating mockups of how the solution is going to look to the user visually. This is another area where it’s tempting to shortcut the process. This is also another place where taking shortcuts can have a significant negative affect on the budget and timeline.

Even though the solution we are developing is custom, we are going to use industry standard development tools to put the site together. This might include a content management system like Kentico, or process building tools like Microsoft PowerApps or Azure Functions.

Regardless of the tools, we need to make sure all the pieces are going to work together properly and that all the goals of the project are accomplished before we start building. We also want to ensure it meets the client expectations visually, so we usually do a few mockups of pages to confirm the design and branding of the site.



Solution Development and User Acceptance Testing


Finally we get to build something…

Whether it’s a mobile app, a customer facing website, a custom internal workflow, or any other type of custom solution, the build is obviously where it all comes together. Build is often done in short cycles called sprints or iterations. This is done to get features in front of the client as soon as possible, both so we can confirm the direction of the project, and so they can begin internal testing with all critical stakeholders. Of course, we don’t send it to the client until we’ve thoroughly tested it ourselves.

Once the stakeholders sign off, the project is deployed to the client’s production environment. Later, there might be requests for enhancements, changes, and bug fixes (these are added to future development iterations). 
 

The Finish Line  

Whether you need a new website, want your current website refreshed, or need to unify multiple websites, we follow a process designed to get you across the finish line, and do it competitively.


The challenges that require custom-designed solutions are different with every project

This makes each job unique within itself. At Bit-Wizards, being life-long learners is a pillar of our organization. This means our team members are invested in keeping up with the latest tools and technologies so we can best meet your project needs. 
 
As a Microsoft Certified Gold Partner, we have expertise with things like Azure Functions, PowerApps, PowerBI, SharePoint and implementation and management of Microsoft 365. We also use tools like Kentico, Prismic, Vue and Angular. Many of our solutions involve hardware like scanners, scales, and the use of RFID.


Even with a specific process in place and all the best technology, things don’t always go according to plan...

There could be changes in technology, stake holder requirements, organizational priorities, or business processes. Because of this, we place a great deal of importance on continued collaboration. Our technical team has regular meetings with those overseeing project development on the client’s end. We find that these meetings, held as often as weekly or even twice a week, will prevent any smaller glitches from turning into major, timeline-slowing problems. 
 
Bit-Wizards can help you get to the finish line first. Contact us for customized solutions.

Comments
 
comments powered by Disqus

Author

Wiz E. Wig, Mascot & Director of Magic
Wiz E. Wig

Director of Magic

Read more