Different ways of developing enterprise software
Photo by NESA by Makers on Unsplash

Different ways of developing enterprise software

Software is a great way to automate and standardise many business processes. And depending on the size of your business there are several approaches you can take. Picking the best approach for your business and industry can give you an advantage over your competitors.

It is important to separate your business needs from any processes or requirements that are only there to support existing paper or spreadsheet-based solutions. If you are finding that difficult then you may need to pick a supplier or external consultant that can help your teams with the requirements gathering process. Workshops to discuss current practice can be a good approach to do that.

The approach you select is based on costs (both time, resources and money) and the type of business you run. Plans for growth may also determine the approach.

In house expert

Often you have one person who knows the job well and also has some basic experience with software development. They can produce something themselves to meet a business need. 

Advantages

  • No need to transfer knowledge
  • Fast turn around
  • Low cost

Risks

  • Quality and errors
  • Conflicting priorities between work and software maintenance
  • May not scale as the organisation grows 
  • Software becomes obsolete quickly once the person leaves

Recommendations

This can be a great approach for short-term fixes or one-off processes. Use high-level design tools to reduce maintenance issues. Ensure business-critical knowledge is captured separately to just the logic of the software or you could find the system is unsupportable in the furture. Be prepared to throw it away. Keep this kind of software stand-alone or well decoupled from other systems so that it can be swapped out.

In house team

By having a team some of the risks of a single expert are mitigated. Multiple staff members means that the business can be supported over holidays and sickness. Having more than one pair of eyes on the code can improve quality. 

Advantages

  • Close coupling between the business and development team
  • Responsive to changes
  • Own the support and maintenance 

Risks

  • IT team can become isolated from the business
  • Recruitment is challenging as employees need to be both domain and software experts
  • Training costs can be high
  • Expense of team "sitting on the bench" 

Recommendation

This can be a good approach of your business or industry is highly specialised and no commercial software is available. Implement governance for changes to ensure that conflicting requirements are handled and there is some overall direction for the software. Rotating the team between IT and business is one strategy to ensure everyone is up to speed on how the organisation works. Although the inhouse approach means that you can integrate with all your other corporate systems, keep the boundaries between these clear. That will allow you to independently develop or change these systems. Tightly coupled systems will add to maintenance overhead. Ensure your team are kept upto date on the latest technologies and be prepared to swap these in as older technologies become obsolete or costly to support.

Bespoke outsourced

There are many companies who provide software development services. These can be contracted to develop your software for you.

Advantages

  • Software is tailored to your needs.
  • Pay for what you use
  • Own IP

Risks

  • Expensive
  • Transfer of domain knowledge takes time and introduces risk
  • The software may become obsolete if it fails to keep up with the changing technology and business process
  • Issue of support and maintenance 

Recommendations

As with the in house team, this approach can work well if there is no commercially available software. However, be prepared to throw away the first version. Software development is a complex process and is unlikely to work the first time. Also, be prepared to have deep pockets, this approach is expensive and could take some time. Try to distinguish between the requirements you need for your business vs the nice to have features otherwise cost can spiral. Also, be aware that whilst you are tied up developing software, your competitors could be stealing an advantage. Don't forget to factor in the purchase and operating costs of services or hardware needed for this approach. Owning the IP also means you also have to maintain the system and you could be tied into the original supplier who may want paying for any changes. Be sure to understand these recurring costs and costs for changes. Ensure you partner with a company who are prepared for the long term. 

Software as a service

For many established industries there is commercial software available to meet your business needs. The software is provided and hosted in return for a monthly fee. As the software is provided to multiple customers, the provider's costs are shared amongst multiple customers. This means that the provider typically has multiple developers and quality control staff working on the product.

Advantages

  • Industry best practices
  • Software is maintained and improved
  • External investment in software
  • No hidden costs

Risks

  • Reduced influence over software direction
  • Misalignment between business and software

Recommendation 

This approach is good for a company which is growing but does not have the resources to sink into a bespoke development. Ensure you select a company with good knowledge of your industry to avoid misalignment between your business requirements and the functions of the software. To ensure you have input into future releases, participate in usergroups and provide feedback. If the out of the box software does not exactly match your needs then pick a supplier who provides customisations or APIs. This will allow you to integrate the software into your processes and other corporate systems. Sourcing enterprise software as a service means that you can scale your usage to meet your changing business needs but check your contract to see if scaling is allowed. Also, check that to see if training and onboarding are covered by your regular fee or are a separate charge.


要查看或添加评论,请登录

Andy Clark的更多文章

  • Jules May - Extreme Reliability

    Jules May - Extreme Reliability

    Some of my colleagues attendee a session with Jules May at SDD the other week. I'd seen him speak on previous years and…

  • Hackathon - Summer 2023

    Hackathon - Summer 2023

    Just finished my real "proper" #hackathon project at Mountain Warehouse. I did a mini one a couple of years back…

    2 条评论
  • First Year at Mountain Warehouse

    First Year at Mountain Warehouse

    Just over a year ago, I joined the development team at Mountain Warehouse. It was a bit of a strange start as I was one…

  • gRPC and Polly

    gRPC and Polly

    This week I attended a session with Mark Rendle at the NDC Manchester. We were looking at gRPC, my interest is to see…

  • When is a PDF not a PDF?

    When is a PDF not a PDF?

    Something I spotted earlier in the year when preparing my CV is that what you see is not always what you get. I spotted…

  • Tai Chi, Dragons, Snaps and Yak Shaving

    Tai Chi, Dragons, Snaps and Yak Shaving

    I started up with a Tai Chi class back in January and was just getting into the swing of things when the country went…

  • Under-performing team members?

    Under-performing team members?

    "What would you do about underperforming team members?" I was asked. "Sack their manager" was my first thought.

  • Thoughts on Primary keys for relational databases

    Thoughts on Primary keys for relational databases

    What kind of key fits no lock? A primary key. - Grant Fritchey Grant shared a comment on Twitter yesterday about…

  • Chaos and Distributed Systems

    Chaos and Distributed Systems

    Yesterday I was very privileged to attend a meetup of the London Chaos and Resilience Engineering Community hosted at…

    1 条评论
  • Tables are not queues

    Tables are not queues

    Was looking at an issue where tasks that needed to be executed were being executed more than once. It was tracked to…

    1 条评论

社区洞察

其他会员也浏览了