Practical sessions with Abcd, Jake and review tools
2024-09-09 (last update)
/ (published at) 2024-08-26
Introduction
In a company where software quality is paramount and where products evolve,
complexity increases over time.
One way to get consistent and predictable results is to automate
(in a known and expected way)
additional tasks required of employees in addition to product development.
Warm Zero tools were designed to keep this automation simple and predictable
over time.
One of the main goals is to help developers and testers do less context
switching so they can focus on the project logic.
Next can be seen, for each role: the actions taken and what people can encounter.
- There is the regular, day-to-day use case
where the main focus is on project development.
The generic name "Developer" was chosen,
for any developer expertise from novice to expert.
- There is a rare use case, 1 or 2 per year or maybe less than that,
where the main purpose is to configure the tools
according to a specific company (or customer) process.
The generic name "SuperDev" was chosen,
for a person who knows very well all the internal or external tools of the company,
and knows how to get the most out of these tools with minimal user effort.
Notes:
- These are examples that follow a specific script. Take them as such.
- The scripts are far from covering all possible scenarios for all companies.
- A coloring tool was used in the terminal to highlight important words or lines.
The output of Abc, Jake, and Make is not color-coded.
- A very similar video can be made while using Windows instead of Linux.
eg.
Instead of xfce terminal, use mintty from git.
Instead of Mousepad or Kate, use Notepad++ with the NppExec plugin.
Daily Developer interaction with Abc, Jake and code review tools
YouTube: Daily Developer interaction with Abc, Jake and code review tools
Daily Developer interaction with Abc, Jake and code review tools
Abc takes over the role of the build system, unseen but smart and fast.
It does not need developer interaction or attention,
other than minimal project interdependencies
which developers should control.
At the same time
each project may deviate greatly from the common configuration,
as developers want.
The goal now is to see the capabilities of the build system
on a typical working day.
A terminal is more suitable to reveal as much as possible what is behind.
Text editors are used for the rest of the developer's actions.
Additional notes:
- Abc can be easily used from an IDE
as it provides up-to-date information on new changes in each project structure.
Even for newly generated source files.
- An IDE helps with code completion and other tasks,
but it is not usually involved in the build phase of interdependent projects.
- While an IDE could have been used, a particular IDE is not the main actor here.
Nor should it distract from the main purpose.
Abc has been preconfigured
for all projects and programming languages of interest.
Projects are guided by the company's standard tools and rules.
For you, that means:
your company's tools, your rules, your process.
..........
Summary:
- Run once 'abcd' at start.
- Split the project into libraries and main project.
- Moved chunks of code to the right place.
- Set the exact libs per project.
(Control what gets added to the build.)
- Untangled OS-specific code, previously shadowed by ifdef-s.
- Even 2x main() is supported, one for each OS.
(One day maybe to try the same thing on BSD and Mac.)
(Then there will be 4x main() but not mixed with each other!)
Abc quickly adapted everything to all changes.
What will change for the day-to-day work of developers?
- Less or no time spent adapting the build system.
- Coding style, coding rules and code quality are checked.
Nice! It helps to catch glitches before the review phase!
- Fast build overall, even with additional process tools.
Quick response time.
Only changed parts need to be checked with parallel jobs.
A full rebuild is always available.
- ... And many more useful features to discover.
Yearly SuperDev interaction with Abc, Jake and code review tools
YouTube: Yearly SuperDev interaction with Abc, Jake and code review tools
Yearly SuperDev interaction with Abc, Jake and code review tools
Abc takes over the role of the build system, unseen but smart and fast.
It does not need developer interaction or attention,
other than minimal project interdependencies
which developers should control.
At the same time
each project may deviate greatly from the common configuration,
as developers want.
The goal now is to see the capabilities of the build system
on a typical working day.
A terminal is more suitable to reveal as much as possible what is behind.
Text editors are used for the rest of the developer's actions.
Additional notes:
- Abc can be easily used from an IDE
as it provides up-to-date information on new changes in each project structure.
Even for newly generated source files.
- An IDE helps with code completion and other tasks,
but it is not usually involved in the build phase of interdependent projects.
- While an IDE could have been used, a particular IDE is not the main actor here.
Nor should it distract from the main purpose.
Goal for today:
Prepare the build system for use by developers,
with the tools and rules in the company.
For you, that means:
your company's tools, your rules, your process.
..........
Summary:
- Clear build flags.
No hidden/renamed build settings.
- Easy to use for cross platform compilation and testing.
- Plain simple integration of specialized tools into the build system.
Abc quickly adapted everything to all changes.
What will change for the day-to-day work of developers?
- Less or no time spent adapting the build system.
- Code review tools (style/conventions/quality/tests)
are used at the right place and time.
The developer is notified early about possible problems,
and so they can learn coding rules faster
and find regression bugs faster.
- For developers and reviewers,
the main thing they care about now is the logic of the product.
- Quality is built on top of existing quality.
- Fast build overall, even with additional process tools.
Quick response time.
Only changed parts need to be checked with parallel jobs.
A full rebuild is always available.
- ... And many more useful features to discover.