Many don't know that Systems Engineering (SE) has a long-standing, successful, and growing Software Services Group (SSG). This cohesive and seasoned team has been the “secret” ingredient to the success of many of our clients’ initiatives throughout the years. In fact, let's take the time to explore what it is they do.
Who are they?
Our SSG team, comprised of developers, database administrators, and analysts is often asked to build entirely new capabilities, modernize existing functions, or extend out-of-the-box software through customization and integration. The team, often in cooperation with experienced software project managers from our Project Management Office, provide the following types of services:
- Reporting – develop, refine, or extend your reporting, including building or accessing a Data Warehouse.
- Custom Applications – develop apps to deliver new business functionalities or replace legacy apps, including support for existing custom development.
- Data Integration – leverage information from disparate sources, including legacy and new applications.
- Audits & Remediation (SQL & SharePoint) – assess the health, security, and performance of your current environment with actionable plans to bring it to best practice standards.
- Migration (SQL & SharePoint) – assist with a move to new hardware, new versions, or into cloud services (Azure/O365).
- Staff Augmentation – enhance or extend your existing staff.
Some of their recent projects include the following:
- Tableau and Power BI integration from a variety of data sources,
- Line-of-business desktop application conversion from Access to SQL Server,
- Intensive SharePoint application and workflow development,
- Custom order and invoice management system development,
- Automated data assimilation and copy-ready report generation system for large annual reports,
- Time-saving desktop automation through Microsoft Office macro development .
How does the SSG process work?
Surprises are great for birthdays, but not in business, and most clients prefer the visibility of a defined scope and design before beginning a project. SE does too, and our software project approach reflects this. Therefore, our general process below involves a phased approach that limits the “bad” surprises, but accommodates the discovery, flexibility and outside-the-box thinking that is needed to deliver a solution that is tuned to our clients’ needs.
- Initial scoping and broad estimation – This step is the development of an initial proposal where high-level project details are agreed to, along with the estimate and scope for next steps. The smallest projects may begin development work here. Otherwise, this proposal will estimate the development of a Scope and Design Specification, or “Spec Document.”
- Scope and Design Specification – For slightly larger projects, a detailed design specification allows both parties to explore the complexities and opportunities of the development work is outlined. This specification forms the basis for a final proposal to perform the development. It documents the requirements, our detailed approach for implementing them, the schedule outline, and a tighter cost estimate.
- Development and Deployment – Once a contract is signed, detailed design and development begins. The team and processes are scaled to match the project. Ancillary services, such as onsite training, can be included to complete the project.
- Operations and Maintenance – Environments change and software must adapt to keep pace. Even if your business doesn’t change much, the technical environment that your software operates in and communicates with does. Consider not only allocating resources to protecting the data that drives your software through backups, but also to continual improvement of the software as well as the people who use it.
Best practices when engaging SSG
- Begin the project soon. Don't constrain your project with time by waiting too long to get started. Speak with your SE Account Manager (if you're a current client) as soon as you begin exploring an idea for development. The SSG team is happy to discuss your ideas and help you refine them.
- Have a business goal. Clearly state a small number of business goals to everyone involved in the project. They should be high-level, understandable to all stakeholders, and should provide broad value. For example, if your organization has a goal to “reduce the effort spent generating, issuing, and tracking invoices,” you might undertake a project to add one or more modules to your enterprise accounting system. All aspects of the project should link to a business goal to prevent scope from creeping away and to allow you to better evaluate the success of the project when it is complete.
- Write it down. Take notes on your goals and requests in outline form and include priorities, who requested them, and any drivers such as timelines or other initiatives. These details provide critical inputs to the planning process once we get involved. Similarly, begin gathering any other documentation that you can find related to the project and prepare to share what you can at the outset of the planning phase.
- Tie all requests to a goal. New software projects generate lists of requests and it is easy for these lists to simply capture everyone’s dreams for a new system. This can cause a lack of focus that negatively impacts projects in many ways. Instead, make sure that all requests support at least one of the business goals. If the request is critical but doesn’t support an existing one, consider adding a new business goal.
- Assign a single owner to the project. He or she doesn't need to be the day-to-day project manager. However, this person should take responsibility for keeping focus on the stated objectives and driving decisions to completion throughout the project. For example, without an owner's review, stakeholders with competing visions may send the development team conflicting information that takes time to be resolved. Assign this person well before contacting us so that he or she can work with SE early in the planning phases.
- Involve enough stakeholders. There are several facets to this one. Even simple systems may require input from several groups of users. Letting the product owner speak for them and control the project without their input is a common way to implement a project with an incorrect design. A second facet involves time and resources. Software can be complex, and large amounts of time in a project can be dedicated to planning, designing, testing, outreach, and documentation. Be sure to allocate enough time and resources for stakeholders to assist with these elements.
John Zastrow is a Project Manager at Systems Engineering. John has worked at SE for three years and has successfully assisted various clients with SSG-related projects, from start to finish.