Software technologies to meet business needs abound. If you’re looking for one that can effectively accomplish what your business needs it to, or solve issues your business is having, making a choice can be confusing. Once you do make a choice, how can you be sure it is the correct one? Can you actually know that the software will be able to meet the needs and expectations of the end-user?
The only way to answer these questions confidently is by knowing if the software developer followed a particular sequence of steps that allowed for testing and adjusting along the way. This would include user input, because only the end-user knows with absolute confidence what they need the software to accomplish. At this point, Microsoft .NET is the only custom software development technology that follows this essential step-by-step system during development. Let's take a look at the steps that are followed when a company expresses a need for a particular software.
Before anything is even attempted in the way of development, a period of research needs to be in place. The project needs to be identified thoroughly. This means the developer needs to be able to know exactly what the software is expected to accomplish and how the end-user will be able to evaluate the effectiveness of this task. It is only after this IT map is established and agreed upon that any development should be started. It is this plan that helps determine project timing and cost.
In order to communicate needs effectively, there needs to be a system in place that allows developer and end-user to work together. Ideally, this will be a system that both sides can use efficiently. Microsoft .NET came up with the perfect solution, called Team Foundation Server (TFS). This environment allows Microsoft Excel, Visio, and Project to be connected and associated with software requirements. Developers can create code for particular work items, and users can input feedback directly into this same area. This allows the development of code with the advantage for developers that they don’t have to leave Visual Studio, saving a lot of time on development.
Efficient coding can be the most frustrating part of software development. Often, the developer must download one IDE from this place and another from that place; and if issues surface there may be no clue as to where the problem lies. TFS takes care of all those issues. Microsoft .NET Visual Studio integrates perfectly in TFS. In addition, all the IDEs necessary are all right there, making it unnecessary to download different ones for different types of projects. This means that a Web Application, Windows forms, WCF service, SQL Server project, Web API. project, Console Application, or a host of other project types, can be created in the same application. Gated check-ins can also be used, which keeps the source base pristine and reduces issues with broken builds. It also enhances deployment time, which reduces software feature delivery time because of the ability to implement continuous integration. Being able to review code committed to TFS, in a disconnected way, makes it unnecessary to continually backtrack.
Testing is an essential part of all software creation. Visual Studio allows for a variety of different tests to be performed from the TFS online portal. This allows end-users to test results and see if the software is performing correctly. If a problem is discovered, feedback can be immediately given and recorded. This allows the bug to efficiently be addressed and the software retested. This testing also makes it easier to continue working on additional parts of the software development while the bug is being fixed.
Another feature is the ability to design test cases and test scripts based on user stories. This allows for testing the software on a scenario identical to what the final product will be used for, making it absolutely clear whether or not the software is on the correct path or needs reworked in some way. This testing makes the final product more reliable and saves both time and money for everyone involved.
Unlike many custom software development projects, Microsoft's Release Manager, again integrated with TFS, allows the code to be directly deployed to a wide variety of environments. While it is designed to directly integrate with Microsoft's Azure cloud environment, it can also be used with Eclipse, Java, Python and many other bases. While it is not recommended for .NET projects, it can also be used with GIT repositories. Release Manager's deployment process greatly reduces application, service, and database deployment.
Because of its ability to seamlessly interact with Visual Studio and the integration with Release Manager, TFS greatly assists in the support of existing applications, by reducing delivery time, and by providing the ability to track bugs associated to code check-ins. The goal is to provide an integration of the new software with that already existing within a system so production is enhanced and not halted by an incompatible program.
Assessment and Sunset
All software needs to be updated over time. Business needs change and grow and it is important that developers and end-users know what works and what doesn't. With its ability to customize bug tracking and generate work item charts, and export them to Microsoft Excel, TFS makes it easy for everyone involved to know when a technology, practice or approach has been tried and failed. This eliminates the need for repeated trial and error when the time comes to make changes. Having the information readily available makes it clear that there is no need to try certain coding approaches because it has already proven to be unacceptable. This greatly reduces the time needed on future upgrades.
Microsoft .NET has created the ideal custom software development solution. By starting with TFS and combining it with Test Manager, Release Manager and Visual Studio, Microsoft has provided the most complete SDLC software development solution available. The simple act of eliminating context switching has made TFS more efficient, saving time, frustration and cost.
If you have been searching for a better way to build business software solutions, then Microsoft .NET just might be the tool for you.
Brainspire Solutions is a leader in implementing custom software solutions leveraging the Microsoft technology stack.
A Short Case Study: Implementing Operation TFS Full Regalia
An enterprise level client wanted to expand their business offerings to include maritime\shipping logistics and analytics. Their Director had done a bit of research and acquired 5 different Microsoft .NET applications, each with different maritime management functions:
- Functionality included shipping route optimization, piracy zone notification, ecological fuel burning zone notification, on board logistics, charter party terms analytical reporting, and so on.
- All five applications unfortunately were associated with different SDLC tools.
The client’s Marine IT Department environment was extremely challenging for both .NET and Java developers. The very familiar complaints from business units requesting the development team to deliver features faster were loud and clear. For developers, the software delivery process, and requirements capturing process, was extremely cumbersome, which prevented the rapid development of new software features.
There were just too many tools and disconnected process to deliver new software features at the velocity that business units required,
The list of related software development tools was long:
- Contour for requirements
- Confluence for documentation
- Hudson or Fisheye for source control
- Jira for bug and issue tracking
- Visual Studio for development
- Bamboo or sometimes Jenkins for code deployment
- HP quality center for test script creation and issue tracking
All of these different systems were supposed to be used to implement the same requirements, which had to be manually synced.
Even worse for the developers, was the fact that they had to continually leave their development tool, Visual Studio, to view requirements, test cases/scripts, and test results, in addition to the fact that they had to use a disconnected deployment tool like Jenkins or Bamboo.
Most business units and stakeholders want their Developers writing code as much as possible, as opposed to sitting in meetings or attempting to translate requirements between various tools -not to mention waiting for code to deploy between environments. (I recall that bamboo used to take about 30 minutes to deploy our changes.)
None of the tools that I've mentioned are completely terrible, but, because they are all disconnected and out of sync, using them added time and complexity to the software development process and left the implementation and communication of the software requirements prone to errors and extremely cumbersome.
Additionally, none of the tools that I've mentioned integrated natively or surfaced the requirements and test results, with Visual Studio.
Operation TFS Full Regalia, was my plan to consolidate all of the software development tools and requirements capturing processes in to a single tool, Team Foundation Server. TFS is known as a source control repository, but the visionaries at Microsoft have done a masterful job of creating a 'Swiss Army Knife' SDLC tool.
TFS replaced all of the tools previously mentioned. This is because TFS serves as a requirements tool that can be connected to, and syncs work items with, Microsoft Excel and Microsoft Project. TFS can also be connected to SharePoint, to share work items and requirements in a collective fashion, with all SDLC team members. Via Microsoft Test Manager, TFS can be used to create test cases, and automated web tests, and load tests, and execute unit and integration tests, via developers associating TFS work items with the code that is checked in to source control. All SDLC team members can clearly see what code implementations and practices are more effective, and more efficient than others for a particular work item or a collection of work items.
Last, but not least, with Microsoft Release Manager, TFS is able to rapidly deploy changes from Development, to QA, UAT, and Production environments in an automated fashion. Builds were broken far less frequently with gated check-ins. Further, TFS can deploy software to cloud environments, like Azure, and AWS.
Once I was able to communicate, and demonstrate the TFS functionality that I described above, the 'context switching' that was cannibalizing and adding confusion to our project was removed. As a result, the projects delivery velocity was increased by 75%, and we were able to exceed business expectations.
If the scenario that I have described above sounds remotely familiar to you, then Microsoft .NET just might be the tool for you. Brainspire is a leader in implementing custom software solutions leveraging the Microsoft technology stack. Contact us to schedule a discussion about improving your development velocity and quality.