E-Book, Englisch, 300 Seiten
Padabed / Voronin Building an Application Development Framework
1. Auflage 2025
ISBN: 978-1-83620-856-3
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection
Empower your engineering teams with custom frameworks
E-Book, Englisch, 300 Seiten
ISBN: 978-1-83620-856-3
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection
Transform the way you build software with ADFs designed for agility and success. In today's competitive tech landscape, inefficient software development processes can hold your organizational back. Written by two tech experts who have architected success across many cutting-edge startups, Building an Application Development addresses this challenge by introducing you to the power of ADFs. You'll explore core concepts, uncover the strategic advantages of ADFs, and learn how to architect a custom framework tailored to your specific needs and business goals.
Through practical guidance and real-world case studies, you'll gain mastery over critical elements, such as version control, packaging, testing, and documentation. The book emphasizes fostering an extensible ecosystem for your ADF, empowering your engineering teams to navigate the ever-evolving technological landscape with confidence and agility.
Ivan Padabed and Roman Voronin bring their experience of transforming complex engineering challenges into scalable solutions to equip you with the knowledge you need to drive efficiency, enhance quality, and achieve long-term success through a powerful, reusable ADF that can adapt to changing requirements.
By the end of this book, you'll be able to unlock the potential of your development processes and elevate your team's productivity.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
2
Strategizing ADF for Success
Every engineer intuitively understands the importance of Application Development Frameworks (ADFs). From the perspective of an ADF builder, we would like to see our framework as part of many popular software products and get positive feedback from experienced engineers. This chapter aims to elaborate on ADF’s success through value creation. This chapter is also exciting for the Technical Product Manager (TPM) role, as it can help manage stakeholders’ expectations for a framework-building initiative.
We review preconditions and opportunities for building our own ADF. To become successful with Application Development Frameworks, we must follow suitable Builder mental models and understand their Consumer mental models. The chapter includes a section on the importance of adopting the Open-Source Software development paradigm even if you build proprietary or commercial ADF. The chapter wraps up with a section on the ADF Maturity Model, allowing readers to align their own organizational context with expected ADF benefits. We will cover the following main topics:
- Introducing Systems Engineering as the Grounding Theory
- Establishing a Context for the Framework
- Defining ADF Success Factors
- Exploring a software development lifecycle model
- Estimating success metrics and ROI
- Shift towards Open-Source Software (OSS) paradigm
So, let’s examine why you might be interested in building your own application development framework and why others might be interested in using it.
Introducing Systems Engineering as the grounding theory
In the previous chapter, we emphasized the importance of considering various stakeholders’ expectations to succeed in developing an ADF.
This section provides a foundation for this chapter by explaining from the perspective of the Systems Engineering discipline. We use Systems Engineering (SE) as the grounding theory for this chapter and reference it in many other ones because this discipline was explicitly designed to support a delivery. According to the Systems Engineering Body of Knowledge (SEBoK, https://sebokwiki.org/), “SE is a transdisciplinary approach and means to enable the realization of successful systems. Successful systems must satisfy the needs of their customers, users, and other stakeholders.”
While we won’t utilize the full-scale SE for framework modeling, we will leverage some core principles of SE to enhance the structure and clarity of our ADF models and descriptions in this book. For more comprehensive information, I recommend referring to the SEBoK and the resources provided by the International Council on Systems Engineering (INCOSE), which offer comprehensive guidelines and frameworks for addressing the operational environment in systems engineering practices.
This chapter will focus on two concepts derived from systems engineering.
- Operations environment: This term refers to the conditions and factors under which a system is anticipated to function. It encompasses both the physical and operational contexts in which the system operates, including environmental conditions, user interactions, and interactions with external systems or processes. Understanding and defining the operations environment is crucial for establishing system requirements and ensuring effective performance under real-world conditions.
In other words, the conditions of the system come from its operations environment.
- Lifecycle: Another vital concept borrowed from systems engineering is the notion of the lifecycle (in the software industry, it is called SDLC for software development lifecycle). The concept refers to the stages a system undergoes from inception to retirement. According to SEBoK and INCOSE, the system lifecycle encompasses several vital phases: concept definition, development, production, utilization, support, and retirement. As the book is about the framework’s creation, we will discuss four initial phases: concept definition, development, production, and utilization.
More importantly, it does not focus on stages but instead on the lifecycle model, which operates with that compose the software production flow.
The relation between SDLC and software product is : we can say that SDLC software product.
Let’s take what we can get from the first concept: exploring the ADF operations environment.
Establishing a Context for the framework
The first concept from the Systems Engineering that we want to use here is the operations environment. In most cases, applying it to the development process is not valid due to the significant difference between design-time and runtime. However, the framework case is an exception because the most essential part of the framework’s value is in design-time. More details will come with the next chapter, but in brief, we have the following decomposition of ADF concerning design-time and runtime focus:
- Runtime (Software Product operations)
- Libraries, plugins, and extensions
- Runtime tooling (like logging or performance counters)
- Design-time (SDLC operations)
- Control flow
- Architecture guardrails
- Testing tools
- SDLC tooling (like scaffolding, deployment, migrations, or linters)
We also mentioned this difference in (see as a reference).
Figure 2.1: SDLC and ADF enable a software product
Quick tip: Need to see a high-resolution version of this image? Open this book in the next-gen Packt Reader or view it in the PDF/ePub copy.
The next-gen Packt Reader and a free PDF/ePub copy of this book are included with your purchase. Scan the QR code OR visit packtpub.com/unlock, then use the search bar to find this book by name. Double-check the edition shown to make sure you get the right one.
So, for any ADF, we can define its primary operations environment as a production software development project. It means that we literally (utilize, get value from using it) in the process of working on a production software development project.
We have enough historical evidence that the most natural and evolutionary way to build a framework is to extract it from an ongoing software development project. For reference, two top-tier web frameworks are born from the real-world struggles and demands of building complex software. Let’s dive deeper into the two examples using Django and ReactJS to understand how this process works:
Django
- Problem: In 2003, developers at the Lawrence Journal-World newspaper (LJWorld) faced the challenge of building and maintaining a dynamic news website under tight deadlines. Traditional web development tools often led to repetitive code and difficulties in scaling.
- Solution: The developers turned to Python, a language known for its readability and rapid development capabilities. They started extracting reusable components and functionalities from their ongoing website project to meet deadlines and ensure clean, maintainable code. This gradually evolved into a more comprehensive framework – Django.
- Key Considerations: Django’s design was shaped by the specific needs of a news website: handling content creation, user management (for journalists and editors), and efficient content delivery. These practical constraints drove features like a built-in admin panel, robust content management tools, and a templating system for dynamic page generation – all core functionalities in Django today.
- Evolution to Open Source: Though LJWorld itself migrated to WordPress later, Django’s open-source release in 2005 allowed other developers to leverage its strengths for various web applications. Today, Django powers complex websites like Pinterest and Instagram, demonstrating its adaptability beyond its original news media purpose.
ReactJS – building a better ads engine
- Problem: Between 2011 and 2013, Facebook developers faced challenges in managing the complexity of their search functionality and the upcoming Facebook Ads platform. Traditional DOM manipulation techniques were cumbersome and time-consuming.
- Solution: The Facebook engineering team created ReactJS as an internal tool to streamline the development process. React’s core principle – a component-based architecture – made building complex user interfaces (UIs) for features like ad creation and management...




