We’re constantly looking for ways to streamline the BI development process. Data mapping (source to target) can be a complex and cumbersome process due to: Ongoing model changes – the target moves! Poor (or “loose”) communication between those mapping and the development team. Lack of consistency in collecting and documenting mappings (Excel, I’m looking at […]
Posts Tagged ‘agile’
Code Kata Plus
What is Code Kata? Code kata is a concept that proposes to hone programmer’s skill by doing small problems many times trying to improve the code at each iteration. Code Kata Plus? But as a programmer, we are not programming in a vacuum. We use tools, commands, IDE etc. Start paying attention to these things […]
Iterative BI + Gradle Tips and Tricks: Building a Custom Plugin
To build a custom plugin in groovy, do this. I know this seems redundant, but it wasn’t as clear as it should have been. 1. Create a project directory. Just a plain ol’ directory. Wherever you like. 2. Add the source file subdirectories: src\main\groovy\… (with the package path you’d like to use. We have src\main\groovy\com\perficient\gradle) […]
Iterative BI + Gradle Tips and Tricks – Plugins
Quick tip of the day: Use Gradle plugins to package up functionality for easy reuse. For example, we developed a simple “database” plugin to handle the common tasks associated with building and upgrading a database. Things like: build – create a new database from scratch. Runs the CREATE DATABASE and sqlcmd’s the full DDL upgrade […]
Iterative BI + Gradle Tips and Tricks: A Primer on Gradle Objects
While the Gradle manual is extensive, since we’re not building an executable or the like from source code, many of the concepts are a little opaque. Here’s a quick primer on Gradle for BI: Gradle is “project” based, with each project containing a set of inter-dependent tasks which in turn contain actions: The whole thing […]
Iterative BI – Building with Gradle
We’ve chosen Gradle as our build system for our iterative BI environment. It’s a powerful tool, but there’s a bunch of awesomeness in there. Gradle uses Groovy as its scripting language. Groovy is just plain great. You get the power of the Java platform in a scripting language and can do things like this: def […]
How to stop worrying about broken builds
In traditional CI workflow, if you checked in something and broke the build, you would block the whole team. You might end up checking in less frequently. Or the team need to enforce some kind of check in policy. These do not make any sense to me. CI is supposed to give me rapid feedback, and […]
Baking a cake
One might ask: “What does baking a cake have to do with project delivery?” Actually the process of baking a cake is a great analogy to help understand a common practice which often results in projects spinning out of control leaving both the team developing the project the project’s clients dissatisfied and disappointed.
What is SQA?
Many new employees always ask such questions ‘What is SQA?’, ‘What SQA do in the project?’. To answer these questions I will introduce the SQA role in this post. There is one process area in CMMI model which is PPQA (Process and Product Quality Assurance). It has several objectives, Objectively Evaluate Processes and Work Products […]
Sonar vs IntelliJ IDEA
You can use Sonar or IntelliJ IDEA to write better Java code. But both tools have their good and bad. Sonar The Good Macro metrics, e.g. Complexity / method, you can get a overall sense of the code quality of the whole code base CI integration by triggering a build failure, you can’t ignore Sonar’s […]
Agile estimation and planning: Part 3
In Part 1 and Part 2 of this series, we investigated why we use relative estimation as the foundation for our estimation and planning process. In this article we will look at a second aspect of Agile estimation that helps us improve the accuracy of our estimates. Traditional estimation is an expert estimation technique: that […]
Contract Models of Multi-shore projects (II) – Time and Materials
Time and Materials projects are based on hourly, weekly or monthly charges per person. It offers more flexibility and is more suitable for projects that: The initial scope is not defined precisely enough to make a reasonable estimation. The client would like to make changes frequently as they go. The project scope and requirements evolve […]