The Bespoke Enterprise Web Development Process

Less guesswork. More groundwork.

Bespoke web development for enterprise

Bespoke web development for enterprise refers to the design and development of custom websites, web applications and business systems specifically for enterprise level organisations. Unlike off-the-shelf software, bespoke solutions are designed around existing processes, workflows, user and integration requirements which can be highly nuanced and complex in enterprise businesses.

Due to their large size, multiple departments, technical processes, global presence and years of operation, the processes and workflows in enterprise organisations have usually been perfected over a long period of time and are not something that can (or should) be easily changed to fit the rigid limitations of off-the-shelf software. 

The bespoke enterprise web development process

The process of developing bespoke software for enterprise organisations can be a lengthy one made up of multiple steps, all of which, are equally important to ensure the final result is fit for purpose. Let's take a closer look at the steps involved:

Discovery, consultation and requirements engineering

The complex and extensive nature of enterprise companies means the discovery and requirement mapping stage can be incredibly drawn out to ensure everything that needs to be is accounted for. The development team must get a full and comprehensive understanding of every process, workflow and user requirement as well as a contextual understanding of how the software will fit into the business's working environment, the challenges it needs to solve and the outcomes it is intended to produce.

The most effective way to build this understanding is usually through workshops, interviews and collaborative sessions with stakeholders ranging from those who will use the software day to day to senior executives who will be impacted by the solution in some way - receiving reports from it for example. This allows the developers to understand how best to build the software so it caters to the individual needs of the relevant stakeholders. 

It is also during the discovery phase that any integration requirements are captured, security and accessibility considerations are documented and any existing infrastructure dependencies are accounted for. 

All of this information should then be transformed into a detailed technical specification that covers the software architecture, features, functionality, user journeys and non functional requirements. Nailing the specification and ensuring both parties are comfortable with it early on is imperative if you want to avoid potential scope creep or misunderstandings further down the line.

Rounding off the first stage, a project plan should be put together including milestones, KPIs and the agreed success criteria that will be used for sign off. Defining success from the outset ensures everyone is working towards the same outcome(s) and provides a benchmark against which the project can be measured. 

Development workflow, project management and team structure

Once everyone is on the same page regarding the what, when and how - it's time to move to the development. For enterprise projects, an agile and iterative approach tends to be the best way forward and indeed, the preferred method by many enterprise clients. This means the software can be delivered in smaller increments so rather than waiting months for the complete system to be delivered, the software is developed in a series of sprints. Each sprint focuses on a defined set of features, allowing stakeholders to review progress regularly, provide feedback and validate that the solution is on the right path. It is much less risky and more cost effective to make any changes or revisions at a component level rather than once the final product is delivered.

A dedicated team

Delivering enterprise grade software solutions is not generally a one man job. Nor a two man job. Probably not even a three man job. These large and often complex projects take some serious manpower and whilst you won't necessarily deal with all of the following people, they'll probably be involved at some point:

Architects/Service designers - These technical wizards are responsible for designing the architecture of the software, ensuring it is scalable, maintainable, secure and fit for purpose.

Frontend developers - Responsible for the user experience including journeys, interface and any user focused interactions. These people usually have laser attention to detail and a knack for creating sleek, polished finishes.

Backend developers - The brains in the background, responsible for developing business logic, APIs and database architecture. 

Quality Assurance (QA) engineers/Testers - Responsible for all aspects of testing including unit, integration, performance, functionality and usability. If an iterative approach has been taken with the project, these folks will be testing the individual components after each sprint as well as the final holistic testing of the whole solution including integrations, functionality and performance.

Project and/or Account managers - Depending on the size of the project and the development company in question, you may have one or both of these roles assigned to the project. They are generally responsible for coordinating delivery, managing risk and ensuring the project remains on schedule and within scope.

Communication

As with any project, communication is absolutely essential to its success. You should always have a clear understanding prior to the commencement of any project on who to contact for what and ideally, a communication plan in place that works for both client and development team. 

At these communication intervals, it is usually a good idea to cover:

This level of transparency allows issues to be identified and rectified early, decisions to be made quickly and expectations to remain aligned throughout the duration of the project.

Managing scope, timelines and quality

Managing the project scope, delivery timescales and quality - and ensuring the three remain aligned - is arguably one of the most challenging aspects of delivering enterprise software. These three elements form the basis of every successful project and are all closely interconnected - uncomfortably so. A change to one will pretty much always have an impact on the other two.

For example, increasing the scope of a project mid development by introducing additional features will require a) extended timescales or b) a potential hit to the quality of the project if timescales can't be increased yet these new features still need to be incorporated somehow. 

Project scope should be tightly managed from the outset and continually reviewed throughout the development lifecycle. Any proposed changes - such as introducing new features - should be carefully assessed for their impact on cost, timescales, technical complexity and overall project risk before being approved. 

Quality control should be embedded in from the start of the project through code reviews, testing, manual quality assurance and continuous stakeholder feedback. Quality control is also another reason as to why iterative approaches work so well - components are reviewed and signed off in isolation so any quality issues can be identified and rectified at a component level rather than once the final product has been delivered at the risk of having to rebuild large parts of the solution.

Timescales can be tricky to adhere to at the best of times, especially when dealing with the unknown. In the development world this can be particularly challenging especially if building components or systems that don't have an existing blueprint. Similarly, stakeholders in enterprise organisations sometimes struggle to provide information in a timely manner. They may need to get the information from another department, have more pressing priorities or they may not be sure where to obtain the information from. The important thing here is that any delays (or even risk of delays) are communicated as soon as possible, new expectations are agreed and measures are put in place to prevent similar delays happening in future where possible.

Deployment, cloud infrastructure and go live strategy

After the blood, sweat and tears involved in the planning, design and development, the moment has finally arrived to deploy the bespoke enterprise software solution! Reaching this milestone is significant, but the hard work isn't over just yet. A carefully planned deployment strategy is essential here to minimise any business disruption, protect business continuity and ensure the new software is fit for use from day one. It is also highly advisable that a viable rollback plan is put in place should the deployment fail.

Continuous integration and deployment (CI/CD)

A concept particularly important for enterprise project delivery, continuous integration and continuous deployment negates the need for manually deploying code changes and allows it to be automated instead. The source code is built, tested and validated automatically prior to being deployed to the relevant environment. There are several benefits to this approach including the use of a repeatable process, much lower risk of human error and more confidence with every release.

Additionally, in some instances, these automated pipelines can support zero or near zero downtime deployments allowing new versions of the software to be released without any business interruption at all.

Enterprise cloud infrastructure

These days, most enterprise software is deployed to cloud platforms such as Microsoft Azure or Amazon Web Services. The reason for this is that these platforms provide significantly better scalability, resilience and security as opposed to traditional on-prem infrastructure.

Of course all enterprise organisations have their own specific requirements when it comes to operations, security and compliance so the cloud infrastructure itself, needs to be designed in a way that accommodates these requirements. Factors to look out for when considering cloud infrastructure are as follows:

Staged rollouts and go live planning

Staged rollouts are very popular with enterprise organisations - and for good reason. Staged deployments are less risky than taking a 'big bang' approach and the impact if something does go wrong is more limited. In practice, this may involve deploying to test environments or small user groups, conducting user acceptance testing and scheduling deployment activities outside of normal business hours. A typical enterprise deployment plan will usually include the following:

Post deployment validation and hypercare

Immediately following deployment, the development team will generally enter a 'hypercare' period, providing enhanced monitoring and support as users start interacting and feeding back on the new system in it's live environment. During this period, the development team should:

This enhanced level of support means that any issues post deployment can be addressed promptly and offers some reassurance to both stakeholders and the userbase of the software.

To finish

Successfully delivering an enterprise software project is not a guarantee - quite the opposite in fact. It takes structure, planning and careful execution from the initial discovery phase right through to deployment and beyond. By sticking to a proven process, enterprise organisations can reduce project risk, manage complexity and unexpected events more effectively and make the switch over to new software a positive experience for all involved.

See also

Business Types - Enterprise

Security, Performance and Quality Assurance in Enterprise Software

Integration Capabilities in Enterprise Software

Prefer to Call or Email Us?

If you dont like filling in these forms, or you would prefer to speak on the phone or via email then please use one of the below:

0115 772 2751
[email protected]

Follow us on Social Media

Follow us on Twitter, Facebook or LinkedIn to be kept up-to-date with Cool Code Company news and goings-on, or just to have a conversation with us.