Project planning and design are the cornerstone of succcess, further enabled by breaking up complex projects with proof of concept (POC) research to make sure the big picture aligns with business initiatives and outcomes.
Create technical aligment with day-to-day and long term business goals.
Detail the mission of the purpose of the project to create alignment business business objectives and technical implementation.
Describe the deliverables and expectations for the various phases of the project.
Determine the various types of users who have a stake in the success with the development.
Confirm there is executive and business sponsorship.
Review the billing, approval, and payment process.
Designing solutions can be complicated and time-consuming if not properly managed. When the full plan isn't known, agile methodologies help paint a picture while making progress on the project. Strategic planning is a critical first step, avoiding unnecessary implementations, getting the highest business priorities completed immediately. As success builds, additional iterations are reviewed and implemented.
Software engineering processes are complementary to agile and iterative development strategies with proper planning and design. Using well knowledge development tools, libraries, and documentation processes help reduce or eliminate technical debt.
Design and development skills are enhanced with realworld knowledge in various business areas. Here are some highlights of skills beyond technology:
An online presence attracts business opportunities and captures sales, providing automation to quickly fulfill results to customers or businesses.
Enterprise Resource Planning or standard accounting applications are the financial lifeblood of an organzation of all sizes. Proper integration allows elimination of data errors and provides a source of truth for data and accountability.
Automated integration in LMS assists with consolidation and integration of licenses, removal of old accounts, providing single-sign-on for improved security and user experience.
CMS systems, such as Kentico and DNN (formerly DotNetNuke), allows for maximum flexibility and configuration to those directly providing content (often times marketing and business teams). Integration with backend systems provides reporting and data to users, along with dynamically driving visibility to user-specific content.
SharePoint Online (SPO) and on-premises provides centralized digital assets and document management. Integrating with these systems promotes a single source of truth that is accurate and extensible to other systems not visible directly to external users.
Built on top of SPO, Microsoft Teams provides a centralized work center of information and collaboration. Development opens opportunities to integrate information from other systems, both internal and external.
Creating a single source of truth avoids confusion to those reading information, eliminates mistakes, reduces cost due to required extra steps, and increases turnaround performance.
Securing integration services via industry proven standards, such as OAuth2, significantly reduces attack surfaces. Auditing identifies integration usage and provides machine learning to help identify risks and efficiency.
Here are some examples to highlight refrequent integrations:
RESTful services to centrally and securely access identity, organizational hierarchy, and Microsoft services such as SharePoint, OneDrive for Business, Azure Services, Azure Maps, Mailbox Data, Group Calendars, Tasks, etc.
Leverage Facebook as a centralized blogging platform that extends to other platforms, including public websites.
Frequently used by gyms, centralize the management and publish coaches/trainers, schedules, rates, etc.
Onboard new and deactivate existing employees via payroll systems as the source of truth for user accounts, mailboxes, and allocation of equipment. Update these systems with assigned email addresses and company phone numbers.
Bidirectional integration with Oracle-based services and OAuth2 with custom or third-party systems, such as E-commerce and Sales Portals. Add a competitive UX advantage of taylored systems for your users, partners, and customers with consolidated information to avoid inaccuracies and confusion.
Track learning metrics of your teams, so managers have visibility of activity making sure they stay current, actively use materials purchased, and meet annual goals.
When preexisting software or solutions don't measure up to your needs or the needs of your partners or customers, then software development provides effective solutions. There are many good technical stacks out there. We focus specifically on the Microsoft-based set of technologies as our foundation.
The C# development langauge is used to create direct solutions for websites (ASP.NET, MVC, Razor, Blazor Server), Web APIs (including RESTful Services), browser-based applications (Blazor Client WebAssembly), Windows Services, Windows Active Directory integration, Windows Client Apps (WPF, WinForms), Azure Services (App Services, Azure Functions), etc. This rich langauge allows focus on solving business needs more directly, reducing distractions across various technology sets.
Building Web APIs to use a UML solution such as Entity Framework reduces development time and cost, enables visual design models, provides use of LINQ to succinctly query data, abstracts the specific database (MSSQL, Oracle), and more easily map to business objects.
Capturing data for future metrics, security, and marketing are often left out of the planning process until much later in the development cycle. And yet, this can become an important part of the health of an organization or devices (such as IoT). Planning early avoids costly redesign and missed opportunties with Machine Learning (ML). Tools such as Google Analytics, Salesforce, PowerBI, and Serilog provide standardized methods of providing information to the business when needed most.
HTML5 and CSS3 development are the cornerstone of web development and providing UX within the client browser across multiple platforms, including Windows, Macintosh, Linux, iPhone, iPad, Android, gaming devices, etc.
Delivering Fluid Designs for all devices via Responsive UI by using Bootstrap libraries, backed by HTML and CSS development. This ubiquitous tool allows a "build once, show everywhere" approach, eliminating the complexity and maintenance of multiple platforms, providing agility with updates, and shortened time to market.
Scalable data storage via on-premesis Microsoft SQL Server and Azure SQL. NoSQL-based solutions are available via CosmosDB. Data Lakes provide unstructured data storage, organization, and searching.
The main engine frequently used for Continuous Integration and Continuous Deployment of systems is Azure Pipelines. We have implemented development and IT-based solutions using YAML configuration files, PowerShell, and centralized Templates. Here are some of the examples of the kinds of projects deployed:
Azure Pipelines to build Azure DevOps Git repos, unit test, and deploy the following types of projects:
- Azure-hosted Web App Services and Azure Functions across multiple locations
- Locally hosted IIS Web Server (.NET Framework, .NET Core) using on-premises agents, upgrading MSSQL DB Schemas
- NuGet packages published and hosted to Azure Artifacts using Azure agents
- MSI packages to Azure BLOB containers for self-upgrading distributed WPF client software
Azure Pipelines to build open source repos, unit test, and deploye the following types of projects:
- Signed NuGet packages to NuGet.org using on-premises agents
- Deploy websites via SFTP to 3rd party hosting providers using Azure Agents
Collaboration during the project process is critical for efficiency, clarity, and auditability. Here are some of the tools used regularly to assist with this success:
Microsoft 365 (also known as Office 365) provides collaboration and meeting tools on various devices, allowing access when and where needed. Microsoft Teams for video and audio meetings, chat, and group messaging. SharePoint Online (SPO) provides document and list management. Power Automate provides low code and no code automation to manage tasks and notify progress. OneNote serves as a powerful wiki with search, offline content, OCR of images, grouping of topics, and versioning.
Boards manages work items,including prioritization, and provides sprint planning. It identifies required resources and release scheduling. Git Repos in Azure DevOps (and GitHub) provides source control management, providing an audit trail on development work performed. It manages concurrency and branching of efforts, especially important with hotfixes and Proof-of-Concepts (POC).
The above service offerings in creating business technology solutions, along with regular bi-directional feedback, yields success. After a cycle is completed, keeping the proverbial "lights on" is necessary for proactive maintenance. Feedback from business members and partners provides clarity on next steps. Reviewing includes:
Manage system performance and storage, eliminating outages. For seasonal or peak-based operations, automatic dynamic adjustments increases user satisfaction while minimizing costs, deallocating resources when not needed.
Receive proactive notifications of application issues, system issues, and resource threshold warnings via SMS, email, app notification, chat, etc.
Collect user feedback within the application or through surveys. Such valuable information measures satisfaction, shaping future directions of application and system designs.
Collect anonymous information on user interaction (e.g., Application Insights), application performance (e.g., Application Insights), and usability (data analyics). Incorporating machine learning and artificial intelligence can provide recommendations to users on next steps or additional features, including upselling.