Showing posts with label Software Development. Show all posts
Showing posts with label Software Development. Show all posts

Saturday, September 12, 2026

How to Fast-Track Software Development with Claude Code and AI

AI is changing the way software developers approach their daily work. It is no longer limited to generating a method, explaining an error, or completing a few lines of code.

AI coding tools can now work with an entire codebase, understand existing implementations, analyze requirements, create implementation plans, modify multiple files, run tests, investigate failures, and help developers move from an idea to a working solution much faster.

Recently, we have been using Claude Enterprise with Claude Code, together with the GSD (Get Shit Done) approach and its associated skills, as part of our software development workflow.

The experience has been interesting because the biggest productivity improvement does not come from simply asking AI to "write code." It comes from giving AI a structured way to understand the problem, work through the implementation, verify the result, and iterate.

In this article, I'll share how we are using this approach, where it can help developers, what we can delegate to AI, and where human involvement is still critical.

What Exactly Is Claude Code?

Claude Code is an AI-powered coding environment that can work directly with a software repository. Instead of copying a small piece of code into a chatbot and asking for a solution, developers can give Claude access to the project and allow it to work with the actual codebase.

Depending on the task and permissions, Claude can:

  • Explore the repositories — in our case, Claude can map and understand multiple codebases.
  • Read and understand existing code
  • Analyze dependencies
  • Search for relevant implementations
  • Understand project structure
  • Plan changes
  • Modify files
  • Create new files
  • Run commands
  • Run tests
  • Investigate test failures
  • Fix implementation issues
  • Review changes
  • Help with Git workflows
  • Generate or update documentation

What Is GSD?

GSD stands for Get Shit Done.

The important idea behind the approach is not simply getting AI to generate code quickly. It is about giving the development task a structured execution process. A large requirement can be broken down into smaller, manageable tasks.

This approach makes AI much more useful for real-world development.

Our Setup — Claude Enterprise, Claude Code & IntelliJ IDEA

For our development work, we have been using Claude Enterprise with Claude Code along with IntelliJ IDEA

  • Claude Enterprisethe organizational environment and controls we use.
  • Claude Code = the coding agent/tool you are actually using for development.
  • GSD + Skills = the structured workflow and capabilities you are applying with Claude Code.
  • One of the useful aspects of Claude Code is that it can work with the actual project rather than requiring us to copy individual classes or code snippets into a chat.

    In our case, we also work with multiple code repositories. Claude can explore the relevant repositories and help us understand how different components are connected and where a particular change may need to be made.

    This is particularly useful when a requirement crosses application boundaries or when we need to understand an existing implementation before making changes.

    For this article, I've used Claude Code with IntelliJ IDEA as my development environment. However, Claude Code isn't limited to IntelliJ IDEA. You can use it with your preferred IDE or directly from the command prompt/terminal, depending on your development workflow and setup.

     How We Use Claude Code

    GSD Approach — How We Structure the Work

    One of the key parts of our workflow is the GSD approach. Instead of immediately asking Claude to implement a requirement, we first allow it to understand the problem and the existing codebase.

    A simplified version of the workflow looks like this:

    Requirement → Understand → Research → Plan → Implement → Test → Review → Refine

    This approach is useful for larger development tasks where simply generating code isn't enough. For example, before implementing a change, Claude can first explore the relevant repositories, identify the existing implementation, look at related tests, and understand how different components interact.

    It can then create a plan for the proposed change. This gives us an opportunity to review the approach before implementation begins. The important part is that the developer remains in the loop.

    We don't simply provide a requirement and accept whatever code is generated. We review the understanding, validate the proposed approach, provide additional context where required, and then allow the implementation to proceed.

    If you're starting a new project

    The typical workflow is:

    /gsd-new-project
           ↓
    /gsd-discuss-phase 1
           ↓
    /gsd-plan-phase 1
           ↓
    /gsd-execute-phase 1
           ↓
    /gsd-verify-work 1 


     
    But, if you have an existing project, start with /gsd-map-codebase to understand the existing repositories, structure, and relationships before making changes. Then follow the GSD workflow: Discuss → Plan → Execute → Verify.
     /gsd-map-codebase
            ↓
    /gsd-discuss-phase 1
            ↓
    /gsd-plan-phase 1
            ↓
    /gsd-execute-phase 1
            ↓
    /gsd-verify-work 1
            ↓
    /gsd-progress 
     

    Tip: If you want to explore the GSD commands available in your Claude Code environment, use the /help command. It provides information about the available commands and how to use them.

    Skills — How Skills Help Claude 

    Another important part of our setup is skills. Skills provide reusable instructions and context that help Claude follow project-specific conventions, such as coding standards, testing, validation, architecture, and documentation.

    Combined with GSD, they help Claude work more consistently across different types of development tasks, especially in a larger codebase. 

    Skills can cover different types of development work, such as research, planning, implementation, testing, code review, debugging, and documentation. The available skills depend on your project setup.

     

    The important point is that skills don't remove the need for developer judgement. They help provide structure and consistency, while the developer remains responsible for the final outcome. 

    What Claude Code Can Do 

    Claude Code can help with codebase analysis, planning, implementation, testing, debugging, code review, and documentation.

    For enterprise applications, the key benefit is its ability to understand existing code across multiple repositories and work within the project's context, helping developers make changes faster while maintaining existing architecture and standards. 

    Developer in the Loop — Supervision and Validation

    This is probably the most important part of using AI for software development.

    AI can accelerate development, but the developer should remain in the loop.

    Claude can explore the codebase, create plans, modify code, and run tests. But we still need to review whether it understood the requirement, followed the existing architecture, made the right changes, and covered the necessary tests. A passing test does not always mean the implementation is correct. AI can misunderstand business requirements or make assumptions that don't fit the system.

    Our approach is therefore not:

    Requirement → AI → Final Code

    Instead:

    Requirement → AI → Developer Review → Implementation → Validation → Approval

    The developer remains responsible for the final technical decisions and quality of the software.

    Our Practical Workflow

    • Understand — Start with the requirement and provide the necessary context.
    •  Explore — Let Claude understand the relevant repositories, code, dependencies, and existing implementation.
    •  Plan — Create and review the implementation plan before making changes.
    •  Implement — Claude makes the required changes across the relevant files or repositories.
    •  Test — Run tests, investigate failures, and fix issues.
    •  Review & Refine — Review the Git diff and overall implementation, then refine if needed.

    This gives us an iterative process where AI does the heavy lifting, while the developer stays in control.

    Asking Claude to Create a Mock OrderDto Response
     
     

     

    Real Development Example

    For a real task in our project involving schema tracking and lineage, we used Claude across multiple repositories to understand the existing implementation, plan and implement the changes, and validate the results.

    For the lineage UI, we used React Flow to visualize the relationships between datasets and components.

    This is where GSD + skills + developer supervision helped us move faster while keeping the developer in control.

    The screenshots below are from our actual development environment, with project-specific information removed or anonymized where required.

     Sample Lineage graph1 

     

    Sample Lineage graph2 

     

    What Worked Well and What to Watch

    What Worked Well

    Claude Code has been especially useful for understanding code, working across repositories, planning, coding, testing, and debugging.

    The biggest benefit is saving time across the development cycle and getting to the solution faster.

    What to Watch

    AI can hallucinate, misunderstand requirements, introduce bugs, make unwanted changes, over-engineer solutions, or create tests that don't fully validate the requirement. Clear instructions, developer supervision, review, and validation are therefore essential.

    Conclusion

    After using this approach in our day-to-day work, I feel Claude Code + GSD + skills can genuinely save a lot of development time. It doesn't replace the developer. 
     
    It helps with the work around coding — understanding the codebase, exploring repositories, planning, testing, and debugging.
     
    For me, the simple takeaway is:
     
    Let AI do more of the work, but keep the developer in control.

    Tuesday, January 24, 2017

    Adding Groovy to Your Resume: Why Learn Groovy?

    Adding Groovy to your Resume.


    Are you adding groovy to your resume this year ? As a developer with 3-8 year experience you need heterogeneous number of technical skills. To compete a challenging goal and if you are seeking a challenging position , you need many skill sets . Only Java skills will not help you crack the interview.

    Now-a-days most of the organizations are expecting a resource with full stack development experience.You can find more about full stack development in another post.


    By adding Groovy to your resume will help you to build a positive impression for shortlisting your profile. Interview will always have a positive and negative result. But, shortlisting your profile is most important factor.

    Groovy is quite old, but still you need Groovy for certain solution design. Once you added Groovy to your resume , make sure you are ready with all possible questions from interviewer. Sometimes , even you have hands on experience but you can't prompt your answer.

    If you see what exactly Groovy is , you can say It's a kind of scripting language. It's a dynamic language with features similar to those of Python, Ruby, Perl, etc. It can be used as a scripting language for the Java Platform, is dynamically compiled to Java Virtual Machine (JVM) byte code, and interoperates with other Java code and libraries.  

    Groovy uses a Java-like curly-bracket syntax and its really very easy to implement.

    Finally again, its very clear that adding Groovy in your resume will help to shortlist your profile.This will increase the chance of hiring. Apart from job chance, this will impress the interviewer , if you are prompting with right answer :) :)

    Find more posts  related to Groovy Programming Language.


    Hope this will help you!!!

    Tuesday, September 13, 2016

    How to Create a Git Tag

    How to create tagging on git.



    Really creating tag is  one of the best practice for development and maintain version. 


    As per my understanding production release for your code is a nightmare , we don't know what will happen ???????

    Also to maintain the code base stable and safety we need this tagging. This is quite often developers do google for tagging the their code (branch / master) for safety and reference future use.

    This is quite simple , and below example will help you to understand the commands on command line.

    Clone your code branch (use clone command to clone the code)

    git clone https://your.user.name@stash.jdgnet.com.au/scm/enabler/testcode.git

    Switch your expected branch (i.e.  bugfix/jdctagging) , which you want to create tagging and make sure you are inside the expected branch.

    dev@jdg-developer-desktop ~/jdgtaggingdemo/test $ git checkout bugfix/jdctagging
    Branch bugfix/testing set up to track remote branch bugfix/jdctagging from origin.
    Switched to a new branch 'bugfix/jdctagging'
    dev@jdg-developer-desktop ~/jdgtaggingdemo/test $ git branch
    * bugfix/jdctagging
      master


    Create the tag with below command, you can specify the tag version name.

    dev@jdg-developer-desktop ~/jdgtaggingdemo/test $ git tag -a "v1.taging.version1" -m "commiting with for test tagging for my branch code"

    Check the tag got created on above command.

    dev@jdg-developer-desktop ~/jdgtaggingdemo/test $ git tag
    v1.taging.version1

    Push the newly created tag into remote server (stash)

    dev@jdg-developer-desktop ~/jdgtaggingdemo/test $ git push origin v1.taging.version1
    Password for 'https://your.user.name@stash.jdgnet.com.au':
    To https://your.user.name@stash.jdgnet.com.au/scm/enabler/test.git
     * [new tag]         v1.taging.version1 -> v1.taging.version1

    If you don't want to push the tag by name and you want to push all tags then use below command. In my example I have only created one tag and I didn't use the below command.


    git push origin --tags


    Now you can see the [new tag] got created on remote server. See the snapshot below , showing the tag on stash.