A Fresh Start

December 21st, 2010

Greetings FileMaker and Agile enthusiasts! Way back in 2007, we started a blog that focused on using Agile software development methodologies in a FileMaker development environment. A year or so later, that blog disappeared. Since then, IT Solutions has continued using an Agile methodology to develop all kinds of custom FileMaker and .Net projects. We’ve acquired a lot of experience over the years and have decided to resurrect the blog here at www.fmagile.net to share our experiences.

We’ve also collected some partners along the way. We’ll be inviting other FileMaker development shops who are using similar Agile methodologies to contribute to this blog. Hopefully we can inspire some constructive debate around implementing the ideas discussed here. Look for posts on a (somewhat) regular basis in 2011. In the meantime please feel free to peruse the posts from the archive and let me know if you have any questions.

Have a safe and happy holiday season!

Contact Jason MundokIT Solutions, for more information about this post.

FileMaker DevCon 2010

August 13th, 2010

Below is a link to the sample database that was created for my pre-conference session at the 2010 FileMaker Developer Conference in San Diego, CA. Feel free to download and use this database as you wish.

Agile Sample Database

Contact Jason MundokIT Solutions, for more information about this post.

FileMaker DevCon 2008

July 13th, 2008

Time has slipped by with no activity on this blog since February. During that time I managed two large projects from beginning to end using the Agile method described on this blog. These were my first projects exclusively in the project manager role. I learned a lot.

Unbelievably, it’s Devcon time again. We’re in Phoenix and I’m really looking forward to presenting on this topic during a pre-conference session in a few hours. I would like to extend an invitation on this entry for anyone to post comments or questions from the session.

If you’re attending Devcon and you would like to discuss any aspects of our experiences with Agile development, please don’t hesitate to stop me in the hall or join me at the bar.

Click here to download the AgileSample FM database from my session!

Contact Jason MundokIT Solutions, for more information about this post.

Winter 2008 Update

February 4th, 2008

It has been quite a while since my last post. I have not gone away! I’ve been busy kicking off a few big projects and wrapping up several year end items.

I was very fortunate to recently facilitate two webinars for FileMaker Business Alliance members. Those webinars generated a plethora of great questions and discussion about implementing Agile in a FileMaker environment. In the next few weeks I hope to put together a series of blog posts based on those discussions. Stay tuned!

Contact Jason MundokIT Solutions, for more information about this post.

Planning Privilege Sets

December 11th, 2007

Well-defined privilege sets in FileMaker are critical for developing secure systems that offer a positive user experience. They are the key to allowing access to only the data and functionality that each type of user needs to get the job done. So, why do we so often wait until the end of a project to define them?

There is a tendency for developers to want to jump right in and start creating that new system. Regardless of whether they are using an Agile or phased approach, developers want to develop. As soon as requirements are gathered, they start creating layouts, writing scripts and defining calculations. But Agile says that at the end of each iteration, the goal is to deliver tested, working software to the owner of the project. How can we truly deliver tested, working software if we have yet to define the privilege sets that will be used to access that software? The answer is that we can’t.

Privilege sets should be defined during each Iteration Planning meeting, along with all of the other requirements for the features that will be developed in the upcoming week. Each feature should be discussed from the perspective of the various privilege sets that will have access to that feature. By including privilege sets in every planning discussion all members of the development team are forced to think in terms of the users that will access the system in the end. Test cases can then be written from these various perspectives and working software can be delivered.

Do whatever it takes to keep privilege sets in the planning discussions throughout the project. I found that visual tools, such as spreadsheets or simple FileMaker databases, are a great way to keep track of the various roles and their needs. Keep those tools present and accessible during the meetings. You will avoid trying to retrofit security at the end of the project and allow for more accurate testing along the way.

Contact Jason MundokIT Solutions, for more information about this post.

Trust and Transparency

November 14th, 2007

One of the most important benefits of using an Agile methodology to manage your FileMaker projects is the strength of the relationships that develop between all members of the development team. In a client/consultant situation, this will lead to happy and educated clients who are more likely to stay a client for future projects and/or refer new prospects into the pipeline. In an in-house developer situation, this will lead to better cross-department relationships and a better understanding of how software development works and how long it can take. But, how does an Agile methodology help build these strong relationships?

First of all, when we use a one-week iteration cycle, we’re meeting with our clients onsite to do Iteration Review and Iteration Planning meetings once per week. In contrast to the way we used to develop, where we did periodic, randomly scheduled (and usually remote) milestone meetings, this weekly onsite approach gives us more and regularly scheduled face time. Being in the same room at the same time each week gives us the opportunity to get to know one another as people as well as project collaborators.

Second, the Agile methodology dictates a commitment by the Project Manager on the creator side and the Project Owner on the consumer side to be available for constant communication. The best channels should be established at the beginning of the project, but can change at any point to keep things moving. If clarification is needed during development or additional requirements need to be gathered during an iteration, the Project Manager is responsible for making the request and the Project Owner is responsible for fulfilling the request as soon as possible.

Finally, each week, detailed requirements are gathered for only the development that will occur during the iteration. At the end of the iteration, the entire development team, including Subject Matter Experts, reviews all development that was planned. Because the development time is so short, the entire team is completely aware of the amount of time it takes to develop. After a few iterations, the consumers develop a reasonable expectation of how much can be developed during an iteration and how additional requirements will affect the total length of a project.

These and other factors help to develop strong, long-lasting relationships between those who create the software and those who consume it. Relationships are built around trust, since planning, development and review are transparent to all members of the team.

Contact Jason MundokIT Solutions, for more information about this post.

Roles vs. People

October 29th, 2007

There are five primary roles that people can play when implementing FMAgile to manage FileMaker development processes: Developer, Project Manager, Tester, Project Owner and Subject Matter Expert. In upcoming posts, we will discuss details about the attributes of these different roles.

In the meantime, one question that often arises when discussing FMAgile in the greater FileMaker community is how the methodology can be implemented in environments unlike the one at IT Solutions, which is a traditional client/consultant environment. We have teams of FileMaker developers that can co-develop, plus extra resources to manage and test projects throughout the development cycle.

What about independent consultants? Is FMAgile applicable to one-person shops? The short answer is yes. The key is to always remember that the number of roles does not necessarily equal the number of people on the team.

In our experience, projects should have at least two people, one person to play the various roles of the creators (Developer, Project Manager, Tester) and one person to play the various roles of the consumers (Project Owner and Subject Matter Expert). While this is possible and can be successful, it is not always optimal.

The more roles a person plays, the harder it is to differentiate between them. For example, a Project Manager’s primary role is to protect the developers and keep them developing. When roadblocks arise, Project Managers remove them while developers keep working. This is not possible when one person is playing both roles. You must learn to switch roles on the fly, prioritize your actions and fully resolve whatever you are doing before switching back.

Similarly, testing your own work is never recommended but is sometimes unavoidable. Even if you don’t have your own testing resource, be creative and try to assign the role to someone else. Perhaps a Subject Matter Expert or end user from the client can be dedicated to test throughout the project. Even the Project Owner could take on this responsibility, but keep in mind that the person must be committed and available to testing each feature at the end of all iterations without exception.

While playing multiple roles is not always the best situation, it is sometimes necessary. If you are a single-developer shop, be sure to understand the purpose of each role and learn when to play them.

Contact Jason MundokIT Solutions, for more information about this post.

Managing the Iteration Review Meetings

October 10th, 2007

At the end of each iteration, the team gathers to review all of the features that have been developed. This Iteration review meeting happens prior to planning the upcoming iteration. The purpose of the meeting is to allow the project owner and subject matter experts (who helped plan the features) an opportunity to review and test them.

The entire development team should attend the meeting and the project owner or subject matter experts should actually drive the system. It’s important that the consumers stay engaged and get a feel for each feature. If the feature meets all requirements, it is accepted. If requirements have changed or were omitted and the feature is deemed incomplete, it is not accepted and moved to the upcoming iteration. It is important to keep reviewing and accepting the current features at this point. There will be plenty of time to continue discussing unaccepted features during the upcoming planning meeting.

A few things to note…

  • Every scheduled feature should be completed and tested prior to the iteration review meeting.
  • Half developed features should never be shown at the iteration review meeting.
  • If a scheduled feature will not be completed within the iteration for any reason, the entire team should be made aware of it as soon as possible.
  • When a feature is accepted, it doesn’t mean that it will never change. Future changes to the feature or its related functionality will be reflected in a new feature.

Contact Jason MundokIT Solutions, for more information about this post.

Following the Iteration Planning Meeting

September 27th, 2007

In a previous post, I discussed the Iteration Planning meetings, where detailed requirements for the Iteration Feature List are collected. The developer(s) may be gearing up to work on 5 or 6 features during the upcoming week. So, what happens after the meeting? Keep in mind that up to this point, features have described what the user will do with or expect from the system. The features do not indicate what the developer needs to do to make them a reality.

Immediately following the Iteration Planning meeting, the project manager and developer(s) should take all of their comprehensive meeting notes and translate them into step-by-step tasks for each of the features in the Iteration Feature List. This is called “tasking” and is really where the technical design of each feature occurs. The tasks should form a technical recipe that the developer will use throughout the week to develop each feature. It is critical that tasks for all features on the list are written as soon as possible following the meeting. The longer a developer takes to write tasks, the greater the risk of losing valuable knowledge acquired at the meeting. If possible, tasking could be done while still onsite with the project owner so that clarifications can be discussed in person.

Each task should be assigned an estimate. We have used a quarter of an hour as the minimum amount of time to assign to a task. The detail to which each feature is tasked is up to the development team, but we have found that each database “element” should be broken out into separate tasks. By database “element”, I mean each script, value list, table, layout, button, etc. should be in a separate task. Examples of tasks for a the feature “user can run an active student list report” would include the following:

  • Create a list report layout based on the student table with the ID, name and birthday fields (assuming the Student table already exists)
  • Create a script that finds active students and goes to the list report layout, pausing in preview mode, and then returning to the reports menu in browse mode.
  • Add a button to the reports menu called “Active Student List” and assign the student list report script to it.

The total of the task estimates will give you the best estimate of how long the feature will actually take to be developed. This task estimate can then be compared to the original feature estimate, which will help to better estimate similar features in the future.

This level of detailed planning for each feature may seem excessive at first, but is very helpful for the developers to stay on task during the iteration. The time spent up front planning and thinking through the development will save many development hours throughout the iteration. Tasking becomes much easier over time and with a little discipline up front, it can become a practice that is second nature.

Contact Jason MundokIT Solutions, for more information about this post.

Selling FMAgile – One Year of Success and Counting

September 5th, 2007

I’ve been selling custom FileMaker solutions for IT Solutions since I started with the company eight years ago. During that time, I’ve attended hundreds of meetings with prospects and clients doing my best to explain why we do it better than the competition. Prior to us rolling out our FMAgile initiative a little over a year ago, something never felt quite right whenever I got to the part about our “method” for managing projects.

For the majority of my experience, we had offered our version of Waterfall and pitched it with some catchy alliteration for easy identification of the steps: Discovery, Design, Development, and Deployment. While it sounded very official and organized, and we put a lot of effort into making it work for our team, pitching it always felt a little forced for me. And, as anyone who’s ever tried to sell anything knows, if you don’t truly believe in the value of what you’re selling, you’re going to have a tougher time convincing others why they should buy it. Fortunately, we managed to sell a lot of people on the 4 Ds Approach, otherwise I probably wouldn’t still be here. ;) And I believe this approach probably works well and has value for a lot of organizations. But for IT Solutions, particularly with rapid application development (the great majority of it FileMaker-based), it was always like a square peg in a round hole.

I won’t go into details about why the 4 Ds too often led to another “D” — disillusionment (see Jason’s FMAgile white paper for that) — but in a nutshell we were going against the grain of two critical things: our company culture and FileMaker’s core strength as a flexible, easily adaptable programming platform. As a full-service consulting firm, IT Solutions has had great success hiring personable network engineers and developers who enjoy working one-on-one with clients to solve their technology challenges. But when we made the decision to organize our development team and processes a couple of years into my tenure, we took away the one-on-one approach in looking to gain more internal control. And in doing so, we lost that personal touch. That, combined with managing FileMaker projects with very rigid steps and little room for change, is what led us down the road of project stress instead of project success.

But our “discovery” of Agile methodologies changed our outlook dramatically. It was like someone opened a window in a dark, dank room and a gust of fresh air blew in. We knew almost immediately that we had found a method that fit not only FileMaker development, but also our culture and what we were trying to achieve as a company. The only question was what were clients and prospects going to think of it? Fortunately, a little over a year into it, I’m happy to report I’ve yet to hear one of them object to it. In fact, what I hear more often than not when I’m finished giving the FMAgile pitch (enthusiastically, of course) is, “that makes a lot of sense,” or, “that sounds like the right way to go about it.” And this is from people who, for the most part, have no prior custom development exposure. Before, when I was pitching the 4 Ds, I usually never got any feedback at all. I think the rigid nature of the process and the client’s perceived lack of involvement were the chief reasons for the lack of any feedback – positive or negative. The old process must have sounded very much like an assembly line to them – like we were making all databases exactly alike – so what difference did it make to them? But with FMAgile, they’re hearing right away that we welcome their systems’ uniqueness and nuances. And, more importantly, that they have a stake in the outcome of the project

Of course positive feedback doesn’t pay the bills. But new clients and projects do. Since rolling out FMAgile 14 months ago, we have worked on about 10 Agile projects, including two of the three largest in the history of the company. To handle the new work, we’ve brought on three new FileMaker developers and have a fourth starting next month. And, best of all, the pipeline of work continues to expand. I strongly believe that FMAgile is a large part of why clients are choosing us over other consultants or internal resources. Ultimately, what matters most is succeeding with the projects once they come in the door, because that’s what makes happy repeat customers and motivated developers. But, when all else (cost, resources, marketing materials) looks about the same from one consultant to the next, the FMAgile process, and its emphasis on collaboration and acceptance of change, gives us an additional edge that helps close the deal.

Contact Jim HigginsIT Solutions, for more information about this post.