Blog posts
Meeting Deadlines at All Costs is a Mistake!
The Necessity of Deadlines
Deadlines are necessary. Whether you work in Scrum (Agile) or a waterfall-like methodology, one thing is certain: without deadlines, there is no motivation. According to Parkinson’s Law (no relation to the disease), deadlines are essential.
Read MoreA Few Words About Naming – Methods (In Progress)
Note: This article is a work in progress!
Maybe the topic seems trivial and worn-out, as everyone knows that you need to create clear, unambiguous names. However, it’s still a greatly neglected area. Teams are still far from understanding that the most depends on naming. No refactoring has as much power as changing a name. It is primarily the names, if used correctly, that form what is called self-documenting code, creating a clear language in the source code of the system you are building.
Read MoreCase of Scope Creep - A Simple Introduction to BDD Part 4
Introduction
In the dessert of JBehave, Behaviour-Driven Development, and the calculator (yay), we present the last part of our series.
Read MoreImplementation - A Simple Introduction to BDD Part 3
Introduction
Continuing our journey with JBehave and Behavior-Driven Development (BDD), today we will move on to implementation. We’ll also explore some of the interesting features of this tool.
Read MoreThe First Story - A Simple Introduction to BDD Part 2
Starting the Brain
We are ready to dive into Behavior Driven Development (BDD). Let’s kick off with JBehave and get things rolling.
Read MoreA Simple Introduction to BDD Part 1
A Simple Introduction to BDD Part 1
Today marks the premiere of my screencast, which is essentially my initial foray into video blogging and sharing insights in this format.
Read MoreThe Natural Order of Refactoring Under the Microscope Part 5: Evolution of Architecture
Architectural Evolution
An essential next step, at a much higher level of abstraction, requires a deep understanding of the system. Based on emerging patterns and developing domain objects, over time we realize the need to modify the architecture. Architectural patterns or the introduction of other architectural mechanisms can assist us. Such transformations may include:
Read MoreThe Natural Order of Refactoring Examined Part 4: Refactoring to Patterns
The Natural Order of Refactoring Examined Part 4: Refactoring to Patterns
By following the steps outlined previously, we begin to see a more structured solution, predominantly consisting of methods grouped into classes. It’s now time to apply object-oriented principles, such as those encapsulated by the SOLID principles. We analyze the code for patterns of repetition, the need for flexibility, and code smells, and introduce design patterns where appropriate.
Read MoreThe Natural Order of Refactoring Under the Microscope Part 3: Extract Method
Analyzing Class and Method Responsibilities
In the next step, we examine the responsibilities of individual classes and methods, checking if they align with the intended responsibility of the class. It is best to analyze all methods and group them based on performing similar operations. We look for a place for these in other classes or a new class. Remember: if there is a significant private method in a class (longer than 3-4 lines), it should be moved to another class.
Read MoreHave You Ever Thought About a Career as a Trainer/Consultant?
As our activities at BNS IT (bnsit.pl) continue to expand, we have openings for individuals eager to work with others to share knowledge and experience. We aim to support teams in increasing their work efficiency.
Read MoreCategories
- Agile ( 1 )
- Agile Conferences ( 1 )
- Agile Development ( 1 )
- Agile Philosophy ( 1 )
- Agile Practices ( 16 )
- Architecture ( 1 )
- Artificial Intelligence ( 2 )
- BDD ( 3 )
- Behavioral Patterns ( 1 )
- Best Practices ( 4 )
- Books ( 1 )
- Business Strategy ( 2 )
- Career Advice ( 1 )
- Career Development ( 1 )
- Career Opportunities ( 1 )
- Client Collaboration ( 1 )
- Client Relations ( 1 )
- Code Quality ( 3 )
- Code Refactoring ( 1 )
- Communication ( 2 )
- Community Development ( 1 )
- Complexity Theory ( 2 )
- Conferences ( 3 )
- Conflict Management ( 1 )
- Cultural Perspectives ( 1 )
- Design Patterns ( 1 )
- Employment ( 1 )
- Healthcare Experiences ( 1 )
- Java User Group ( 1 )
- Java User Groups ( 1 )
- Knowledge Development ( 1 )
- Leadership ( 17 )
- Leadership Skills ( 1 )
- Management ( 1 )
- Management Practices ( 1 )
- Meeting Facilitation ( 2 )
- Online Tools ( 1 )
- Organizational Culture ( 1 )
- Personal Development ( 5 )
- Personal Growth ( 2 )
- Personal Insights ( 1 )
- Personal Productivity ( 1 )
- Philosophy ( 1 )
- Poetry ( 1 )
- Problem Solving ( 1 )
- Productivity ( 7 )
- Productivity Tips ( 2 )
- Professional Development ( 1 )
- Programming ( 2 )
- Programming Patterns ( 1 )
- Programming Practices ( 2 )
- Programming Techniques ( 1 )
- Project Management ( 16 )
- Refactoring ( 7 )
- Research Techniques ( 1 )
- Scientific Methodology ( 1 )
- Scrum ( 1 )
- Scrum Practices ( 2 )
- Software Architecture ( 2 )
- Software Design ( 1 )
- Software Development ( 35 )
- Software Engineering ( 1 )
- Team Building ( 1 )
- Team Development ( 1 )
- Team Dynamics ( 3 )
- Team Management ( 4 )
- Team Meetings ( 1 )
- Technical Management ( 1 )
- Technology and Culture ( 1 )
- Testing ( 2 )
- Time Management ( 1 )
- Work Strategies ( 1 )
- Workplace Dynamics ( 1 )
- Workshops ( 2 )
Tags
- 20/80 Rule
- 33rd Degree 4charity
- Acceptance Testing
- Agent Frameworks
- Agent Patterns
- Agile
- Agile Development
- Agile Mindset
- Agile Practices
- Agile Prague
- Agile Tour Vilnius
- Agility
- AI Agents
- AI Workflows
- Architectonic Mantra
- Architecture
- Architecture Documentation
- Architecture Evolution
- Archive
- Assertiveness
- Automated Testing
- Awareness
- BDD
- Behavior-Driven Development
- Behaviour-Driven Development
- Best Practices
- Book Release
- Business
- Business Priorities
- Business Relations
- Business Strategy
- C#
- Cambridge
- Career Development
- Career Transition
- Change
- Change Management
- Charisma
- Clean Code
- Client Communication
- Client Relations
- Code Cleanup
- Code Improvement
- Code Practices
- Code Quality
- Code Readability
- Code Samples
- Code Smells
- Code Standards
- Coding Practices
- Coding Standards
- Coding Style
- Collaboration
- Commitment
- Communication
- Complex Systems
- Compose Method
- Conferences
- Conflict Resolution
- Constraints
- Consulting
- Context
- Continuous Integration
- Continuous Refactoring
- Core Domain
- Corporate Culture
- Cracow
- Culture
- Cynefin
- Cynefin Framework
- Data Organization
- DDD
- Deadline
- Deadlines
- Decision Making
- Design Patterns
- Design Retrospective
- Developers
- Development Challenges
- Distraction
- Distributed Teams
- Documentation
- Domain Expert
- E2E Testing
- Effective Meetings
- Employee Engagement
- Employment
- Encapsulation
- Environment Simplification
- Essentialism
- Estimation
- Evidence
- Evolutionary Architecture
- Evolutionary Paths
- Expert Skills
- Extract Method
- Facilitation
- Focus
- Google Notebook
- GTD
- Habits
- Hacker Culture
- Healthcare
- Heuristics
- Historical Influence
- Human-Side
- Humanity in Business
- Implementation
- Implementation Patterns
- Implementational Patterns
- Incremental Work
- Information Management
- Information Sources
- Innovation
- Integration Testing
- Intention vs Content
- Interdisciplinary Teams
- Introduction
- IT Leadership
- IT Management
- IT Projects
- Java
- Java Community
- Java Programming
- Javarsovia
- JBehave
- JDD 2015
- Job Market
- Job Satisfaction
- JUG
- Kanban
- Knowledge Management
- Large Language Models
- Leader
- Leader Role
- Leadership
- Leadership Challenges
- Leadership Development
- Leadership Skills
- Leadership Strategies
- Lean
- Learning Strategies
- Legacy Code
- LLM
- LLM Agents
- Maintainability
- Management
- Master-Slave Mentality
- Mediation
- Meeting Facilitation
- Meetings
- Mentoring
- Method Naming
- Methods
- Mindfulness
- Models
- Motivation
- Multitasking
- MVC
- Naming
- Natural Order of Refactoring
- Negotiation
- NFZ
- NoEstimates
- Non-Violent Communication
- Nonviolent Communication
- Note-Taking
- Object-Oriented Design
- Object-Oriented Programming
- Onboarding
- Online Tools
- Organization
- Organizational Issues
- Pareto Principle
- Parkinson's Law
- Participatory Management
- Performance Appraisals
- Personal Development
- Philosophy
- Planning
- Planning Meetings
- Poetry
- Poland
- Prague
- Pressure
- Preventive Care
- Prioritization
- Proactive Thinking
- Problem-Solving
- Product Owner
- Productivity
- Professional Development
- Professionalism
- Profit Maximization
- Programming
- Programming Practices
- Project Management
- Project Planning
- Prompt Engineering
- Realistic Deadlines
- Refactoring
- Remote Access
- Requirements
- Requirements Gathering
- Research
- Responsibility
- Retrospectives
- Science
- Scope Creep
- Scrum
- Scrum Guide
- Scrum Implementation
- Scrum Master
- Self-Documenting Code
- Self-Improvement
- Self-Organization
- Servant Leadership
- Shared Context
- Soft Skills
- Software Architecture
- Software Development
- Software Engineering
- Software Testing
- SOLID Principles
- Source Code
- Source Code Management
- Standups
- Strategy
- Structuring Meetings
- System Design
- System Efficiency
- Task Management
- Task Prioritization
- TDD
- Team
- Team Collaboration
- Team Communication
- Team Development
- Team Dynamics
- Team Efficiency
- Team Leadership
- Team Learning
- Team Management
- Team Meetings
- Teamwork
- Technical Debt
- Technical Leader
- Technical Leadership
- Technology
- Test-Driven Development
- Testing Strategies
- Time Management
- Timeboxing
- Training
- Transformational Leadership
- Trust
- Truth
- Unit Testing
- Up-Front Design
- User Group
- User Interface
- User Stories
- Vertex Testing
- Vision
- Warsjawa
- Web 2.0
- Work Efficiency
- Workflow
- Workplace Culture
- Workshops
- Łódź
- Łódź JUG