Understanding the big picture:  At PSL we understand that software is a tool, and not an end in itself.  A piece of software should make life easier for a company or a client, whether that means a service is rendered faster, information is more accessible, transactions are more secure, or any other improvement that ultimately makes a customer happier and an organization more profitable.  

For that reason, we begin our projects with a brief by key client personnel on the purpose of the tool that needs to be constructed, and how it fits the larger context of the business.  Adhering to strict rules of confidentiality, this information is disseminated within PSL not only to our project managers and requirement engineers, but to the architects, developers and testers that will be working in the application. At PSL, we want to engage all the minds working on a project, not just have a team “code”.  We have found that by giving people a context and a meaning to what they are doing, creativity flows and innovation flourishes.

Getting to the detail:  Aware that software engineering is a complex and highly interconnected endeavor, after comprehending the big picture we proceed with great attention to detail in compiling all available formal documentation.

Understandably, many technology projects are stretching the boundaries of “what is out there” and the client can often only share a vision and some key requirements of the software. When this is the case –say an Agile implementation of an evolving social networking application—PSL establishes a strong and constant conversation between client and development team that assures all newly conceived ideas are quickly translated to software artifacts.

Alternatively, when the functionality is clear and the business process is understood and stable, PSL might engage requirement engineers to elicit most software specifications in advance.  This approach is typical of larger projects and allows for more exact estimates of effort required and planned delivery dates. 

Small, incremental steps: Regardless of the project, PSL believes in WYSIWYG (What You See Is What You Get).  For this reason, even when requirements are “fully” specified, we always deliver our applications in iterative, incremental steps that allow the client to perform a sanity check on software milestones.  A rapid release of functional software code both motivates the client/partner development team, as well as prevents potential fatal errors from being hidden in the code until the application is “finished” and they become prohibitively expensive to remove.

When the complexity of the application merits it (i.e. connecting many different systems, a system with high concurrence loads or a highly demmanding response speed), PSL may engage in functional tests of the software architecture, to make sure the proposed solution works within the system and  meets the client’s expectations.  

If you see sense in our approach, and would like to learn more about how we would tackle a particular software engineering challenge, please contact us.