But how does the planning and implementation of an integration project start? We are going back to the Christmas tree farm. After losing last year’s Christmas tree stand-off, the competitor found out that we set up the inner workings of his main competitor. We helped to streamline the process of purchasing a Christmas tree. Now, he needs our help to implement the same IT integration so that he can hopefully beat the competition!
While there is never a one-size-fits-all solution, in systems integration, there does exist a straightforward process to split up all tasks that need to be done into equally important parts.
- Requirements Gathering
- Analysis
- Architecture design
- System integration design
- Implementation and test
- Maintenance
- Agile software development
- The backlog
- Role division
- The sprint
- Project Management Software
Requirements Gathering
Requirements gathering refers to the process of identifying, documenting, and analyzing the specific needs and goals of an integration project that involves different systems, applications, or technologies.
The goal of requirements gathering is to ensure that all stakeholders have a clear understanding of the project’s objectives and that the project meets their needs and requirements.
Analysis
Analysis means we look at both the old and new programs very carefully to see how they are different and how they are the same. We want to make sure they can understand each other and work together without any problems.
Sometimes we might find that there are some things that make it hard for the old and new programs to work together, like when they have different ways of organizing information. This is like when two friends speak different languages and need help understanding each other. We need to find a way to help the old and new programs “understand” each other, just like we might help our friends learn each other’s languages.
Architecture design
Imagine you want to build a huge and complex house, with many rooms and gadgets like air conditioners and lights that can be turned on and off from your phone. Before you start building the house, you need to think about how all these rooms and gadgets will work together. You need to plan how the rooms will be laid out, where the wiring and pipes will go, and how everything will fit together. This planning is called architecture design. It’s like drawing a map of the house before you build it. This is the most exciting part of the process if you ask me. You want to make sure everything will work well together and be easy to use.
Now, in IT, architecture design is like planning the house, but for computer systems. It’s figuring out how different computer programs and systems will work together, and making sure they’re all connected and work well.
System integration design
System integration design is like putting together a big puzzle made up of different pieces of technology. The system integration design is the plan for how all these different computer systems will talk to each other and share information. It’s like making sure all the puzzle pieces fit together perfectly so that the picture looks just right. When different computer systems are integrated properly, they can work together seamlessly, just like a completed puzzle looks great when all the pieces fit together.
Now that we have an overview of how the entire system should behave, we also have to consider the smaller, more detailed aspects of how each subsystem should behave:
- What methods should be accepted for this API?
- What should the expected output of each subsystem be?
Implementation and test
If the architecture design is the most exciting, then the implementation phase should be second. This is the phase where you end up becoming a magician in the eyes of the client. With a starting point of what methods are allowed and what the end goal is, you get to pave the way. Design your code and make sure to test it extensively; you would not want an angry call from a client on the launch date because you forgot to put an end-of-line character in your otherwise perfect code. 😉
Maintenance To ensure that the system stays up and running, it is common courtesy to offer a couple of souls from the project team to keep track of how things are going. This can involve several tasks, such as:
- Monitoring: Continuously checking that the different systems are working together properly, and fixing any issues that arise.
- Upgrades and patches: Updating the different systems with the latest software updates and patches to ensure they are secure and operating efficiently.
- Testing: Regularly testing the integrated systems to make sure they are still working together properly, and making any necessary adjustments.
- Troubleshooting: Investigating and fixing any issues that arise in the integrated systems, whether they are caused by technical problems or user errors.
Agile software development
Now that the client has entrusted you with their project, it’s time to make a start. However, just having a high-level understanding of what needs to be done is often not enough. When working with a larger group of people, breaking down the tasks into smaller subtasks can make collaboration more efficient.
If you simply tell the project team to create a system integration design, you may end up with a long and repetitive session of presentations on the same topic. Instead, we suggest taking a different approach. Assign two colleagues to design the first building block and another two to design the second building block. This way, the presentations become more informative, with each group focusing more in-depth on what needs to be built.
As the process of creating and maintaining an integration project can take several months, keeping track of progress can become challenging. A common project management framework used in nearly every IT development team is SCRUM. Through regularly scheduled rounds, keeping track of each other’s progress becomes easier.
The backlog
The backlog is a backpack full of issues or tasks that need to be addressed. After completing all these tasks, we expect to end up with a fully operational integration system for the client. Typical items on a backlog include changes to existing functionality and bug fixes.
Role division
To enhance the level of communication within these rounds, different roles are assigned to ensure that team members take more than just themselves into consideration when discussing the road ahead.
First, we have the potentially overly stressed product manager who wants to make sure that team members are working on the most important issues first.
Secondly, we have the SCRUM master, the harmonizer, and the Wikipedia of the group. This person makes sure that communication runs smoothly, and more often than not, they don’t take an active role in the meetings themselves. They are there to provide other team members with answers to any questions they might have.
Then we have the development team, the worker bees. This team takes assigned issues out of the backpack until none are left.
And finally, we have the stakeholders. Other than their valuable input during the meetings, they can direct how issues should be resolved to best serve their interests. Stakeholders can be both internal and external to the organization.
The sprint
Every round, which is usually weekly, the team has to run a sprint. At the start of the week, the runners (development team) take at least one issue out of the shared backpack. Once everyone has an issue in hand, they position themselves in front of the starting line. Then the referee blows the whistle; the sprint has started.
Funnily enough, this is a team competition. Every member tries their best to reach the finish line as soon as possible. Depending on the difficulty of the issue, it could potentially take some runners longer to reach the goal than others.
Through daily stand-ups, members can briefly mention their progress, needs, and plans. In the case that someone does reach the finish line, they can return to the backpack and take up another issue from the weekly sprint goals.
Once the current sprint comes to an end, we have an evaluation moment so that the goals, which were hopefully achieved, can be discussed. Furthermore, this also allows for goals for the next sprint to be defined by the inputs of project managers and stakeholders.”
Considering the timely nature of Agile project management, waiting for everyone to finish their assignments is not always feasible. If there are tasks left, it’s important to find out if anything is holding back progress. Do we need to assign more people to the task? Or is it expected that this task could take multiple sprints? Depending on the evaluation of the product manager and stakeholders, there may be changes announced for the coming week.
Project Management Software
To keep track of all the moving parts, having the right software is essential. These tools help you organize the distribution of issues from your backpack in a format that gives a clear overview for everyone involved. Among many SCRUM-based project management software options, one of the most widely used is JIRA. Team members can track and update their progress manually, which is helpful when someone misses a stand-up or two due to other duties.