Spring Boot Angular 7/8/9 Server Side Pagination Tutorial

Recently I had a to help a team add pagination in their application. The application was built using:

  1. Spring Boot 2.x
  2. Angular 7
  3. Spring Data JPA

In this blog I will quickly show how to add pagination to a Spring Boot 2.2.6 and Angular 9.1.1 application.

To quickly build the application we will use the spring-boot-maven-angular-starter project I wrote a couple of years. It is updated to the latest version of Spring Boot and Angular.

Continue reading “Spring Boot Angular 7/8/9 Server Side Pagination Tutorial”

Software Architecture Diagrams as Code

I love the idea of everything as code. It enables use of version control for all aspects of software development. These days we use everything as code approach for documentation, infrastructure provisioning, deployment automation, continuous integration build jobs, pull request and issue templates, and many other things. The beauty of this approach is that it enables us to use the same tools as we use use for software development.

One aspect of the software development where we are lacking the as code approach is in creating architecture diagrams.

Continue reading “Software Architecture Diagrams as Code”

Architecture Hoisting

All software has software architecture. This is true even when a team has not spent time coming up with it. This architecture is often called Big ball of Mud. A big ball of mud architecture is a software system that lacks a perceivable architecture.

Every software system has a software architecture is similar to saying not taking a decision is also a decision.

Continue reading “Architecture Hoisting”

25 Lessons I Learned Doing Consulting Assignments

In the last few years I was involved in multiple consulting assignments. In this short post I have shared key lessons that I have learnt on how to better handle and manage consulting assignments.

  1. Don’t give feedback early. Your job for most of the time is to listen.
  2. Start documenting from the first day. Collect artifacts, screenshots, code snippet whatever that might help
  3. Invest time in creating standard templates that you can use for documenting discussions
  4. Ask questions that are open-ended. Don’t let people get away with a simple yes or no.
  5. Make sure you get access to the code base and other software development tools on the first day.
  6. Do the simple possible things. Can I build this application on my machine?
  7. Keep asking why. Ask the same questions multiple times to different people over time. You will get complete picture over time.
  8. Spend a day with the people on the ground. Don’t just hear from the client architect.
  9. Keep consulting assignment duration to max 3 weeks.
  10. Keep SoW in mind. Keep deliverables at max to 5
  11. Don’t put anything in the SoW that you don’t understand or client wants you to add
  12. Ideal team size for a 3 week consulting assignment is 3. Two technical architects and one functional
  13. Learn the basics of customer product domain. Do research on similar products. See if you can find videos or articles on technical details
  14. Spend the first day setting clear expectation. By the end of day 1 you should know the success criteria for the assignment.
  15. Make sure you consider time spent to create report is part of the assignment
  16. Keep 30 mins to an hour every day to clear doubts of the previous day
  17. Keep half day in a week to document any missing piece or clear any doubts
  18. Understand your limitations as a consultant. Don’t get into slippery territories
  19. Know you are valuable. Have self belief. This comes from knowledge and experience.
  20. Dress well. I hate to say it matters.
  21. Don’t get uneasy early because of unreasonable client or difficult conversations. Give time to yourself. After first few days things start becoming relatively easy.
  22. Don’t assume client does not know what’s wrong. People working in the organization know what’s wrong. You have to find what’s wrong quickly and then start moving in the direction of finding solution.
  23. One of the consultant task is to make things visible.
  24. Quickly figure out company politics. Don’t take any sides. Be neutral.
  25. There will be people much smarter than you. Respect them.