Bentley Systems is the global leader dedicated to providing architects, engineers, geospatial professionals, constructors, and owner-operators with comprehensive software solutions for sustaining infrastructure. Founded in 1984, Bentley has more than 3,000 colleagues in 50 countries, more than $500 million in annual revenues, and since 2003 has invested more than $1 billion in research, development, and acquisitions. We are very happy to talk with Justas Belevičius, software development manager at Bentley based in Melbourne, Australia, about their development process.
Tell us about yourself. What does your company do and what is your role?
Bentley Systems is one of the leading software providers for the world’s infrastructure. Our comprehensive portfolio of software products and services consists of hundreds of globally recognized names, including MicroStation, ProjectWise and AssetWise as our flagship products and technology platforms.
I take a role of Software Development Manager in Structural Group department where I currently lead development of Bentley’s Integrated Structural Modeling (ISM) software platform. ISM allows to integrate, i.e. connect different stages of structural project workflow. Simply speaking, ISM can be perceived as an intelligent versioning control system for structural data, though it is only a part of its functionality.
Can you tell us about the development team? How many people do you have and how is it organized?
Sure. Bentley Systems is currently has more than 3,000 employees and over a thousand of them are directly working on research & development. Most of our products are actively developed and maintained for multiple years, however development itself is organized in small short-term chunks – projects. The end result of the project is typically a new version of the shared technology, product or a new product. Teams working on most projects are less than 20 people. The work in each project is further split into iterations and organized adhering to SCRUM principles to some extent.
OK. And can you tell us about your development process? How does it work?
As a large company we have a number of pretty well-defined processes for development. A lifecycle of a Project is organized in a number of formal stages, from initiation, design through approval by management committee, development, sign-off, release and maintenance. For tracking projects we use Microsoft Team Foundation Server, VersionOne, intranet and wikis. We also use Yammer for less formal communications and exchange of information and interests. There are many shared infrastructure services available for facilitating different parts of development, such as continuous integration system, infrastructure for creating product release builds, etc. Use of those services is orchestrated by a set of our build tools, which we call Bentley Build.
Do you do stand-up meetings?
Yes, we do it a number of times. As our teams are dispersed around the globe, one of the challenges with stand-up meetings is that we actually have to do multiple stand-up meetings due to different time zones. So separate stand-up meetings work for parts of the team – such as for example Lithuania and Australia, and there are other meetings for the United States and Lithuania.
And how big is the team typically?
I usually work with small teams, less than ten people.
Do you use sprints?
Yes. We do use sprints. Typically a sprint includes one week for planning and four weeks for the sprint. The sprint ends with internal public demonstrations, which can be attended by any colleague.
What are the biggest challenges in organizing the development process?
We have some usual challenges of a large global companies, such as keeping timely communications and collaborating across different time zones; distributing resources across different projects might be challenging too, especially when it comes down to developers that have valuable experience for multiple projects that happen to be in progress at the same time.
Do you plan any changes to your development process in the future?
Though Bentley Systems is a large and mature company, I consider it somewhat bold and brave in ongoing improvements and changes that it is introducing to its development process. The last set of changes was related to our project based development. I expect that this evolution of development process will continue.
Sounds good. Do you have any advice to other CTOs, developers, or startups?
One advice from experience working with various large and small teams, is that there is no single answer to project management needs. Whatever formal process template you choose, in order to make it work for you, you need to stay creative and adapt it over multiple iterations, what might involve a good deal of trial and error.
Thank you very much!