The biggest concerns of software development executives are: wasting time on mundane tasks that don’t deliver value (56%) and needing to up-level capacity with automation (46%). Automation, if done right, reduces risk, reduces cost, and increases quality. Automation is the key to delivering on quality and time to market, and yet there is a fear of automation that persists. You already know WHY automation is crucial for the software development life cycle, but do you know where to start?
Things We Can Automate
There are certain aspects of the software development cycle that lend themselves to automation:
- Testing
- Deployment
- Packaging
- Coding (yes, coding!)
Automation is becoming more commonly accepted; if something is going to be boring, repetitive and error-prone, it’s a good candidate for automation.
Modular Components
Due to the long-standing fear that automation will replace jobs, there has been a reluctance to adopt the automation of coding. However, if you commit yourself to a clean, modular architecture, and you’re smart about which components you buy (pre-built libraries), and which you automate (see below), your engineers will be free to unleash their creativity and solve the problems your customers really care about. If you need to move the needle and deliver value at a far higher velocity, this is how you get there.
Automating Code
The next major frontier for automation in software development is automating coding itself. Only 20% of the code developers write delivers real value to your customers. The other 80% is plumbing and infrastructure–it’s necessary to hold up the important 20%, but is ripe for automation.
Software products should be an engine for growth, so why does software development feel more like an anchor to the C-suite? As complexity rises, delivering quality products quickly and at a reasonable cost is becoming more difficult. The lever CEO’s usually reach for is staff augmentation (direct hires or contractors), and to offset the cost of additional headcount, they look to using a greater proportion of off-shore resources. They may also go further and try to outsource the development of certain products completely in an effort to improve velocity and control costs. The problem with both of these approaches is that they assume that increased production requires increased labor. This is where automation can change the equation completely. The reason manufacturing has embraced automation so heavily is that it’s the only way to bring innovative, high-quality products to market both quickly and cost-effectively. The exact same principle applies to software development: 80% can and should be automated.
For example, let’s put on our engineering glasses and consider a login page. How can we solve the issue of logging in and application security once and for all so that this doesn’t need to be redeveloped for each and every application we build? First, we need to understand that every client may need that login page to look differently. In addition, this experience needs to be delivered on different:
- Platforms (iPhone, Android)
- Form Factors (phone, tablet),
- Browsers (Chrome, Firefox),
- Native Applications and Desktop Apps
The thought that goes into the login page architecture is important; you want as much consistency and uniformity as possible, but balanced with the flexibility to change the design, appearance, and flow in any of the user experiences. You also need the ability to plug-in different authentication providers cleanly and simply and without rebuilding things down the line. What you truly want is automation–80% of the code on that login page is just plumbing, so build it once and let your developers add the 20% of code that’s custom and specific to your solution.
Reusable Components and Automation
Reusable components can be designed and built once, and then you’re done with it. These reusable components can be thought of as libraries, frameworks, or runtime components–just know that there are many libraries out there for many different things. You can get these libraries free from open-source contributors or you can license from third parties. Developers usually end up picking and choosing code from different sources and cobbling it all together. There isn’t much consistency between these libraries running at different levels within your code stack, though.
The Modularis approach is to give you a single source to deal with. Our libraries provide every necessary and reusable function. These are common components that have to be well thought out and expertly engineered. We have a complete set of these runtime libraries from the back end to every front end imaginable, to the API level; all of it. These are designed to work well together; you can deploy them anywhere, on any cloud, on premise, or on any device. Code components in PlatformPlus® are kept up-to-date by our engineers, not yours. And updates and improvements are made available automatically–your developers never have to search for a replacement for depreciated code, and you have “one throat to choke” for end-to-end platform components and tools.
The Perils of Open-Source Libraries
Let’s say you start out with Open Source Framework 1.0. You invest in a platform, but by the time you’re done, they come out with 2.0 and it’s not backward compatible. Your code, your solution, is now legacy. And when it comes to open-source libraries, you’re responsible for maintaining and upgrading them. This creates a downward spiral of constant maintenance as open-source code is forever deprecated and replaced. Open-source code isn’t future-proof, and who are you going to hold accountable–the “community”?
Compare that to what we do; the underlying design and architecture of everything we’ve created is built on timeless first principles of software engineering and architecture. These principles and patterns were valid 30 years ago and will be valid 30 years from now. We provide a future-proof platform to our customers that we update and modernize, adopting emerging technologies and fitting them into the timeless patterns and approaches that pervade our entire technology stack.
We have customers who have been on our platform for 15 years. When they upgrade to a newer version of our stack, we help them do that with very little risk and effort on their end so their solutions stay completely modern.
The 80/20 Rule
Regardless of technology, you can and should automate 80% of your code because the reality is that only 20% of your code earns you revenue. Consider it this way–for every dollar spent in software development, 80% of that dollar isn’t getting you any return; your customers will not see it.
What does this mean for you? The remaining 20% is your special sauce, it’s what makes your product unique. Automation frees your developers up to do the things they care about–unique features and things that require human creativity and hands-on problem solving.
Imagine if your development team could spend ALL their time delivering what makes you special to the market. Automation of the 80% means you can get to market faster and drive growth. All you have to do is make a conscious decision to identify the 20% and automate the rest.
The 80/40 Rule
Of the 80% of your solution that can be automated, about 40% is purely plumbing code and we recommend that you use prebuilt components to underpin your solution. Using our prebuilt components means it’s out of the box and you’re done! You have 40% less code to write.
The other 40% is specific to your business and your solution, and we have automated that through Model-Driven Automation.
Model-Driven Automation
In your business, there are core data structures and documents that you need to deal with. We have the ability to model your existing data sources, with all data elements and their inter-relationships fully captured within PlatformPlus®, regardless of their inherent complexity. We design before we build, using our model-driven automation technique to design your model, and then let PlatformPlus® generate the other 40% of the code that is unique to your business. It’s 100% your IP, based on what you are building, and designed to work very closely with our prebuilt components.
With PlatformPlus®, we bring automation to coding itself. The combination of our runtime libraries and model-driven code automation reduces the amount of code you have to write by hand by 80%. It’s critical that this 80% is correct so your software will perform well to hold up the other 20%.
Why Not Automate Everything?
Some would say we should just automate everything; but that only has a chance of working when complexity is low. It’s important to remember that you CAN attempt to automate too much and hit a point of diminishing returns, which is why we say 80% is the automation sweet spot. Unleash the creativity and the natural talent of your people on the top 20%–that’s where they can deliver the most value.
Automation leads the way to greater efficiency in the workforce which can open up the opportunity for progress and growth. Smart use of automation will help you do a tremendous amount with a small team of your own people so you aren’t suffering from being understaffed, or relying heavily on off-shore resources 14 time zones away. Your IP will be more secure, there will be fewer opportunities for error and your team will be happier as they contribute more value to you and your customers. With PlatformPlus®, you get the automation and support that you need to succeed.
You can now embrace automation at the core of the software development process itself. Develop better software, faster, with fewer errors and bulletproof rollouts with PlatformPlus®