9 responses to “Developing a Windows shell”

  1. Jason Cone

    If nothing else, I applaud your realization of what is necessary. You have accomplished no small feat in expressing (quite clearly, IMHO) your thoughts in this post.

    That said, you’re suggesting that an effort be made to embrace a methodology that most professional (read: money-making) development shops have a hard time sticking with for any significant amount of time. One common reason that is oft-heard with regard to the stagnation of shell development is the perpetual “lack of free time” with which those who are capable of contribution are afflicted. You would have to agree that the adoption of the described methodology… never minding the scope of the project itself… would require significantly more time than the so-called opportunistic approach. Where is this time going to come from? If it must be volunteered by those who claim a “lack of free time,” what is their motivation to sacrifice that which they don’t have?

    Personally speaking, I became involved with the shell development community because, ultimately, I was not satisfied with the environment in which I worked as a programmer. I had sugar plum dreams of fostering the Utopian development environment in the context of an Open Source project. What I came to realize, however, is that 1) IMHO, it’s not possible and 2) I was cheating my employer out of the potential that they were paying me to realize/develop. Since permanently abandoning the Open Source community… more specifically, the alt-shell community… I’ve redirected my efforts and ideals toward improving the development shop with which I’ve worked for 8 years now. I can’t even put into words the effect that it’s had. I wouldn’t trade the company or the guys that I work with for any other opportunity in the world. We’re that good. And it has nothing to do with me as an individual, but rather it has everything to do with all of us catching the same vision and making the same concerted effort to make it happen.

    The point I’m trying to make is that while it might be possible to do what you’re talking about, you need to answer 2 questions: 1) Will I have to withdraw the effort that it will take to accomplish said goals from my employer, family, or friends? 2) Is it unrealistic to assume that an appropriate number of other people will be able to put forth the same sustained effort?

    If you have to answer “yes” to either of those questions, you really should be asking “Should I?” rather than “Could I?”

    I wish the alt-shell community well, but I think it’s incredibly unrealistic to expect it to be anything other than an “opportunistic” hobby.

  2. Joel "Jaykul" Bennett

    Hi Jason! Long time …

    Yeah, I realize what I’m talking about is a lot of ‘organization’ time … and as of right now, I haven’t been coding (on geoShell) at all for a few months until the last week or two. And then of course, there’s the fact that I have a baby coming …

    However, I think I can easily say this much, at least:
    1. The time I “steal” for coding geoshell comes mostly from time I would otherwise spend playing video games, watching TV, or reading novels (based on what I used to do, before I got a computer at home).
    2. I consider it time well spent, because it gives me practice on the heavy coding that I don’t get to do at work (yet).
    3. The motivation and energy for this is coming (at least in part) from:
      1. Learning it at school in classes my employer is paying me to take, with the intention to move more towards full-time software development at work, instead of working on the “custom software tools.”
      2. Applying it by changing my patterns at work.
      3. Loving the way it allows me to report productivity to my boss
    1. The fact that, although I work in a HUGE company, my “team” consists of myself, and a contract.
  3. I’m willing to do more planning, spec’ing and general “managing” and less coding, if need be. I’ve actually already written part of an SRS for geoShell as an assignment at school.
  4. I think that I can count on at least a couple of the active dev’s to help out and be willing to pretend I’m the manager.
    1. If all else fails, and others are unwilling/unable to work with it, I would probably take this motivation and apply it to a solo project to finish off R6 …

    All in all, I feel pretty good about it. Of course, all that could change in May, when the baby comes, or half-way to May, when I hit the huge ammount of schoolwork which usually swallows the last 4 or 5 weeks of my school quarter.

    Oh, and P.S. ... I’m going to add more fluffing out of my thoughts when I get back from vacation, but part of the discussion is over on the geoShell board, where I’m about to answer another post almost as thoughtful as Jason’s … http://www.geoshell.com/board/forum_posts.asp?TID=1264

  • eikonos

    Jaykul: well said, as usual. :D
    Though I do more of the coding now, I still consider you the manager of the project. You’re much better at the public relations and organizational side of things, and besides I’d rather just code.

    Jason: you raise an important point. GeoShell does take time away from coding that I could otherwise spend working, but since in my professional work I mainly code back-end database related apps GeoShell gives me a chance to write fun (read: GUI) code for a wider audience.

    Regarding the future of the shell: Though it means starting all over, I’d rather start from the design document stage. I don’t have any time invested in R6 and that’s a factor, but I also think a design doc is critical. The other reason is that a configuration system is also critical and regedit is not user-friendly enough. That’s why “config system” is the very first item on Cobalt’s Basic Considerations list. The cobalt design is far from complete and I want to work with any interested devs to come up with a solid design.

  • Jason Cone

    To both Joel and eikonos, I wish you guys the best. You really do have some good ideas.

    I will caution you both, however, that the one thing that a software development course does not teach you is the one thing that will kill a project before it even gets started: attempting to do too much in too little time. To borrow someone else’s conclusion (albeit one that I strongly agree with), it takes ~10 years for a software product to really come into its own. There’s no reason why GeoShell is/should be any different. This point is even more poignant if you’re talking about starting from scratch.

    Anyway, I’ll definitely be following this effort/project – I would love to see the R[0-9]+ curse broken. :-D

  • Jason Cone

    For some reason, the 10-year article was not properly linked. It can be located @ http://www.joelonsoftware.com/articles/fog0000000017.html.

  • munkie

    Sounds fantastic! Does have worrying undertones of similar announcements surrounding R5 and R6 (like many others, I’ve been lurking around since R3) but still sounds the right way to go. Modular components were one of the driving factors behind Cloud:9ine in its heyday but you’re absolutely right – design it well and it’ll work forever; design it badly and you’re doomed from the start.

    I’m (still) no C/C++ coder but any help I can provide, it’s yours. Is there an IRC channel open for discussion on this?

    cm

    ps, Hi Jason!

  • Pistos

    Jaykul: By no means is it my goal to throw water on your fire, but let me share with you from experience that having an addition to the family most definitely amounts to LESS (in my case, much less) time on the computer for open source development. Either that, or you have to contend with an angry wife!

    Having said that, I still think it’s possible to continue OS development (since I seem to be doing so aptly enough with my own projects, although at a rather slow pace).

    I support your effort to do things “the right way” (whatever that really means). It’s something I strive for in life in general, but also, in particular, in my computing life.

    Would it be too much to suggest doing it in Ruby? (grins widely, ducking for cover) Just kidding.

  • Joel "Jaykul" Bennett

    Hey munkie, yeah, we’re in #geoshell and #geodev on freenode ( irc.geoshell.org ). And Pistos: yeah, that’s too much. [ :-P ]

  • Larry Aultman

    I found all the comments interesting and the philosophical reasoning clear. At 51 there are more years behind than in front, as a result prespectives have changed. I have no less energy or love for coding now than I had in 1976, only now it all has to count. Back when I could “afford” to spend all my “free” time coding and developing my own projects without regard to my employers interest, it consumed countless hours on my personal interest. Now every line is directed to a customer or potential product. All that said why on this forum?

    Well after all these years of coding (most industrial systems for Fortune companies) and as the CEO of a public company “my” time is NEVER my own. 24-7 belongs to the shareholders. I would like to offer a few comments about strategy from an employer’s perspective remembering that my clients too are employers.

    Windows (since we are talking about Shell replacements) is the cullmination of 30 years of code that has everthing that has ever been invented wrapped into a system that works very well all things considered. But it still has the hobbiest flavor in some areas, games, paint, and all the stuff tacked on by the special interest vendors. In 99.5% of the time in the industrial world we had to strip the system so that it could be “contained” in the hands of the workers. In other words we want, as employers, productivity from the tools not playtime. So replacement shells have been around a LONG time. Developed for specific purposes to accomplish very pin-point goals in a larger product delivery these shells captured the hobby computer and turned it into a machine for production. This is waht an employer wants.

    Now I am here because we are back at that point where we need a very specific shell for our clients and I am looking for a code base to acquire that will allow us to build point specific shells. Employers want employees to work while at work – surfing or gaming. The employers I talk to would gladly put a room full of computers in break-rooms and public areas if they could have their desktops or laptops used for the purpose intend namely profit. You would never expect a computer attached to an MRI to be used to anything other than MRI stuff they why is the receptionist free to spend 30% of her day surffing?

    Why don’t you guys use your vast knowledge and energy to develop a very basic shell. Administrators should have access to the full Windows shell and thus all the internals – everybody else needs a working platform that is job specific – Active Directory. Think about it, don’t try and re-train all the staff on some new and flashy interface, turn-over is too high and training is too costly. Microsoft spent millions in usability test to find that the “start” button is the best invention ever in the use of a computer. My clients need employees to be able to walk into the office and be trained in 30 minutes to do their job (think cash register here). Read the book – Don’t Make Me Think and you will have an understanding.

    Now does anyone have any code? Naturally since the name of the game is money I am looking for a short cut rather than pay my developers for six months to develop something when it might be out there.

    Most likely I will never find this forum again – that happens when you are spending your Saturday in the office working while all the employees enjoy their free time. I would like to hear if anyone has something to share though. I perhaps can offer some guidance on the directions you might take – not that it is any better than anyone else’s only it would be free.