If you’ve ever had a hard time understanding your colleagues or other stakeholders when developing or delivering software, speaking in different “languages” or using the same terms while meaning completely opposite things, this material might be useful for you.
“If you can’t describe what you are doing as a process, you don’t know what you’re doing.” — Edwards Deming
DRY (an acronym for “Don’t repeat yourself”) is a principle of software development aimed at reducing repetition of software patterns, replacing it with abstractions or using data normalization to avoid redundancy. [Wikipedia]
Read the full Article here:
AIFORSE Framework (AIFORSE_xF)
AIFORSE Framework (AIFORSE_xF) is a suite of best practices and standards that enables and utilizes artificial intelligence for effective and efficient software engineering.
It enables you to assess and optimize performance using a proven, data-oriented approach to operations and integration. The practical tools available in AIFORSE_xF help improve end-to-end management of services across complex environments.
AIFORSE_xF is aimed to improve agility in product development, solution delivery, and outsourcing Processes, resulting in increased margins, lower costs, and optimal customer experience. AIFORSE_xF is created and evolved by AIFORSE Community members.
AIFORSE_xF also includes adoption best practices to help companies implement and use the standards and management best practices to ensure ongoing conformance.
Software Engineering Enterprise Processes Map
This is the high-level (L0) Map of all the main processes, related to production and delivery of software solutions by companies of a different type, size and specialization, independent on a software type, chosen methodologies and implementation practices. It can be used by both Product and Outsourcing Software Companies to align internally as well as with Customers, Partners, and Investors on the main Software Engineering related activities, which shall be planned, organized, run and managed.
Main Layers: Software Engineering and Solution Delivery
The main Layers of the AIFORSE Framework Software Engineering Process Map, which are the most related to the Software Production Operations are:
- Project Layer
- Product Layer
- Service Layer
- Resource Layer
They define the levels at which Organizations operate, and provide capabilities to synchronize the corresponding activities.
It combines Elements of lower level Layers (Products, Services, Resources) for a defined Customer, Timeline, Scope, and Budget.
It covers any Software with defined Users, Business Cases, and Functional Capabilities.
The Service Layer is responsible for any Operations (Manual or Automated), related to the creation or maintenance of Software (Design, Coding, Testing etc.).
It holds everything related to used or produced Resources (Logical or Physical), related to the creation, use or maintenance of Software (Workforce, Infrastructure, Artifacts etc.).
Start using the Map right now – self-check if all the operations are covered in your Company.
Click on the picture and download the file in high-resolution.
The next release will describe each element in more details and provide the definition of processes at the next (L1) Level of Decomposition.
AIFORSE Community invites everybody who is interested in the future of Software Engineering to attend a FREE Webinar.
At the Webinar you will learn:
- The main problems in Software Engineering today
- How AI can be applied to Software: two folds of the same coin
- What tasks AI can solve in Software Engineering
- Applying AI to Software Development Processes: Benefits, Examples and Trends
Speaker: Valentin Grigoryevskiy, Founder of AIFORSE Community. Valentin is a software engineering professional, passionate about making software development smarter and more exciting. Valentin has an extensive experience in development and delivery of enterprise-grade software solutions globally as a Business Analyst and a Solution Architect.
Duration: 1 hour
It’s already 10 months passed since the last update of the AIFORSE Landscape — analytical report about the actual State of the Market for Solutions, which use AI to solve Software Engineering tasks.
We are happy to publish a new version of the AIOFRSE Landscape.
Read more: link
I am Knowledge — I know…
- I ask Questions
- I learn, always
- I search for existing Solutions, Standards and Best Practices
- I share my Knowledge and help People learn new
I am Additional Value — I know What
- I don’t create what is already created
- I reuse as much as possible
- I improve
- I contribute
I am Automation — I know How
- I am against Routine Work and I don’t do it
- I value Time
- I appreciate another’s Work
- I advocate Optimization/Automation and put it into Practice
I am Rationale — I know Why
- I generate Alternatives
- I use Data to drive/prove each Decision I make
- I use Data to estimate both positive and negative Impact of each Solution I create
- I ensure all this Data is linked, stored and available for Stakeholders
AIFORSE — [AI-FOR-SE] Artificial Intelligence (AI) for Software Engineering (SE)
Apply Artificial Intelligence Methods to Software Engineering
Collaborate to apply Artificial Intelligence Methods for developing Advantageous Conditions to increase Intensity and Efficiency of Software Engineering
A New Era of Society Functioning
Create Conditions to facilitate the achievement of the following Goals:
Apply Artificial Intelligence to
- Maximize Software Engineering Process Automation
- Maximize Software Engineering Process Manageability
- Maximize Software Quality
- Maximize Software Maintainability
- Maximize Software Adaptivity
- Maximize Software Autonomy
- Maximize Software Proactivity
- Maximize Software Inferential Capability
- Minimize Software Development Costs
- Minimize Software Development Time-to-Market
Prepare Software Engineers to the changing world and make them able to drive these changes
- Build “AI for SE” Industry Development Roadmap
- Create a Framework to itemize Tasks of Software Engineering Areas
- Prepare the “AI for SE” Landscape (existing Solutions)
- Set Standards and Methodologies for related Tools and Processes
- Work out Recommendations for Implementation of “AI for SE” Projects
- Collect and describe Best Practices and Ready-for-Intelligentization Scenarios
- Provide Test Data for new Solutions/Startups to validate their Models
- Establish a Single Platform for Interchange of Best Practices, Ideas and Contacts
- Host Events (Conferences, Meetups, Hackathons, Webinars etc.)
- Enable Presentment and Discussion of new Services and Products
- Crowdsource to identify main Pain Points related to Software Engineering, collect all Requests for Software Engineering Intelligentization and new Ideas for what and how can be improved
- Provide an Ability to promptly find Experts in the particular Subject Matter
- Support existing Open Source Projects, initiate the creation of new Projects; systematize them and prepare Recommendations for its usage
- Generate Industry Innovations
- Define Ways of Society Development Intensification through Software Engineering Technologies Development
- Initiate and conduct Researches
- Trigger new Intelligentization Projects by matching Tasks and Solutions
- Create Engineer Development Plan “The Software Engineer of Tomorrow” for next Professions: Software Business/System Analyst, Software Developer/Engineer, Software QA Engineer, IT Project Manager, Software Sales Manager, Software UI Designer
- Compile Courses for Software Engineers to meet the upcoming Requirements
- Popularize the Subject among Students by involving them in Practical Projects
Everybody, who is related to Software Engineering and/or Artificial Intelligence.
Also, people who are neither first nor second, but want to make the world better and still don’t know how (as this is a good way to start).