It’s important to understand your software partner’s development process to ensure you can properly marry your processes, as well as other engineering disciplines, together. Casandra walks through PSI’s 5-phased approach, describing at a high level what you can expect throughout each step of the PSI software development lifecycle.

 
 

If you need software development related assistance, we can help. Please schedule a complementary consultation with one of our consultants.

Schedule a Free Consult

Transcript:

Hi Everyone! We’ve been getting a lot of questions about PSI’s software development process. It seems that, for many, this is a really important factor when selecting a software partner to work with and I wanted to share a little bit about how and why we follow the process that we’ve implemented.

Often times, you’ll hear someone say “we follow the agile, or v-model, or waterfall methodology,” well, if you’re looking for a clear definition of what we do, it’s this: we take a hybrid approach to the v-model and agile methodology, essentially taking the best of each and merging them together to form our 5-phased approach.

Our 5-phases are pretty traditional in that we start with planning, then design, development, testing, and finally maintenance. Our approach is fairly heavy on the front-side, meaning we take the extra care to plan and design before diving into development.

Why is planning so important? There is not a one-size fits all approach to every software development project. We need to take the time to understand what your goals are. From product and software requirements, to your business drivers, we get a 360-degree view of your project and can accurately assess where your starting point is. Some projects come to us with existing code and project materials like documentation, and others come to us with simply an idea looking to make it a reality. During the planning phase we can identify the activities you need to complete to get your software to production and come up with a cost estimate and timeline for completion.

After planning, we can move into our design phase. This phase takes into account your product requirements and needs. Often times we’ll start by meeting with various project stakeholders to develop software requirements and get everyone’s sign off. It’s important to complete this early in the project because it helps focus development and testing, and when done efficiently, reduces the need for out-of-scope changes and rework in later phases. The output of this phase is sound software design documentation, like a software requirement spec, software architectural design spec, depending what else your project requires it could include a risk analysis or FMECA document and any other documents that were determined to be necessary during Phase 0 – the planning phase. We’ll conclude the design phase with a design review, being extra thorough to make sure all stakeholders are on the same page and agree on the path to move forward into development.

Without a design phase and focusing in on software requirements, development can get messy. That’s why we pay so much attention to planning and design up front. Development then becomes a breeze and this is where you start to make up on time, schedule, and cost. After the software requirements specification is signed off on by all parties, this becomes the project’s guide, or bible, if you will. Our software engineers use the requirements spec to engineer the system as designed. This eliminates adhoc development and ensures all engineering efforts are focused on the functions and features that the software system requires. During this phase you can expect various sprint releases, quantity of sprint releases depends on the extent and depth of development. This is where the agile aspect of our hybrid development process comes into play. We’re able to work on multiple aspects of the project during the development phase and this reduces time that may otherwise be spent waiting on other engineering disciplines, for example, hardware or electrical components. Throughout development, we incorporate several value-adding tools and practices to help save time in testing and maintenance in later phases. This may include developing automated unit tests to using tools that incorporate DevOps such as static analysis, automated builds, code coverage and continuous integration, as well as configuration management and source control. At the conclusion of our development phase, our clients have all software development sprint releases, updated documentation, and a sound software test or verification plan to execute in the next phase.

Which brings us to testing. The testing phase is focused on verifying that your software system works as it was designed, and confirming that all software requirements have been developed, implemented, and are functioning as intended. The software test protocol that was developed in earlier phases will be executed during this testing phase. After the test protocol is fully executed, you will receive a test execution report. Software validation increases the usability and reliability of a product resulting in decreased failure rates, fewer recalls and corrective actions, less risk, and reduced liability. Software validation can also reduce long term costs by making it easier and less costly to reliably modify software and revalidate software changes.

After testing is complete and all stakeholders agree that the software deliverables have been met, this really concludes the software engineering process. At this point in time, after all financial obligations have been met, our clients own the code to their software system. We don’t hold any rights so that you can do what you wish with the source code. Beyond testing, we do view support and maintenance as the fifth phase in this process. Software maintenance can represent a very large percentage of the total cost of software over its entire life cycle; however, our development process aims to keep maintenance as minimal as necessary. Your software system is designed with the intent that you, the source code owner, can maintain and manage the code without any assistance. Of course, if software engineering and coding skills are outside of your wheelhouse, we are always happy to continue assisting you in maintenance and support.

We hope this helps you better understand our software engineering process, at a high level. Of course each and every project is unique, so we may focus more heavily in one phase than another depending on what your needs are. If you’re eager to kick off your project, we’re here to help. Contact us to get started – we look forward to hearing from you.


No Comment

You can post first response comment.

Leave A Comment

Please enter your name. Please enter an valid email address. Please enter message.