Posts filed under 'Misc'

Three Important Considerations for a Candidate

In a previous blog post, I ranted a bit about how candidates can make themselves more attractive to employers. While I still am interested in things from a employer’s perspective, there are three critical consideration for a candidate: Do I want to do the role offered? Is there an opportunity to have an impact? Will I have the support and environment necessary to effectively do the job?

For each candidate, the consideration of each question will vary as well as its important. During all research and interaction with the organization, a candidate should structure her questions to build a “dossier” that addressees these concerns.

Do I want the role offered?

While a relatively simple question, it requires that a candidate has a clear sense of his goals and priorities. Timing is generally a key component, as different roles may be more or less crucial throughout the different stages of professional development.

Is there an opportunity to have an impact?

Ultimately, I think the most rewarding positions are ones in which there is an opportunity to have a significant impact to the organization. The organization benefits and the candidate usually does as well; the experience is generally better and prospective employers want to know what results were achieved. The scope and scale of this opportunity will usually vary with the position; a developer who introduces TDD to a group may help lower defect rates while a VP of Engineering has the opportunity to impact the company’s profitability. However, I think all candidates, regardless of the position, should be ambitious and consider the largest impact the role may have. Similarly, it is a big warning sign if the position being considered has little impact to the organization; there will generally be few resources, support, professional development, etc.

Will I have the support and environment necessary to effectively do the job?

This is a very open ended question and probably the most personal for a candidate. Part of the consideration is about organization support: autonomy, authority, budget, latitude, and counsel are some significant elements. Environment is quite personal. Some candidates like dynamic, fast paced environments and others prefer academic settings. For some people, co-workers that can be potential friends is significant. Some people need flexible working hours. Ultimately, an employee will be most effective in the environment best suited for her.

While these questions may seem obvious, I am always surprised by how few candidates (or so it appears) are trying to address these considerations. A key part of my evaluation of a candidate is an assessment of his evaluation of the position; I want candidates who are looking just as hard at my organization and I am looking at them. Also, you will notice that there is a certain bias in these considerations towards professional development and satisfaction. I’ve made no mention of practical considerations such as salary. While practical concerns need to be satisfied, I don’t think they should be prime motivators. This is not to say that elements such as salary aren’t important considerations, but I think it is harder to find the position and organization that matches well with the three described concerns than to find a position to satisfy practical issues.

Add comment October 19th, 2005

Marketing Agile Development

Brian Marick recently posted a blog entry noting the importance of marketing agile development to executive management. As stakeholders, management stands to gain the most from agile development.

The timing of Brian’s post is somewhat coincidental, as this topic has been on the forefront of my mind. I think the next phase of generating agile adoption is to bring the campaign to management. It bothers me that I see mostly developers and technical professionals at conferences and very, very few members of management, particularly senior management.

I’ve been discussing this topic with people much smarter than I, in particular my wife. She has an MBA and works in marketing. Based on my discussions with her, the following are some ideas for raising the visibility and adoption of agile development methods to senior management.

Audience

Executive and senior management, particularly CIO’s and CTO’s, should be the demographic of this marketing effort. This poses some challenges, as such managers are generally removed from the actual development efforts and don’t have much first-hand knowledge of the problems with traditional, heavy-weight methods. Making matters worse, middle management frequently withholds details about complications and, at times, reports a more successful depiction of projects than reality. Middle managers (those in the trenches) are the real “customers” of an agile process, but they are invisible; they have low public visibility and are a needle-in-a-haystack for a marketing plan.

Part of the challenge will be educating senior managers, while “saving face” for the middle managers, as we ultimately need their support.

Brand

Brand, brand, brand. It is the key to marketing. A brand defines the expectations of the vendor / product for the customer. It is the reason you choose product A over product B. For example, Nike caters to the “hard-core” athlete, be it recreational or professional. Volkswagen is about the “serious driver”. Such strong psychological and emotional elements are quite common in consumer brands, but they can have a place in business brands as well.

This is the first action item for the Agile Alliance: define the brand of agile development. More precisely, what is agile development? The answer must be succinct and precise. It may vary for different audiences, but the core message must be the same.

This is a major challenge for the agile community. There is much debate over the question of “what defines agile?” and “which methods qualify as agile?”. The goals and ideas of the Agile Manifesto, Agile Alliance and agile community have developed and are continually being revised.

But in order to have a brand, we must appear to speak with one voice, with one consistent overriding point of view. A brand defines the product. Consider the situation in which a business is choosing among multiple vendors. An organization will not trust a vendor whose message waivers and doesn’t appear to have its act together.

Furthermore, the agile brand needs to be about more than ROI or business value. How would this be different than the claims of any other methodology, particularly the high ceremony, traditional processes? The ways in which agile development is different are important, but so are the commonalities of agile development and any other sound business theory or practice. (We can’t have claimed to re-invent the wheel; business types will assume they know business better than we do.)

This doesn’t mean there must be one agile methodology. The Agile Alliance can be the “parent company” that has multiple product offerings, each appropriate to a different context. But the overall message must be clear and consistent. We must determine the 30-second elevator conversation that answers the question “Who is the Agile Alliance and what is Agile Development?”

Getting Started

Many people don’t know the Agile Alliance even exists. Its important that people associate agile development with the Agile Alliance.

I think the trade shows, conferences and journals that cater to CIO’s/CTO’s are a good start. I don’t know what efforts have already been directed toward this, particularly sponsored by the Agile Alliance.

I know there was an executive track at ADC this summer. I don’t know how successful it was. I think tutorials, seminars and workshops targeted to executives are a good idea. I think the agile community should invite any contacts they have in executive management.

I also think we should “recruit” the help of those in the business world. For example, Rob Austin is a Harvard Business School professor who has a strong interest in agile development and his research is about software development. I believe many in the agile community have a good relationship with him (among others). These individuals can be valuable resources.

Information Resources

Assuming we get the attention of executive management, we need to be prepared to provide information that is relevant to them and directly addresses their concerns.

Agile Roadmap

There needs to be a catalog of agile practices and some guidelines regarding their approach. The roadmap section of the Agile Alliance website needs to be flushed out. (I happen to have a particular interest in the is topic, as does Steve Berczuk.)

Statistics

Executives will want metrics that quantify ROI of agile development over other methods, adoption rates, success rates, etc. Information from the Standish Group’s Chaos report would probably be useful.

Challenges

The Agile Alliance is a non-profit group that doesn’t control or directly sell agile methods. Therefore, the requirements are similar to those for the consortium that markets milk.

I would expect an executive to request referrals from the Agile Alliance and she would expect the referred consultant (or firm) to deliver an “official” agile development process. Once you build the brand, it is important to maintain that relationship and protect the trust and expectations of the market.

This raises some concerns. How should the Agile Alliance provide endorsements? (I think some form of a referral service will be necessary). Questions about certification are a natural progression, which opens a huge debate. For example, a few months ago many in the agile community (including myself) went on the record to oppose SWEBOK. Will we eventually need to form our own version of SWEBOK?

This is somewhat a moot point. There are many strong forces already trying to standardize the industry. It might be negligent of the Agile Alliance to not cast its hat in the ring. This also becomes more important as agile development goes mainstream; most existing practitioners of agile development understand the principles of agile and faithfully practice it. I fear many mainstream adopters will claim to be agile and not understand it.

The challenge for the Agile Alliance is to remain “agile” and not bureaucratic, while maintaining some degree of conformity and unity. Brand integrity is necessary for successful marketing.

These are just some ideas. I think some attempts have already been made to market agile development to executive management. I think devising a marketing strategy raises many issues that the agile community must face and make decisions about. This will challenge us, as formal organization general complicates a good idea.

1 comment November 3rd, 2003

NBuilder: Iteration 0: Planning Game

QUESTION: I plan (hope) to make frequent postings about NBuilder to organize the project and provide a basis for reflection. For xTeamWorks I started a separate blog in anticipation of it becoming a distraction for anyone reading my normal blog. Anticpation is bad (not to mention my arrogant presumption that people read me blog), so I am not doing this for NBuilder, at least not yet. If anyone cares about this, let me know if you would prefer a separate blog for NBuilder or for me to post NBuilder entries on my normal blog. Thanks.

I have the following stories for Iteration 0.

Determine sample project
As NBuilder is a tool for persisting data in applications, I need a sample project.
Setup environment
Setup Source Forge account, build environment, configure change management, etc.

I plan to have this iteration be short (one day). Since I rarely have a whole day to spend on personal projects, I am time-boxing the iteration for 8 hours. In a retrospective, I will monitor my velocity for actual time spent working vs. the time that transpires due to lag between work sessions.

As far as the development environment goes, there are specific tasks / considerations. I will be using MS Visual Studio 2003, NUnit and possible NAnt. I have not used Cruise Control.NET and may look into it. I need to decide about configuration management. To this point, when working on open source projects with .NET, I have used Tortoise and WinCVS to update files. I want to use something that integrates with the IDE, but have not had success setting up Igloo yet to work with SSH. I also have the complication that a lot of my work is done offline, be it on planes or in hotels. I like to use MS Visual Source Safe locally to provide version control when offline. Ideally, I would have source control IDE integration, that I can use with CVS when online and switch to Source Safe when offline. (It would be really nice to synch the incremental checkins from Source Safe to CVS. If anyone has any ideas or experience with this, please let me know. I will be very grateful.

Add comment July 16th, 2003

Vision for NBuilder

In a previous entry, I noted that I am beginning to work on NBuilder again. As I am starting a new, I am trying to be quite disciplined in adhering to the principles of XP and TDD. (I hope to be critical and consider if I follow these principles as well as I presume to.) So, in order to provide a monitoring and reflection mechanism for myself, I will try to diligently blog my thoughts.

These are my primary goals:

support testing
I want to use ideas like ObjectMother so that I can have data driven / dependent tests run fast (under 1 minute rather than more than 20)
persist objects easily
This one is hard. There is tension between making constraints on objects, aggregation methods, and attributes and simplicity of the framework. On one hand, I want the objects (and their needs) drive the model and then deal with their persistence. On the other, I want to reuse tools rather than re-craft and I want to eliminate the tedious code that can accompany implementing persistence support.
support extensions
I’d rather have a small basis to reuse and tailor on a case by case basis than a bloated tool that doesn’t fit any actual context well.

There is one significant requirement / motivator for NBuilder, that I don’t want to make a core goal but is in the back of my mind. I would like the persist the objects with different mechanisms, such as XML vs. a relational database. One of the practical drivers have been the need to refactor and tune database schemas, be it for performance or space consideration.

There are a variety of other specific features in mind, but I don’t want to clutter my thinking, get ambitious or do much anticipating. I want the vision to be simple.

Add comment July 16th, 2003

NBuilder: It Begins..(again)

“NBuilder is an application framework for developing enterprise and information system applications. It provides support for the development of an object-oriented persisted domain model. It includes tools for modeling the domain, generating code for the domain entities and application, and a series of base classes that allow the rapid development of a stable, scalable, high performance application that easily supports automated testing and reusability.”

The above appears on the Source Forge site for NBuilder and pretty much reflects my original ambition. Basically, most of the code I write needs to be persisted in a database and .NET doesn’t have the nifty tools for object-relational mapping that Java does. (I can’t believe I used the word nifty!) So, I (and the teams I have worked with) have generally crafted custom code generators / metadata managers that provide persistence and related services for Microsoft .NET projects.

There are a few motivators for me. First, I hate duplication. I (and other team members) have built such a custom tool several times now. Each time we learn something new, experiment and tweak for the specific circumstances in which we were working. So frustration is the first motivator.

Impatience (and frustration again) is next, as I can’t wait anymore for someone smarter than me to do this. I have come across a few tools that address similar issues (some free and some commercial), but they don’t address my needs terribly well.

Finally, there is vanity. Part of me (a larger part than I really want to admit) is convinced I can achieve some level of generality for the tools application. I actually tried this a few months ago, wrote something fairly quickly that I thought was useful. (It is actually being used for production code by one of my clients.) It has a variety of flaws, which I won’t go into here, except for one. The largest flaw was in the approach and ambition. I assumed to know too much (I have done this multiple times before, I can fast forward to..) which leed to anticipation and some flawed design decisions. I also started with the ambition of writing too general a tool.

So why will this time be any different? It probably won’t. The rationale part of me can smell some bad signs already. But, there is the vanity thing and vanity isn’t rationale. So, being a glutton for punishment, I being again the search for my white whale.

There are a few things that keep me hopeful (or delusional). I think of Kent Beck’s reflections on the money example of Test Driven Development. Beck notes how he has written the example numerous times and found that with a new metaphor, he discovered the cleanest implementation yet. I am hoping the powers that be take pity on me and provide this inspiration. I also hope to be as disciplined as possible in XP and TDD principles as I can (which I did not do so well last time around). Next is a practical hope. I have a few current “issues” I need to address in a couple of different projects. Some are client related, some are not. This will limit the amount of disclosure I can provide in my blog entries, but being a pragmatist I will quickly abandon all lofty ambitions for solving the problems that pay the bills. If I do this well, this attempt will definitely make it worthwhile.

Finally, I will learn something, probably a lot of somethings. This new knowledge may prolong my vanity and delusions, but continued learning is better than being stale and complacent.

Add comment July 16th, 2003

xTeamWorks: In the beginning…

Bill and I started to work on xTeamWorks. I am not sure what is the best method of organizing all of this and I don’t know how many people will actually be interested in reading all of this. Anyway, this will be few of several cross posts between two blogs, my normal blog and the xTeamWorks’ blog.

There are several sources of information:

Source Forge Site
This site will contain the actual release files, product documentation and all product release information.
xTeamWorks’ Blog
This is a journal of the project, how things are going, my ramblings, reflections, etc.
xTeamWorks’ Wiki
This is used to actually manage the project. We will keep track of our XP stories, iterations, velocity and tasks.

The reason for all the different sites is that there are three different views of this project: the final product site, the management of the project and my personal accounts of the experience. This project is intended to serve multiple purposes:

work with XP in a remote setting
Bill and I don’t use pure XP lately and I tend to work remotely on my current project. Since I must presented a paper at ADC 2003 about remote agile development, I wanted to explore a pure XP / pure virtual project. Though this is small, I think open source projects can benefit from remote XP.
build a tool to support online XP management
I work remotely a lot so posting 3×5 cards on a wall doesn’t work for me. I did look at some other products for managing XP online, but they didn’t quite address my needs or I couldn’t get them to install correctly. So, like any good developer, I have convinced myself I can do a better job…. ;)
work more with Java and Eclipse
Bill and I have been mostly in Microsoft / .NET land for a while. I haven’t done much Java work over the last year and haven’t used Eclipse. This is a chance for us both to explore.

Add comment July 9th, 2003

ANN: xTeamWorks: An XP Project Tool

I am starting work, with the help of William Rakocy, on a web based collaboration tool for managing an XP project. I work remotely quite often so it would help to have online access to story cards to other project items. I have experimented with some wikis, MS Excel files and other techniques, but I think I could I could benefit from a tool.

I experimented with XPWeb and XPlanner, but wasn’t particularly satisfied with them, at least for the needs of my project.

So, xTeamWorks will support the basic elements of XP, like story maintenance, task definition and signup, velocity tracking and iteration planning.

xteamworks.sourceforge.net is the website for the project. I will probably post updates as we go here.

If anyone has thoughts or requests, let me know.

Add comment July 3rd, 2003

Agile Development and Remote Teams: Learning to Love the Phone

I recently presented this paper at a talk at Agile Development Conference 2003.

Agile Development and Remote Teams: Learning to Love the Phone

I’d love to get people’s impressions and feedback.

2 comments July 3rd, 2003

And so it Begins…

So I have finally done it. I have started my very own blog. I have been intending to keep a journal for some time now. It was just one of those things that I hadn’t got around to doing. Andy Tinkham convinced me it was about time, though it didn’t take much convincing.

So why did I want to keep a journal anyway? There are a few reasons, though I mostly want to capture my musings, ramblings, and thoughts. I hope that the act of writing will force me to focus my thoughts and develop a coherent voice. I need to learn to be a little more stingy with words; I tend to be a bit verbose.

On the practical side, I am a software developer and coach who has a lot of ideas about development processes, team dynamics and the various technologies we use. I hope to capture and refine these thoughts. Also, I frequently make references to books, sites, and tools to others that I work with. I would like to provide a listing of for these references and reviews. I also work on a variety of open source projects (like NUnit) and would like to discuss them.

I also love to cook and watch movies. You will probably find a lot of ramblings about both.

Finally, if by some miracle someone else reads this, I hope to get feedback from people regarding my ideas and their related experiences.

What can you Expect to Find Here?

  • thoughts on software development
  • reviews of books, tools, technologies, movies and restaurants
  • conference and workshop reflections
  • open source projects
  • article drafts
  • recipes
  • random thoughts

1 comment June 25th, 2003


Calendar

November 2008
M T W T F S S
« Apr    
 12
3456789
10111213141516
17181920212223
24252627282930

Posts by Month

Posts by Category

Contact Author

License